\define __me()
[[$(currentTiddler)$]]
\end
\define divertTiddlerButton()
<$set name="activeStoryList" value=<<tv-story-list>> >
<$set name="otherStoryList" filter="[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]" select="0">
<$set name="otherHistoryList" filter="[enlist{$:/_sq/Stories/HistoriesList!!list}] -[<tv-history-list>]" select="0">
<$button class=<<tv-config-toolbar-class>> tooltip="Divert this tiddler to the other story">
<$action-listops $tiddler=<<activeStoryList>> $subfilter="+[remove<__me>]"/>
<$reveal state="$:/_sq/Stories/config/openLinkDivert" type="nomatch" text="top" default="top">
<$action-listops $tiddler=<<otherStoryList>> $subfilter=<<__me>>/>
</$reveal>
<$reveal state="$:/_sq/Stories/config/openLinkDivert" type="match" text="top" default="top">
<$action-listops $tiddler=<<otherStoryList>> $subfilter="+[prepend<__me>]"/>
</$reveal>
<$action-addtohistory $history=<<otherHistoryList>> $title=<<currentTiddler>> />
<span class="sq-button-divert-right sq-button-divert">{{$:/_sq/Stories/icons/divert-right.svg}}</span><span class="sq-button-divert-left sq-button-divert">{{$:/_sq/Stories/icons/divert-left.svg}}</span>
</$button>
</$set>
</$set>
</$set>
\end
<<divertTiddlerButton>>
/*BOXES*/
html body.tc-body .bluebox {display:block;background-color:#eef;padding:5px;padding-left:20px;padding-top:10px;margin-top:5px;margin-bottom:5px;width:95%;color:#000;}
html body.tc-body .graybox {display:block;background-color:#eee;padding:5px;padding-left:20px;padding-top:10px;margin-top:5px;margin-bottom:5px;width:95%;color:#000;}
body p {<<colour foreground>>;}
code {color: #b0a;background-color:#eee;}
/*TIGHT NOTES*/
html body.tc-body h1, html body.tc-body h2, html body.tc-body h3, html body.tc-body h4 { margin-top: 0.3em; margin-bottom: 0.3em; }
/*FONT SUBTITLES*/
.serif {font-family: 'Arial', sans-serif; color: <<colour tiddler-editor-border>>font-size:10pt;}
html body.tc-body .serif a.tc-tiddlylink-external {font-family: 'Arial', sans-serif;font-size:12pt; line-height:normal;font-weight:normal;color:#666;}
/*FONT STUFF (colors)*/
html body.tc-body .lightgraybk {background:#eee;padding:1px 4px px 4px;margin-bottom:2px;font-family:'Arial', sans-serif;}
.red {color:red;}
html body.tc-body .blue a {color:blue;}
/*FONT STUFF SOURCES*/
html body.tc-body .source {color:#777;font-size:10pt;}
/*ICON COLORS*/
html body.tc-body .tc-image-edit-button {stroke: #9e391f;}
html body.tc-body .tc-image-chevron-up {stroke: #9e391f;}
html body.tc-body .tc-image-chevron-down {stroke: #9e391f;}
html body.tc-body .tc-image-fold-button {stroke: #9e391f;}
html body.tc-body .tc-image-close-button {stroke: #9e391f;}
html body.tc-body .tc-image-unfold-button {stroke: #9e391f;}
html body.tc-body .tc-image-preview-open {stroke: #9e391f;fill:#f29;font-size:150%;}
html body.tc-body .tc-image-delete-button {stroke: #9e391f;}
html body.tc-body .tc-image-cancel-button {stroke: #9e391f;}
html body.tc-body .tc-image-done-button {stroke: #9e391f;}
/*INDENTING*/
html body.tc-body .indent1 {margin-left:1.5em;display:block;}
/*LINKS*/
html body.tc-body a.tc-tiddlylink {text-decoration: none;font-style: normal;font-weight: normal;}
html body.tc-body a.tc-tiddlylink-external {text-decoration: none;font-weight: normal;}
html body.tc-body a.tc-tiddlylink-visited {text-decoration: none;font-weight: normal;}
html body.tc-body .source a.tc-tiddlylink-external {font-weight: normal;font-size:10pt;}
/*LISTS BASIC*/
html body.tc-body ul li {color: <<colour foreground>>;}
html body.tc-body ol li {color:<<colour foreground>>;}
/*SIDEBAR*/
.tc-sidebar-scrollable { left: auto; top: 0; right: 0; width: 350px; }
/*TIDDLER TITLES*/
.tc-tiddler-missing .tc-title { font-style: normal; font-weight: bold; }
/*VIEWTEMPLATE FONT SIZE*/
html body.tc-body .viewtemplatebigtext {font-size:110%;}
/*HIDE SECTIONS FOR PRINTING*/
@media print {#tc-page-background {display: none ! important;}}
@media print {.tc-tags-wrapper {display: none ! important;}}
@media print { body.tc-body {background-color: transparent;}}
@media print {.tc-image-chevron-up {display: none ! important;}}
@media print {.tc-image-chevron-down {display: none ! important;}}
@media print {button.sidebar-toggle {display: none ! important;}}
@media print {.hideprint {display: none ! important;}}
@media print {.tc-btn-invisible {display: none ! important;}}
@media print {
.story-river {
margin: 0;
padding: 0;
}
html body.tc-body .tc-tiddler-frame {
margin: 0;
border-bottom: 1px solid #fff;
padding: 5px;}
html body.tc-body a.tc-tiddlylink-external:hover {
border: 1px solid <<colour tiddler-border>>;
}
html body.tc-body .tc-tiddler-info {
padding: 14px 42px 14px 42px;
background-color: <<colour tiddler-info-background>>;}
}
}
<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} journalTags={{$:/config/NewJournal/Tags}} journalText="">
<$wikify name="journalTitle" text="""<$macrocall $name="now" format=<<journalTitleTemplate>>/>""">
<$reveal type="nomatch" state=<<journalTitle>> text="">
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags="" text={{{ [<journalTitle>get[]] }}}/>
</$reveal>
<$reveal type="match" state=<<journalTitle>> text="">
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags="" text=<<journalText>>/>
</$reveal>
</$wikify>
</$vars>
\define tagreset2()
<$list filter="[tag[titleview]sort[created]] -[[$(currentTiddler)$]]" variable="removeme">
<$action-listops $tiddler=<<removeme>> $tags="+[remove[$:/tags/ViewTemplate]]"/>
</$list>
<$action-deletefield dummy/>
\end
\define switchStoryView(storyview,default)
<$select tiddler='$storyview$' default='$default$'>
<option value="zoomin"><$text text='one tiddler only'/></option>
<option value="classic"><$text text='multiple tiddlers'/></option>
</$select>
\end
''Choose how to view titles:''
<$list filter="[tag[titleview]sort[caption]]">
<$list filter="[all[current]tag[$:/tags/ViewTemplate]]">
<$checkbox field=dummy checked="yes" unchecked="yes" default="yes"></$checkbox>
<$view field="caption"/><br/>
</$list>
<$list filter="[all[current]!tag[$:/tags/ViewTemplate]]">
<$checkbox tag="$:/tags/ViewTemplate" xinvertTag="yes" checkactions=<<tagreset2>>/> <$view field="caption"/><br/>
</$list>
</$list>
<br>
''Choose how to view tiddlers in each column''
Left column: <<switchStoryView $:/view zoomin>>
Right column: <<switchStoryView $:/_sq/Stories/config/Story2-storyview classic>>
\define tagreset()
<$list filter="[tag[refs]sort[created]] -[[$(currentTiddler)$]]" variable="removeme">
<$action-listops $tiddler=<<removeme>> $tags="+[remove[$:/tags/ViewTemplate]]"/>
</$list>
<$action-deletefield dummy/>
\end
''Choose how to view references:''
<$list filter="[tag[refs]sort[caption]]">
<$list filter="[all[current]tag[$:/tags/ViewTemplate]]">
<$checkbox field=dummy checked="yes" unchecked="yes" default="yes"></$checkbox>
<$view field="caption"/><br/>
</$list>
<$list filter="[all[current]!tag[$:/tags/ViewTemplate]]">
<$checkbox tag="$:/tags/ViewTemplate" xinvertTag="yes" checkactions=<<tagreset>>/> <$view field="caption"/><br/>
</$list>
</$list>
{{Hint for Muffin tutorial}}
<br>Note that the gray boxes in the context and transclude options are links to their respective tiddlers.
{
"Hint for Muffin tutorial": "hide",
"Muffin 1": "hide",
"Muffin 2": "hide",
"$:/Import": "hide",
"How One Should Converse": "hide",
"Source :: Counsels from the Holy Mountain": "hide",
"➡ A truth claim that's important to remember": "hide",
"➡ Another truth claim": "hide",
"➡ At day's fast is more beneficial than a prolonged one of three to seven days as people tend to overeat afterward. The overfaster either slacks because of the lack of energy or they are slothful from overeating. loc 845": "hide",
"➡ The Holy Fathers haven't given a single Fasting rule because not everyone has the same strength. but instead a single goal: to avoid overeating and the filling of the stomach. loc 845": "hide",
"Lambda Calculus": "hide",
"Haskell video Course": "hide",
"������ A mind distracted by a thousand worldly cares cannot ascertain the truth.": "hide",
"������ We must strive for a quiet mind": "hide"
}
\define save-tiddler-actions()
<$action-sendmessage $message="tm-add-tag" $param={{{ [<newTagNameTiddler>get[text]] }}}/>
<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>
<$action-sendmessage $message="tm-add-field" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>
<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>
<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>
<$action-sendmessage $message="tm-save-tiddler"/>
<$list filter="[all[current]links[]is[missing]]"><$action-createtiddler $basetitle=<<currentTiddler>>/></$list>
\end
<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>
<$fieldmangler>
<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify "$:/temp/NewTagName">> newFieldNameTiddler=<<qualify "$:/temp/NewFieldName">> newFieldValueTiddler=<<qualify "$:/temp/NewFieldValue">>>
<$keyboard key="((cancel-edit-tiddler))" message="tm-cancel-tiddler">
<$keyboard key="((save-tiddler))" actions=<<save-tiddler-actions>>>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]" variable="listItem">
<$set name="tv-config-toolbar-class" filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]">
<$transclude tiddler=<<listItem>>/>
</$set>
</$list>
</$keyboard>
</$keyboard>
</$vars>
</$fieldmangler>
</div>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$vars searchme=<<currentTiddler>> searchspx={{{ [<currentTiddler>escaperegexp[]]}}} >
<$list filter="[!is[system]all[current]backlinks[]!tag[outlines]!tag[hide]sort[title]] -[is[current]]"><$link><$view field="title"/></$link><span class="indent1"><$link><span class="graybox"><$context term=<<searchme>> /></span></$link></span></$list>
</$vars>
</$reveal>
</span>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$vars searchme=<<currentTiddler>> searchspx={{{ [<currentTiddler>escaperegexp[]]}}} >
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]sort[title]] -[is[current]]"><$link><$view field="title" /></$link><br></$list>
</$vars>
</$reveal>
</span>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]!tag[outlines]sort[title]] -[is[current]]"><$link><$view field="title"/></$link><span class="indent1"><$link><span class="graybox"><$transclude field="text" mode="block" /></span></$link></span></$list>
</$reveal>
</span>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]!tag[outlines]sort[title]] -[is[current]]"><$link><$view field="title"/></$link>
<$reveal type="nomatch" stateTitle="$:/.giffmex/TiddlyBlinkFoldData" stateIndex=<<currentTiddler>> text="show">
<$button class=<<tv-config-toolbar-class>> setTitle="$:/.giffmex/TiddlyBlinkFoldData" setIndex=<<currentTiddler>> setTo="show">{{$:/core/images/unfold-button}}</$button><br/>
</$reveal>
<$reveal type="match" stateTitle="$:/.giffmex/TiddlyBlinkFoldData" stateIndex=<<currentTiddler>> text="show">
<$button class=<<tv-config-toolbar-class>> setTitle="$:/.giffmex/TiddlyBlinkFoldData" setIndex=<<currentTiddler>> setTo="hide">{{$:/core/images/fold-button}}</$button>
<span class="indent1">
<$link><span class="graybox">
<$transclude field="text" mode="block" /></span></$link></span>
</$reveal>
</$list>
</$reveal>
</span>
\define title-styles()
fill:$(foregroundColor)$;
\end
\define config-title()
$:/config/ViewToolbarButtons/Visibility/$(listItem)$
\end
<div class="tc-tiddler-title">
<div class="tc-titlebar">
<span class="tc-tiddler-controls">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<<config-title>> text="hide"><$set name="tv-config-toolbar-class" filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>
</span>
<$set name="tv-wikilinks" value={{$:/config/Tiddlers/TitleLinks}}>
<$link>
<$set name="foregroundColor" value={{!!color}}>
<span class="tc-tiddler-title-icon" style=<<title-styles>>>
<$transclude tiddler={{!!icon}}/>
</span>
</$set>
<$list filter="[all[current]removeprefix[$:/]]">
<h2 class="tc-title" title={{$:/language/SystemTiddler/Tooltip}}>
<span class="tc-system-title-prefix">$:/</span><$text text=<<currentTiddler>>/>
</h2>
</$list>
<br><$list filter="[all[current]!prefix[$:/]]">
<h2 class="tc-title">
<$view field="title"/>
</h2>
</$list>
</$link>
</$set>
</div>
<$reveal type="nomatch" text="" default="" state=<<tiddlerInfoState>> class="tc-tiddler-info tc-popup-handle" animate="yes" retain="yes">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]" variable="listItem"><$transclude tiddler=<<listItem>> mode="block"/></$list>
</$reveal>
</div>
\define button()
<$button tooltip={{$:/language/Buttons/NewHere/Hint}} class=<<tv-config-toolbar-class>> actions=<<actions>>>
{{$:/core/images/new-button}}
</$button>
\end
\define actions()
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> text="""[[$(tid)$]]"""/>
\end
<$wikify name=tid text=<<currentTiddler>>>
<<button>>
</$wikify>
\whitespace trim
\define journalButtonActions()
<$action-sendmessage $message="tm-new-tiddler" title=<<now """$(journalTitleTemplate)$""">> text="""[[$(tid)$]]""" />
\end
\define journalButtonTags()
[[$(currentTiddlerTag)$]] $(journalTags)$
\end
\define journalButton()
<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}}
aria-label={{$:/language/Buttons/NewJournalHere/Caption}}
class=<<tv-config-toolbar-class>>
actions=<<journalButtonActions>>>
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/new-journal-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>
</span>
</$list>
</$button>
\end
<$set name="journalTitleTemplate" value={{$:/config/NewJournal/Title}}>
<$set name="tid" value=<<currentTiddler>>>
<<journalButton>>
</$set>
</$set>
Built from branch 'tiddlywiki-com' at commit 1a6be5ae09de1289727e9a981560d295cf8f361a of https://github.com/Jermolene/TiddlyWiki5.git at 2020-04-15 15:19:44 UTC
$:/core/ui/SideBar/Recent
$:/.giffmex/ui/EditTemplate
{
"tiddlers": {
"$:/Acknowledgements": {
"title": "$:/Acknowledgements",
"text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
},
"$:/core/copyright.txt": {
"title": "$:/core/copyright.txt",
"type": "text/plain",
"text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2020, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
},
"$:/core/icon": {
"title": "$:/core/icon",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
},
"$:/core/images/add-comment": {
"title": "$:/core/images/add-comment",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\"/></svg>"
},
"$:/core/images/advanced-search-button": {
"title": "$:/core/images/advanced-search-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"
},
"$:/core/images/auto-height": {
"title": "$:/core/images/auto-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/blank": {
"title": "$:/core/images/blank",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"
},
"$:/core/images/bold": {
"title": "$:/core/images/bold",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"
},
"$:/core/images/cancel-button": {
"title": "$:/core/images/cancel-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"
},
"$:/core/images/chevron-down": {
"title": "$:/core/images/chevron-down",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"
},
"$:/core/images/chevron-left": {
"title": "$:/core/images/chevron-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"
},
"$:/core/images/chevron-right": {
"title": "$:/core/images/chevron-right",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"
},
"$:/core/images/chevron-up": {
"title": "$:/core/images/chevron-up",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"
},
"$:/core/images/clone-button": {
"title": "$:/core/images/clone-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"
},
"$:/core/images/close-all-button": {
"title": "$:/core/images/close-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"
},
"$:/core/images/close-button": {
"title": "$:/core/images/close-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"
},
"$:/core/images/close-others-button": {
"title": "$:/core/images/close-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"
},
"$:/core/images/copy-clipboard": {
"title": "$:/core/images/copy-clipboard",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"
},
"$:/core/images/delete-button": {
"title": "$:/core/images/delete-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"
},
"$:/core/images/done-button": {
"title": "$:/core/images/done-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"
},
"$:/core/images/down-arrow": {
"title": "$:/core/images/down-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"
},
"$:/core/images/download-button": {
"title": "$:/core/images/download-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"
},
"$:/core/images/edit-button": {
"title": "$:/core/images/edit-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"
},
"$:/core/images/erase": {
"title": "$:/core/images/erase",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"
},
"$:/core/images/excise": {
"title": "$:/core/images/excise",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"
},
"$:/core/images/export-button": {
"title": "$:/core/images/export-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"
},
"$:/core/images/file": {
"title": "$:/core/images/file",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"
},
"$:/core/images/fixed-height": {
"title": "$:/core/images/fixed-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/fold-all-button": {
"title": "$:/core/images/fold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"
},
"$:/core/images/fold-button": {
"title": "$:/core/images/fold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"
},
"$:/core/images/fold-others-button": {
"title": "$:/core/images/fold-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/folder": {
"title": "$:/core/images/folder",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"
},
"$:/core/images/full-screen-button": {
"title": "$:/core/images/full-screen-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"
},
"$:/core/images/github": {
"title": "$:/core/images/github",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"
},
"$:/core/images/gitter": {
"title": "$:/core/images/gitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"
},
"$:/core/images/globe": {
"title": "$:/core/images/globe",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"
},
"$:/core/images/heading-1": {
"title": "$:/core/images/heading-1",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"
},
"$:/core/images/heading-2": {
"title": "$:/core/images/heading-2",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"
},
"$:/core/images/heading-3": {
"title": "$:/core/images/heading-3",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"
},
"$:/core/images/heading-4": {
"title": "$:/core/images/heading-4",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"
},
"$:/core/images/heading-5": {
"title": "$:/core/images/heading-5",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"
},
"$:/core/images/heading-6": {
"title": "$:/core/images/heading-6",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"
},
"$:/core/images/help": {
"title": "$:/core/images/help",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"
},
"$:/core/images/home-button": {
"title": "$:/core/images/home-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"
},
"$:/core/images/import-button": {
"title": "$:/core/images/import-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"
},
"$:/core/images/info-button": {
"title": "$:/core/images/info-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"
},
"$:/core/images/italic": {
"title": "$:/core/images/italic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"
},
"$:/core/images/left-arrow": {
"title": "$:/core/images/left-arrow",
"created": "20150315234410875",
"modified": "20150315235324760",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"
},
"$:/core/images/line-width": {
"title": "$:/core/images/line-width",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"
},
"$:/core/images/link": {
"title": "$:/core/images/link",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"
},
"$:/core/images/linkify": {
"title": "$:/core/images/linkify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\"/></svg>"
},
"$:/core/images/list-bullet": {
"title": "$:/core/images/list-bullet",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"
},
"$:/core/images/list-number": {
"title": "$:/core/images/list-number",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"
},
"$:/core/images/list": {
"title": "$:/core/images/list",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"
},
"$:/core/images/locked-padlock": {
"title": "$:/core/images/locked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/mail": {
"title": "$:/core/images/mail",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"
},
"$:/core/images/menu-button": {
"title": "$:/core/images/menu-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"
},
"$:/core/images/mono-block": {
"title": "$:/core/images/mono-block",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"
},
"$:/core/images/mono-line": {
"title": "$:/core/images/mono-line",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"
},
"$:/core/images/new-button": {
"title": "$:/core/images/new-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"
},
"$:/core/images/new-here-button": {
"title": "$:/core/images/new-here-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"
},
"$:/core/images/new-image-button": {
"title": "$:/core/images/new-image-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"
},
"$:/core/images/new-journal-button": {
"title": "$:/core/images/new-journal-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"
},
"$:/core/images/opacity": {
"title": "$:/core/images/opacity",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"
},
"$:/core/images/open-window": {
"title": "$:/core/images/open-window",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"
},
"$:/core/images/options-button": {
"title": "$:/core/images/options-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"
},
"$:/core/images/paint": {
"title": "$:/core/images/paint",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"
},
"$:/core/images/palette": {
"title": "$:/core/images/palette",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"
},
"$:/core/images/permalink-button": {
"title": "$:/core/images/permalink-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"
},
"$:/core/images/permaview-button": {
"title": "$:/core/images/permaview-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"
},
"$:/core/images/picture": {
"title": "$:/core/images/picture",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></svg>"
},
"$:/core/images/plugin-generic-language": {
"title": "$:/core/images/plugin-generic-language",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-plugin": {
"title": "$:/core/images/plugin-generic-plugin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-theme": {
"title": "$:/core/images/plugin-generic-theme",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"
},
"$:/core/images/preview-closed": {
"title": "$:/core/images/preview-closed",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"
},
"$:/core/images/preview-open": {
"title": "$:/core/images/preview-open",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"
},
"$:/core/images/print-button": {
"title": "$:/core/images/print-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"
},
"$:/core/images/quote": {
"title": "$:/core/images/quote",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"
},
"$:/core/images/refresh-button": {
"title": "$:/core/images/refresh-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"
},
"$:/core/images/right-arrow": {
"title": "$:/core/images/right-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"
},
"$:/core/images/rotate-left": {
"title": "$:/core/images/rotate-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"
},
"$:/core/images/save-button": {
"title": "$:/core/images/save-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"
},
"$:/core/images/size": {
"title": "$:/core/images/size",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"
},
"$:/core/images/spiral": {
"title": "$:/core/images/spiral",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01a1.047 1.047 0 01-.264-.332c-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"/></svg>"
},
"$:/core/images/stamp": {
"title": "$:/core/images/stamp",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"
},
"$:/core/images/star-filled": {
"title": "$:/core/images/star-filled",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"
},
"$:/core/images/storyview-classic": {
"title": "$:/core/images/storyview-classic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-pop": {
"title": "$:/core/images/storyview-pop",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-zoomin": {
"title": "$:/core/images/storyview-zoomin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"
},
"$:/core/images/strikethrough": {
"title": "$:/core/images/strikethrough",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"
},
"$:/core/images/subscript": {
"title": "$:/core/images/subscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/superscript": {
"title": "$:/core/images/superscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/tag-button": {
"title": "$:/core/images/tag-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"
},
"$:/core/images/theme-button": {
"title": "$:/core/images/theme-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"
},
"$:/core/images/timestamp-off": {
"title": "$:/core/images/timestamp-off",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/></g></svg>"
},
"$:/core/images/timestamp-on": {
"title": "$:/core/images/timestamp-on",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/></g></svg>"
},
"$:/core/images/tip": {
"title": "$:/core/images/tip",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"
},
"$:/core/images/transcludify": {
"title": "$:/core/images/transcludify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"
},
"$:/core/images/twitter": {
"title": "$:/core/images/twitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"
},
"$:/core/images/underline": {
"title": "$:/core/images/underline",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"
},
"$:/core/images/unfold-all-button": {
"title": "$:/core/images/unfold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unfold-button": {
"title": "$:/core/images/unfold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unlocked-padlock": {
"title": "$:/core/images/unlocked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/up-arrow": {
"title": "$:/core/images/up-arrow",
"created": "20150316000544368",
"modified": "20150316000831867",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"
},
"$:/core/images/video": {
"title": "$:/core/images/video",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"
},
"$:/core/images/warning": {
"title": "$:/core/images/warning",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></svg>"
},
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "advanced search"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "Advanced search"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "cancel"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "Discard changes to this tiddler"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "clone"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "Clone this tiddler"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "close"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "Close this tiddler"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "close all"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "Close all tiddlers"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "close others"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "Close other tiddlers"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "control panel"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "Open control panel"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "copy to clipboard"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "Copy this text to the clipboard"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "delete"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "Delete this tiddler"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "edit"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "Edit this tiddler"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "encryption"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "Set or clear a password for saving this wiki"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "clear password"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "Clear the password and save this wiki without encryption"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "set password"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "Set a password for saving this wiki with encryption"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "export all"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "Export all tiddlers"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "export tiddler"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "Export tiddler"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "export tiddlers"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "Export tiddlers"
},
"$:/language/Buttons/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "Select the sidebar search field"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "fold tiddler"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "Fold the body of this tiddler"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "fold-bar"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "Optional bars to fold and unfold tiddlers"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "unfold tiddler"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "Unfold the body of this tiddler"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "fold other tiddlers"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "Fold the bodies of other opened tiddlers"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "fold all tiddlers"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "Fold the bodies of all opened tiddlers"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "unfold all tiddlers"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "Unfold the bodies of all opened tiddlers"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "full-screen"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "Enter or leave full-screen mode"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "help"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "Show help panel"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "import"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "Import many types of file including text, image, TiddlyWiki or JSON"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "info"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "Show information for this tiddler"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "home"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "Open the default tiddlers"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "language"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "Choose the user interface language"
},
"$:/language/Buttons/Manager/Caption": {
"title": "$:/language/Buttons/Manager/Caption",
"text": "tiddler manager"
},
"$:/language/Buttons/Manager/Hint": {
"title": "$:/language/Buttons/Manager/Hint",
"text": "Open tiddler manager"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "more"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "More actions"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "new here"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "Create a new tiddler tagged with this one"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "new journal"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "Create a new journal tiddler"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "new journal here"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "Create a new journal tiddler tagged with this one"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "new image"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "Create a new image tiddler"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "new Markdown tiddler"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "Create a new Markdown tiddler"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "new tiddler"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "Create a new tiddler"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "open in new window"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "Open tiddler in new window"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "palette"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "Choose the colour palette"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "permalink"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "Set browser address bar to a direct link to this tiddler"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "permaview"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "Set browser address bar to a direct link to all the tiddlers in this story"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "print page"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "Print the current page"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "refresh"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "Perform a full refresh of the wiki"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "ok"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "Confirm changes to this tiddler"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "save changes"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "Save changes"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "storyview"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "Choose the story visualisation"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "hide sidebar"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "Hide sidebar"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "show sidebar"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "Show sidebar"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "tag manager"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "Open tag manager"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "timestamps"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "Choose whether modifications update timestamps"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "timestamps are on"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "Update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "timestamps are off"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "Don't update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "theme"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "Choose the display theme"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "bold"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "Apply bold formatting to selection"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "clear"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "Clear image to solid colour"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "editor height"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "Automatically adjust height to fit content"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "Fixed height:"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "Choose the height of the text editor"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "excise"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "Perform excision"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "Macro name:"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "Title of new tiddler:"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "Replace excised text with:"
},
"$:/language/Buttons/Excise/Caption/Replace/Macro": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
"text": "macro"
},
"$:/language/Buttons/Excise/Caption/Replace/Link": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Link",
"text": "link"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "transclusion"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "Tag new tiddler with the title of this tiddler"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "Warning: tiddler already exists"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "Excise the selected text into a new tiddler"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "heading 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "Apply heading level 1 formatting to lines containing selection"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "heading 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "Apply heading level 2 formatting to lines containing selection"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "heading 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "Apply heading level 3 formatting to lines containing selection"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "heading 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "Apply heading level 4 formatting to lines containing selection"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "heading 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "Apply heading level 5 formatting to lines containing selection"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "heading 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "Apply heading level 6 formatting to lines containing selection"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "italic"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "Apply italic formatting to selection"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "line width"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "Set line width for painting"
},
"$:/language/Buttons/Link/Caption": {
"title": "$:/language/Buttons/Link/Caption",
"text": "link"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "Create wikitext link"
},
"$:/language/Buttons/Linkify/Caption": {
"title": "$:/language/Buttons/Linkify/Caption",
"text": "wikilink"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "Wrap selection in square brackets"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "bulleted list"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "Apply bulleted list formatting to lines containing selection"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "numbered list"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "Apply numbered list formatting to lines containing selection"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "monospaced block"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "Apply monospaced block formatting to lines containing selection"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "monospaced"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "Apply monospaced character formatting to selection"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "opacity"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "Set painting opacity"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "paint colour"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "Set painting colour"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "picture"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "Insert picture"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "preview"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "Show preview pane"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "preview type"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "Choose preview type"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "quote"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "Apply quoted text formatting to lines containing selection"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "rotate left"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "Rotate image left by 90 degrees"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "image size"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "Height:"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "Resize image"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "Width:"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "Set image size"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "stamp"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "Add your own"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "Insert a preconfigured snippet of text"
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "Name as shown in menu"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "strikethrough"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "Apply strikethrough formatting to selection"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "subscript"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "Apply subscript formatting to selection"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "superscript"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "Apply superscript formatting to selection"
},
"$:/language/Buttons/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "Toggle the sidebar visibility"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "transclusion"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "Wrap selection in curly brackets"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "underline"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "Apply underline formatting to selection"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "Advanced"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "Internal information about this TiddlyWiki"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "Appearance"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "Ways to customise the appearance of your TiddlyWiki."
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "Animation duration"
},
"$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "Default focus field for new tiddlers"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "Basics"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "Default tiddlers"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "Choose which tiddlers are displayed at startup"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "Hello! Current language:"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "Title of new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "Text for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "Tags for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "Title of new tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "Tags for new tiddlers"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "Number of overridden shadow tiddlers"
},
"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
"text": "Number of shadow tiddlers"
},
"$:/language/ControlPanel/Basics/Subtitle/Prompt": {
"title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
"text": "Subtitle"
},
"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
"text": "Number of system tiddlers"
},
"$:/language/ControlPanel/Basics/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tags/Prompt",
"text": "Number of tags"
},
"$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
"text": "Number of tiddlers"
},
"$:/language/ControlPanel/Basics/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/Title/Prompt",
"text": "Title of this ~TiddlyWiki"
},
"$:/language/ControlPanel/Basics/Username/Prompt": {
"title": "$:/language/ControlPanel/Basics/Username/Prompt",
"text": "Username for signing edits"
},
"$:/language/ControlPanel/Basics/Version/Prompt": {
"title": "$:/language/ControlPanel/Basics/Version/Prompt",
"text": "~TiddlyWiki version"
},
"$:/language/ControlPanel/EditorTypes/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Caption",
"text": "Editor Types"
},
"$:/language/ControlPanel/EditorTypes/Editor/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
"text": "Editor"
},
"$:/language/ControlPanel/EditorTypes/Hint": {
"title": "$:/language/ControlPanel/EditorTypes/Hint",
"text": "These tiddlers determine which editor is used to edit specific tiddler types."
},
"$:/language/ControlPanel/EditorTypes/Type/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
"text": "Type"
},
"$:/language/ControlPanel/Info/Caption": {
"title": "$:/language/ControlPanel/Info/Caption",
"text": "Info"
},
"$:/language/ControlPanel/Info/Hint": {
"title": "$:/language/ControlPanel/Info/Hint",
"text": "Information about this TiddlyWiki"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
"text": "Type shortcut here"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
"text": "add shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
"text": "Keyboard Shortcuts"
},
"$:/language/ControlPanel/KeyboardShortcuts/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
"text": "Manage keyboard shortcut assignments"
},
"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
"text": "No keyboard shortcuts assigned"
},
"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
"text": "remove keyboard shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
"text": "All platforms"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
"text": "Macintosh platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
"text": "Non-Macintosh platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
"text": "Linux platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
"text": "Non-Linux platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
"text": "Windows platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
"text": "Non-Windows platforms only"
},
"$:/language/ControlPanel/LoadedModules/Caption": {
"title": "$:/language/ControlPanel/LoadedModules/Caption",
"text": "Loaded Modules"
},
"$:/language/ControlPanel/LoadedModules/Hint": {
"title": "$:/language/ControlPanel/LoadedModules/Hint",
"text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
},
"$:/language/ControlPanel/Palette/Caption": {
"title": "$:/language/ControlPanel/Palette/Caption",
"text": "Palette"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
"text": "clone"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
"text": "It is recommended that you clone this shadow palette before editing it"
},
"$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "delete this entry from the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "Show color names that are not part of the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "This shadow palette has been modified"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "Editing"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "reset"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "hide editor"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "Current palette:"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "show editor"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "Parsing"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "Block Parse Rules"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "Inline Parse Rules"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "Pragma Parse Rules"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "Get more plugins"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "Install plugins from the official library"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "Also requires:"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "disable"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "Disable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(disabled)"
},
"$:/language/ControlPanel/Plugins/Downgrade/Caption": {
"title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
"text": "downgrade"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "None"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "enable"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "Enable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "install"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "Currently installed plugins:"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "Languages"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "Language pack plugins"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "This plugin is not currently installed"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "open plugin library"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "close plugin library"
},
"$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(requires reload)"
},
"$:/language/ControlPanel/Plugins/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Plugins/Hint": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "reinstall"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "Themes"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "Theme plugins"
},
"$:/language/ControlPanel/Plugins/Update/Caption": {
"title": "$:/language/ControlPanel/Plugins/Update/Caption",
"text": "update"
},
"$:/language/ControlPanel/Plugins/Updates/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/Caption",
"text": "Updates"
},
"$:/language/ControlPanel/Plugins/Updates/Hint": {
"title": "$:/language/ControlPanel/Plugins/Updates/Hint",
"text": "Available updates to installed plugins"
},
"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
"text": "Update <<update-count>> plugins"
},
"$:/language/ControlPanel/Plugins/SubPluginPrompt": {
"title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
"text": "With <<count>> sub-plugins available"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "Saving"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "Permit automatic saving for the download saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "Enable Autosave for Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "These settings apply to the HTML5-compatible download saver"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "General"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "These settings apply to all the loaded savers"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
},
"$:/language/ControlPanel/Saving/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "Target branch for saving"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "Saved by TiddlyWiki"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "These settings are only used when saving to <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "Filename of target file (e.g. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "Path to target file (e.g. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "Target repository (e.g. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
"text": "Server API URL"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "Username"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
"text": "~GitHub Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "~GitLab Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
"text": "Gitea Saver"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "Advanced Settings"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "Backup Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "Backups"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
"text": "~TiddlySpot Saver"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "Upload Filename"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "Password"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "Server URL"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "Upload Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "Wiki Name"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "Autosave"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "Do not save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "Save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "Attempt to automatically save changes during editing when using a supporting saver"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "Camel Case Wiki Links"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "Enable automatic ~CamelCase linking"
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "Settings"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "Enable or disable the editor toolbar:"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "Show editor toolbar"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "Tiddler Info Panel Mode"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "Control when the tiddler info panel closes:"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "Tiddler info panel closes automatically"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "Tiddler info panel stays open until explicitly closed"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "These settings let you customise the behaviour of TiddlyWiki."
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "Navigation Address Bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "Behaviour of the browser address bar when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "Do not update the address bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "Include the target tiddler"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "Include the target tiddler and the current story sequence"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "Navigation History"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "Update browser history when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "Do not update history"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "Update history"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
"text": "Permalink/permaview Mode"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
"text": "Choose how permalink/permaview is handled:"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
"text": "Copy permalink/permaview URL to clipboard"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
"text": "Update address bar with permalink/permaview URL"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "Performance Instrumentation"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "Enable performance instrumentation"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "Toolbar Button Style"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "Choose the style for toolbar buttons:"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "Borderless"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "Boxed"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "Rounded"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "Toolbar Buttons"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "Default toolbar button appearance:"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "Include icon"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "Include text"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "Default Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "Specify which sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "Default More Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "Specify which More sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "Tiddler Opening Behaviour"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "Navigation from //within// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "Navigation from //outside// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "Open above the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "Open below the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "Open at the top of the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "Open at the bottom of the story river"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "Tiddler Titles"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "Optionally display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "Do not display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "Display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "Wiki Links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "Choose whether to link to tiddlers that do not exist yet"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "Enable links to missing tiddlers"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "Story View"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "Current view:"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "Stylesheets"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "Expand All"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "Restore"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "Theme"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "Current theme:"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "Tiddler Fields"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "Toolbars"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "Edit Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "Select which toolbar buttons are displayed"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "Page Toolbar"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "View Toolbar"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "Download full wiki"
},
"$:/language/Date/DaySuffix/1": {
"title": "$:/language/Date/DaySuffix/1",
"text": "st"
},
"$:/language/Date/DaySuffix/2": {
"title": "$:/language/Date/DaySuffix/2",
"text": "nd"
},
"$:/language/Date/DaySuffix/3": {
"title": "$:/language/Date/DaySuffix/3",
"text": "rd"
},
"$:/language/Date/DaySuffix/4": {
"title": "$:/language/Date/DaySuffix/4",
"text": "th"
},
"$:/language/Date/DaySuffix/5": {
"title": "$:/language/Date/DaySuffix/5",
"text": "th"
},
"$:/language/Date/DaySuffix/6": {
"title": "$:/language/Date/DaySuffix/6",
"text": "th"
},
"$:/language/Date/DaySuffix/7": {
"title": "$:/language/Date/DaySuffix/7",
"text": "th"
},
"$:/language/Date/DaySuffix/8": {
"title": "$:/language/Date/DaySuffix/8",
"text": "th"
},
"$:/language/Date/DaySuffix/9": {
"title": "$:/language/Date/DaySuffix/9",
"text": "th"
},
"$:/language/Date/DaySuffix/10": {
"title": "$:/language/Date/DaySuffix/10",
"text": "th"
},
"$:/language/Date/DaySuffix/11": {
"title": "$:/language/Date/DaySuffix/11",
"text": "th"
},
"$:/language/Date/DaySuffix/12": {
"title": "$:/language/Date/DaySuffix/12",
"text": "th"
},
"$:/language/Date/DaySuffix/13": {
"title": "$:/language/Date/DaySuffix/13",
"text": "th"
},
"$:/language/Date/DaySuffix/14": {
"title": "$:/language/Date/DaySuffix/14",
"text": "th"
},
"$:/language/Date/DaySuffix/15": {
"title": "$:/language/Date/DaySuffix/15",
"text": "th"
},
"$:/language/Date/DaySuffix/16": {
"title": "$:/language/Date/DaySuffix/16",
"text": "th"
},
"$:/language/Date/DaySuffix/17": {
"title": "$:/language/Date/DaySuffix/17",
"text": "th"
},
"$:/language/Date/DaySuffix/18": {
"title": "$:/language/Date/DaySuffix/18",
"text": "th"
},
"$:/language/Date/DaySuffix/19": {
"title": "$:/language/Date/DaySuffix/19",
"text": "th"
},
"$:/language/Date/DaySuffix/20": {
"title": "$:/language/Date/DaySuffix/20",
"text": "th"
},
"$:/language/Date/DaySuffix/21": {
"title": "$:/language/Date/DaySuffix/21",
"text": "st"
},
"$:/language/Date/DaySuffix/22": {
"title": "$:/language/Date/DaySuffix/22",
"text": "nd"
},
"$:/language/Date/DaySuffix/23": {
"title": "$:/language/Date/DaySuffix/23",
"text": "rd"
},
"$:/language/Date/DaySuffix/24": {
"title": "$:/language/Date/DaySuffix/24",
"text": "th"
},
"$:/language/Date/DaySuffix/25": {
"title": "$:/language/Date/DaySuffix/25",
"text": "th"
},
"$:/language/Date/DaySuffix/26": {
"title": "$:/language/Date/DaySuffix/26",
"text": "th"
},
"$:/language/Date/DaySuffix/27": {
"title": "$:/language/Date/DaySuffix/27",
"text": "th"
},
"$:/language/Date/DaySuffix/28": {
"title": "$:/language/Date/DaySuffix/28",
"text": "th"
},
"$:/language/Date/DaySuffix/29": {
"title": "$:/language/Date/DaySuffix/29",
"text": "th"
},
"$:/language/Date/DaySuffix/30": {
"title": "$:/language/Date/DaySuffix/30",
"text": "th"
},
"$:/language/Date/DaySuffix/31": {
"title": "$:/language/Date/DaySuffix/31",
"text": "st"
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "Sunday"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "Monday"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "Tuesday"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "Wednesday"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "Thursday"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "Friday"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "Saturday"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "January"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "February"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "March"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "April"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "May"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "June"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "July"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "August"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "September"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "October"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "November"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "December"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "am"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "pm"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "Sun"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "Mon"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "Tue"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "Wed"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "Thu"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "Fri"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "Sat"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "Jan"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "Feb"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "Mar"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "Apr"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "May"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "Jun"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "Jul"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "Aug"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "Sep"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "Oct"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "Nov"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "Dec"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "<<period>> days from now"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "<<period>> hours from now"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "<<period>> minutes from now"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "<<period>> months from now"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "1 second from now"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "<<period>> seconds from now"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "<<period>> years from now"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "<<period>> days ago"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "<<period>> hours ago"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "<<period>> minutes ago"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "<<period>> months ago"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "1 second ago"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "<<period>> seconds ago"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "<<period>> years ago"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "A sub-operator for the ''all'' filter operator."
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "Animations that may be used with the RevealWidget."
},
"$:/language/Docs/ModuleTypes/authenticator": {
"title": "$:/language/Docs/ModuleTypes/authenticator",
"text": "Defines how requests are authenticated by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "A bitmap editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "Commands that can be executed under Node.js."
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "Data to be inserted into `$tw.config`."
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "Individual filter operator methods."
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "Global data to be inserted into `$tw`."
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "Operands for the ''is'' filter operator."
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "Generic module type for general purpose JavaScript modules."
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "JavaScript macro definitions."
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "Parsers for different content types."
},
"$:/language/Docs/ModuleTypes/route": {
"title": "$:/language/Docs/ModuleTypes/route",
"text": "Defines how individual URL patterns are handled by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "Savers handle different methods for saving files from the browser."
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "Startup functions."
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "Story views customise the animation and behaviour of list widgets."
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "A text editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "Converts different content types into tiddlers."
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "Defines the behaviour of an individual tiddler field."
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "Adds methods to the `$tw.Tiddler` prototype."
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "Applies upgrade processing to tiddlers during an upgrade/import."
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "Adds methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "Adds Node.js-specific methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "Widgets encapsulate DOM rendering and refreshing."
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "Adds methods to `$tw.Wiki`."
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "Individual parser rules for the main WikiText parser."
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "Alert background"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "Alert border"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "Alert highlight"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "Alert muted foreground"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "General background"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "Blockquote bar"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "Default button background"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "Default button border"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "Default button foreground"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "Unsaved changes indicator"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "Code background"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "Code border"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "Code foreground"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "Download button background"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "Download button foreground"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "Dragger background"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "Dragger foreground"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "Dropdown background"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "Dropdown border"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "Dropdown tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "Dropdown tab background"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "Dropzone background"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "External link background hover"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "External link background visited"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "External link background"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "External link foreground hover"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "External link foreground visited"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "External link foreground"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "General foreground"
},
"$:/language/Docs/PaletteColours/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "Menu bar background"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "Menu bar foreground"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "Message box background"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "Message box border"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "Message box foreground"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "Modal backdrop"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "Modal background"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "Modal border"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "Modal footer background"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "Modal footer border"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "Modal header border"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "General muted foreground"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "Notification background"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "Notification border"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "Page background"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "Preformatted code background"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "Preformatted code border"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "General primary"
},
"$:/language/Docs/PaletteColours/select-tag-background": {
"title": "$:/language/Docs/PaletteColours/select-tag-background",
"text": "`<select>` element background"
},
"$:/language/Docs/PaletteColours/select-tag-foreground": {
"title": "$:/language/Docs/PaletteColours/select-tag-foreground",
"text": "`<select>` element text"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "Sidebar button foreground"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "Sidebar controls foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "Sidebar controls foreground"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "Sidebar foreground shadow"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "Sidebar foreground"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "Sidebar muted foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "Sidebar muted foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "Sidebar tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "Sidebar tab background"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "Sidebar tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "Sidebar tab border"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "Sidebar tab divider"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "Sidebar tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "Sidebar tab foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "Sidebar tiddler link foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "Sidebar tiddler link foreground"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "Site title foreground"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "Static alert foreground"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "Tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "Tab background"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "Tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "Tab border"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "Tab divider"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "Tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "Tab foreground"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "Table border"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "Table footer background"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "Table header background"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "Tag background"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "Tag foreground"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "Tiddler background"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "Tiddler border"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "Tiddler controls foreground hover"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "Tiddler controls foreground for selected controls"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "Tiddler controls foreground"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "Tiddler editor background"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "Tiddler editor border image"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "Tiddler editor border"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "Tiddler editor background for even fields"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "Tiddler editor background for odd fields"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "Tiddler info panel background"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "Tiddler info panel border"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "Tiddler info panel tab background"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "Tiddler link background"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "Tiddler link foreground"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "Tiddler subtitle foreground"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "Tiddler title foreground"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "Toolbar 'new tiddler' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "Toolbar 'options' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "Toolbar 'save' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "Toolbar 'info' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "Toolbar 'edit' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "Toolbar 'close' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "Toolbar 'delete' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "Toolbar 'cancel' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "Toolbar 'done' button foreground"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "Untagged pill background"
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "Very muted foreground"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "Type the text for this tiddler"
},
"$:/language/EditTemplate/Body/Preview/Type/Output": {
"title": "$:/language/EditTemplate/Body/Preview/Type/Output",
"text": "output"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "remove field"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "Remove field"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "field list"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "Show field list"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Fields/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "Add the new field to the tiddler"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "field name"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "Add a new field:"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "field value"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "System fields"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "User fields"
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Tags/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "add tag"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "tag name"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "tag list"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "Show tag list"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "Target tiddler already exists"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following references to this tiddler will not be automatically updated:"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "content type list"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "Show content type list"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "delete content type"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "Delete content type"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "content type"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "Type:"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "Static HTML"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "JSON file"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "CSV file"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "\".tid\" file"
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "The full URI of an external image tiddler"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "The name of the bag from which a tiddler came"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "The text to be displayed on a tab or button"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "The CSS color value associated with a tiddler"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "The date a tiddler was created"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "The name of the person who created a tiddler"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "For a plugin, lists the dependent plugin titles"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "The descriptive text for a plugin, or a modal dialogue"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "For draft tiddlers, contains the proposed new title of the tiddler"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "The footer text for a wizard"
},
"$:/language/Docs/Fields/hide-body": {
"title": "$:/language/Docs/Fields/hide-body",
"text": "The view template will hide bodies of tiddlers if set to: ''yes''"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "The title of the tiddler containing the icon associated with a tiddler"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "An ordered list of tiddler titles associated with a tiddler"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "The date and time at which a tiddler was last modified"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "The tiddler title associated with the person who last modified a tiddler"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "The human readable name associated with a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "A numerical value indicating the priority of a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "The type of plugin in a plugin tiddler"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "The revision of the tiddler held at the server"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "Date of a TiddlyWiki release"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "The source URL associated with a tiddler"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "The subtitle text for a wizard"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "A list of tags associated with a tiddler"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "The body text of a tiddler"
},
"$:/language/Docs/Fields/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "If present, throttles refreshes of this tiddler"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "The unique name of a tiddler"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "The content type of a tiddler"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "Version information for a plugin"
},
"$:/language/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "If present, indicates that the tiddler text field must be loaded from the server"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "All tiddlers except system tiddlers"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "Recently modified tiddlers, including system tiddlers"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "Recently modified tiddlers"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "All tags except system tags"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "Missing tiddlers"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "Draft tiddlers"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "Orphan tiddlers"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "System tiddlers"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "Shadow tiddlers"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "Overridden shadow tiddlers"
},
"$:/language/Filters/SessionTiddlers": {
"title": "$:/language/Filters/SessionTiddlers",
"text": "Tiddlers modified since the wiki was loaded"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "System tags"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "Non wiki-text tiddlers"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "Automatically run configured commands",
"text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "Clear a password for subsequent crypto operations",
"text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
},
"$:/language/Help/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "Deletes a group of tiddlers",
"text": "<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "Lists the available editions of TiddlyWiki",
"text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "Fetch tiddlers from wiki by URL",
"text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "Display help for TiddlyWiki commands",
"text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "Import tiddlers from a file",
"text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "Initialise a new wiki folder",
"text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
},
"$:/language/Help/listen": {
"title": "$:/language/Help/listen",
"description": "Provides an HTTP server interface to TiddlyWiki",
"text": "Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "Load tiddlers from a file",
"text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "Construct library plugin required by upgrade process",
"text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"text": "No such help item"
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "Set the base output directory for subsequent commands",
"text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "Set a password for subsequent crypto operations",
"text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "Renders individual tiddlers to files",
"text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''template'': Optional template through which each tiddler is rendered\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "Render an individual tiddler as a specified ContentType",
"text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "Render tiddlers matching a filter to a specified ContentType",
"text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "Saves individual raw tiddlers to files",
"text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "Saves a raw tiddler to a file",
"text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "Saves a group of raw tiddlers to a directory",
"text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
},
"$:/language/Help/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "Saves a wiki to a new wiki folder",
"text": "<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)",
"text": "Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "Prepares external tiddlers for use",
"text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "Unpack the payload tiddlers from a plugin",
"text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "Triggers verbose output mode",
"text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "Displays the version number of TiddlyWiki",
"text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "The following tiddlers were imported:"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "Cancel"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "These tiddlers are ready to import:"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "Import"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "Select"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "Status"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "Title"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "Preview:"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "Text"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "Text (Raw)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "Fields"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "Diff"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "Diff (Fields)"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
"text": "Blocked incompatible or obsolete plugin"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
"text": "Blocked plugin (due to incoming <<incoming>> being older than existing <<existing>>)"
},
"$:/language/Import/Upgrader/Plugins/Upgraded": {
"title": "$:/language/Import/Upgrader/Plugins/Upgraded",
"text": "Upgraded plugin from <<incoming>> to <<upgraded>>"
},
"$:/language/Import/Upgrader/State/Suppressed": {
"title": "$:/language/Import/Upgrader/State/Suppressed",
"text": "Blocked temporary state tiddler"
},
"$:/language/Import/Upgrader/System/Suppressed": {
"title": "$:/language/Import/Upgrader/System/Suppressed",
"text": "Blocked system tiddler"
},
"$:/language/Import/Upgrader/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "Core module tiddler"
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable"
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "Migrated theme tweak from <$text text=<<from>>/>"
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "This tiddler contains binary data"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "upgrade"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "close all"
},
"$:/language/ColourPicker/Recent": {
"title": "$:/language/ColourPicker/Recent",
"text": "Recent:"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "count"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "New Tiddler"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> differences"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "Drop here (or use the 'Escape' key to cancel)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "Cancel"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "Set a new password for this TiddlyWiki"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "Username"
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "Password"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "Repeat password"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "Passwords do not match"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "Set password"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "Error"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "File changed on server"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "Filter error"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "Syntax error in filter expression"
},
"$:/language/Error/IsFilterOperator": {
"title": "$:/language/Error/IsFilterOperator",
"text": "Filter Error: Unknown operand for the 'is' filter operator"
},
"$:/language/Error/LoadingPluginLibrary": {
"title": "$:/language/Error/LoadingPluginLibrary",
"text": "Error loading plugin library"
},
"$:/language/Error/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "Recursive transclusion error in transclude widget"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "Error retrieving skinny tiddler list"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "Error saving to TWEdit"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "Error while saving"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "XMLHttpRequest error code"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "Internal JavaScript Error"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "Login to TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(none)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "Filter by tag:"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "Reverse order"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "Search"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "Search:"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "tags"
},
"$:/language/Manager/Controls/Show/Option/Tiddlers": {
"title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
"text": "tiddlers"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "Show:"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "Sort by:"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "Colour"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "Fields"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(none)"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "Icon"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "Raw text"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "Tags"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "Tools"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "Wikified text"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "No"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "Official ~TiddlyWiki Plugin Library"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to ~JavaScript plugins to take effect"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "DDth MMM YYYY"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "This is a system tiddler"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "Include system tiddlers"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "Colour"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "Count"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "Icon"
},
"$:/language/TagManager/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "None"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "Info"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "Tag"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "DDth MMM YYYY at hh12:0mmam"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "You have unsaved changes in TiddlyWiki"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "Yes"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"subtitle": "Download changes",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/DownloadingChanges.html",
"text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"subtitle": "Save your work",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "DDth MMM YYYY"
},
"$:/config/NewJournal/Text": {
"title": "$:/config/NewJournal/Text",
"text": ""
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"tags": "Journal"
},
"$:/language/Notifications/Save/Done": {
"title": "$:/language/Notifications/Save/Done",
"text": "Saved wiki"
},
"$:/language/Notifications/Save/Starting": {
"title": "$:/language/Notifications/Save/Starting",
"text": "Starting to save wiki"
},
"$:/language/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "Copied to clipboard!"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "Failed to copy to clipboard!"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "List"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "Filter"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "All matches:"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "Title matches:"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "Search"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "Search text too short"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "Shadows"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "Search for shadow tiddlers"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "Standard"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "Search for standard tiddlers"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "System"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "Search for system tiddlers"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "All"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "Contents"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "Drafts"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "Explorer"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "Missing"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "More"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "Open"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "Orphans"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "Recent"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "Shadows"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "System"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "Tags"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "untagged"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "Tools"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "Types"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "a non-linear personal web notebook"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "My ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "List of tiddlers by tag",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Macro definition",
"text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table with 4 columns by 3 rows",
"text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table of Contents",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "Theme Tweaks"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "You can tweak certain aspects of the ''Vanilla'' theme."
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "Options"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "Sidebar layout"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "Fixed story, fluid sidebar"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "Fluid story, fixed sidebar"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "Sticky titles"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "Causes tiddler titles to \"stick\" to the top of the browser window"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "Wrap long lines in code blocks"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "Settings"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "Font family"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "Code font family"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "Editor font family"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "Page background image"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "Page background image attachment"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "Scroll with tiddlers"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "Fixed to window"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "Page background image size"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
"text": "Auto"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "Cover"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "Contain"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "Sizes"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "Font size"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "Line height"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "Font size for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "Line height for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "Story left position"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "Story top position"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "how far the top margin of the story river<br>is from the top of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "Story right"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "how far the left margin of the sidebar <br>is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "Story width"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "the overall width of the story river"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "Tiddler width"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "within the story river"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "Sidebar breakpoint"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "Sidebar width"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "the width of the sidebar in fluid-fixed layout"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "Advanced"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "none"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "Plugin Details"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "This plugin contains the following shadow tiddlers:"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "Shadow Status"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "It is overridden by an ordinary tiddler"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "Fields"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "List"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "This tiddler does not have a list"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "Listed"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "This tiddler is not listed by any others"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "References"
},
"$:/language/TiddlerInfo/References/Empty": {
"title": "$:/language/TiddlerInfo/References/Empty",
"text": "No tiddlers link to this one"
},
"$:/language/TiddlerInfo/Tagging/Caption": {
"title": "$:/language/TiddlerInfo/Tagging/Caption",
"text": "Tagging"
},
"$:/language/TiddlerInfo/Tagging/Empty": {
"title": "$:/language/TiddlerInfo/Tagging/Empty",
"text": "No tiddlers are tagged with this one"
},
"$:/language/TiddlerInfo/Tools/Caption": {
"title": "$:/language/TiddlerInfo/Tools/Caption",
"text": "Tools"
},
"$:/language/Docs/Types/application/javascript": {
"title": "$:/language/Docs/Types/application/javascript",
"description": "JavaScript code",
"name": "application/javascript",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "JSON data",
"name": "application/json",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "Data dictionary",
"name": "application/x-tiddler-dictionary",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "GIF image",
"name": "image/gif",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "JPEG image",
"name": "image/jpeg",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "PNG image",
"name": "image/png",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "Structured Vector Graphics image",
"name": "image/svg+xml",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "ICO format icon file",
"name": "image/x-icon",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "Static stylesheet",
"name": "text/css",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "HTML markup",
"name": "text/html",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "Plain text",
"name": "text/plain",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki 5",
"name": "text/vnd.tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki Classic",
"name": "text/x-tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/languages/en-GB/icon": {
"title": "$:/languages/en-GB/icon",
"type": "image/svg+xml",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
},
"$:/languages/en-GB": {
"title": "$:/languages/en-GB",
"name": "en-GB",
"description": "English (British)",
"author": "JeremyRuston",
"core-version": ">=5.0.0\"",
"text": "Stub pseudo-plugin for the default language"
},
"$:/core/modules/commander.js": {
"title": "$:/core/modules/commander.js",
"text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\t// Parse named parameters if required\n\t\t\t\tif(command.info.namedParameterMode) {\n\t\t\t\t\tparams = this.extractNamedParameters(params,command.info.mandatoryParameters);\n\t\t\t\t\tif(typeof params === \"string\") {\n\t\t\t\t\t\treturn this.callback(params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nGiven an array of parameter strings `params` in name:value format, and an array of mandatory parameter names in `mandatoryParameters`, returns a hashmap of values or a string if error\n*/\nCommander.prototype.extractNamedParameters = function(params,mandatoryParameters) {\n\tmandatoryParameters = mandatoryParameters || [];\n\tvar errors = [],\n\t\tparamsByName = Object.create(null);\n\t// Extract the parameters\n\t$tw.utils.each(params,function(param) {\n\t\tvar index = param.indexOf(\"=\");\n\t\tif(index < 1) {\n\t\t\terrors.push(\"malformed named parameter: '\" + param + \"'\");\n\t\t}\n\t\tparamsByName[param.slice(0,index)] = $tw.utils.trim(param.slice(index+1));\n\t});\n\t// Check the mandatory parameters are present\n\t$tw.utils.each(mandatoryParameters,function(mandatoryParameter) {\n\t\tif(!$tw.utils.hop(paramsByName,mandatoryParameter)) {\n\t\t\terrors.push(\"missing mandatory parameter: '\" + mandatoryParameter + \"'\");\n\t\t}\n\t});\n\t// Return any errors\n\tif(errors.length > 0) {\n\t\treturn errors.join(\" and\\n\");\n\t} else {\n\t\treturn paramsByName;\t\t\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/commands/build.js": {
"title": "$:/core/modules/commands/build.js",
"text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/clearpassword.js": {
"title": "$:/core/modules/commands/clearpassword.js",
"text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/deletetiddlers.js": {
"title": "$:/core/modules/commands/deletetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/deletetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to delete tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"deletetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filter\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\twiki.deleteTiddler(title);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/editions.js": {
"title": "$:/core/modules/commands/editions.js",
"text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\" \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/fetch.js": {
"title": "$:/core/modules/commands/fetch.js",
"text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = $tw.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t \tdata = [];\n\t self.commander.write(\"Reading \" + url + \": \");\n\t response.on(\"data\",function(chunk) {\n\t data.push(chunk);\n\t self.commander.write(\".\");\n\t });\n\t response.on(\"end\",function() {\n\t self.commander.write(\"\\n\");\n\t if(response.statusCode === 200) {\n\t\t self.processBody(Buffer.concat(data),type,options,url);\n\t\t callback(null);\n\t } else {\n\t \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t \t} else {\n\t\t \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t \t\t\n\t \t}\n\t }\n\t \t});\n\t \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/help.js": {
"title": "$:/core/modules/commands/help.js",
"text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/import.js": {
"title": "$:/core/modules/commands/import.js",
"text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/init.js": {
"title": "$:/core/modules/commands/init.js",
"text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/listen.js": {
"title": "$:/core/modules/commands/listen.js",
"text": "/*\\\ntitle: $:/core/modules/commands/listen.js\ntype: application/javascript\nmodule-type: command\n\nListen for HTTP requests and serve tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"listen\",\n\tsynchronous: true,\n\tnamedParameterMode: true,\n\tmandatoryParameters: [],\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: self.params\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/load.js": {
"title": "$:/core/modules/commands/load.js",
"text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count && self.params[1] !== \"noerror\") {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/makelibrary.js": {
"title": "$:/core/modules/commands/makelibrary.js",
"text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = fs.readdirSync(folder);\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = fs.readdirSync(folder);\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),collectPlugins);\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers})\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/output.js": {
"title": "$:/core/modules/commands/output.js",
"text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/password.js": {
"title": "$:/core/modules/commands/password.js",
"text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/render.js": {
"title": "$:/core/modules/commands/render.js",
"text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvarName = this.params[4],\n\t\tvarValue = this.params[5],\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title),\n\t\t\tvariables = {currentTiddler: title};\n\t\tif(varName) {\n\t\t\tvariables[varName] = varValue || \"\";\n\t\t}\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: variables}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddler.js": {
"title": "$:/core/modules/commands/rendertiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddlers.js": {
"title": "$:/core/modules/commands/rendertiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/save.js": {
"title": "$:/core/modules/commands/save.js",
"text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savelibrarytiddlers.js": {
"title": "$:/core/modules/commands/savelibrarytiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\tdoesRequireReload = !!$tw.wiki.doesPluginInfoRequireReload(pluginTiddlers),\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{\n\t\t\ttext: undefined,\n\t\t\treadme: readmeContent,\n\t\t\t\"requires-reload\": doesRequireReload ? \"yes\" : \"no\",\n\t\t\ticon: iconContent\n\t\t}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddler.js": {
"title": "$:/core/modules/commands/savetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddlers.js": {
"title": "$:/core/modules/commands/savetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savewikifolder.js": {
"title": "$:/core/modules/commands/savewikifolder.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savewikifolder.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the current wiki as a wiki folder\n\n--savewikifolder <wikifolderpath> [<filter>]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savewikifolder\",\n\tsynchronous: true\n};\n\nvar fs,path;\nif($tw.node) {\n\tfs = require(\"fs\");\n\tpath = require(\"path\");\n}\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing wiki folder path\";\n\t}\n\tvar wikifoldermaker = new WikiFolderMaker(this.params[0],this.params[1],this.commander);\n\treturn wikifoldermaker.save();\n};\n\nfunction WikiFolderMaker(wikiFolderPath,wikiFilter,commander) {\n\tthis.wikiFolderPath = wikiFolderPath;\n\tthis.wikiFilter = wikiFilter || \"[all[tiddlers]]\";\n\tthis.commander = commander;\n\tthis.wiki = commander.wiki;\n\tthis.savedPaths = []; // So that we can detect filename clashes\n}\n\nWikiFolderMaker.prototype.log = function(str) {\n\tif(this.commander.verbose) {\n\t\tconsole.log(str);\n\t}\n};\n\nWikiFolderMaker.prototype.tiddlersToIgnore = [\n\t\"$:/boot/boot.css\",\n\t\"$:/boot/boot.js\",\n\t\"$:/boot/bootprefix.js\",\n\t\"$:/core\",\n\t\"$:/library/sjcl.js\",\n\t\"$:/temp/info-plugin\"\n];\n\n/*\nReturns null if successful, or an error string if there was an error\n*/\nWikiFolderMaker.prototype.save = function() {\n\tvar self = this;\n\t// Check that the output directory doesn't exist\n\tif(fs.existsSync(this.wikiFolderPath) && !$tw.utils.isDirectoryEmpty(this.wikiFolderPath)) {\n\t\treturn \"The unpackwiki command requires that the output wiki folder be empty\";\n\t}\n\t// Get the tiddlers from the source wiki\n\tvar tiddlerTitles = this.wiki.filterTiddlers(this.wikiFilter);\n\t// Initialise a new tiddlwiki.info file\n\tvar newWikiInfo = {};\n\t// Process each incoming tiddler in turn\n\t$tw.utils.each(tiddlerTitles,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tif(self.tiddlersToIgnore.indexOf(title) !== -1) {\n\t\t\t\t// Ignore the core plugin and the ephemeral info plugin\n\t\t\t\tself.log(\"Ignoring tiddler: \" + title);\n\t\t\t} else {\n\t\t\t\tvar type = tiddler.fields.type,\n\t\t\t\t\tpluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif(type === \"application/json\" && pluginType) {\n\t\t\t\t\t// Plugin tiddler\n\t\t\t\t\tvar libraryDetails = self.findPluginInLibrary(title);\n\t\t\t\t\tif(libraryDetails) {\n\t\t\t\t\t\t// A plugin from the core library\n\t\t\t\t\t\tself.log(\"Adding built-in plugin: \" + libraryDetails.name);\n\t\t\t\t\t\tnewWikiInfo[libraryDetails.type] = newWikiInfo[libraryDetails.type] || [];\n\t\t\t\t\t\t$tw.utils.pushTop(newWikiInfo[libraryDetails.type],libraryDetails.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// A custom plugin\n\t\t\t\t\t\tself.log(\"Processing custom plugin: \" + title);\n\t\t\t\t\t\tself.saveCustomPlugin(tiddler);\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t// Ordinary tiddler\n\t\t\t\t\tself.saveTiddler(\"tiddlers\",tiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Save the tiddlywiki.info file\n\tthis.saveJSONFile(\"tiddlywiki.info\",newWikiInfo);\n\tself.log(\"Writing tiddlywiki.info: \" + JSON.stringify(newWikiInfo,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\n/*\nTest whether the specified tiddler is a plugin in the plugin library\n*/\nWikiFolderMaker.prototype.findPluginInLibrary = function(title) {\n\tvar parts = title.split(\"/\"),\n\t\tpluginPath, type, name;\n\tif(parts[0] === \"$:\") {\n\t\tif(parts[1] === \"languages\" && parts.length === 3) {\n\t\t\tpluginPath = \"languages\" + path.sep + parts[2];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2];\n\t\t} else if(parts[1] === \"plugins\" || parts[1] === \"themes\" && parts.length === 4) {\n\t\t\tpluginPath = parts[1] + path.sep + parts[2] + path.sep + parts[3];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2] + \"/\" + parts[3];\n\t\t}\n\t}\n\tif(pluginPath && type && name) {\n\t\tpluginPath = path.resolve($tw.boot.bootPath,\"..\",pluginPath);\n\t\tif(fs.existsSync(pluginPath)) {\n\t\t\treturn {\n\t\t\t\tpluginPath: pluginPath,\n\t\t\t\ttype: type,\n\t\t\t\tname: name\n\t\t\t};\n\t\t}\n\t}\n\treturn false;\n};\n\nWikiFolderMaker.prototype.saveCustomPlugin = function(pluginTiddler) {\n\tvar self = this,\n\t\tpluginTitle = pluginTiddler.fields.title,\n\t\ttitleParts = pluginTitle.split(\"/\"),\n\t\tdirectory = $tw.utils.generateTiddlerFilepath(titleParts[titleParts.length - 1],{\n\t\t\tdirectory: path.resolve(this.wikiFolderPath,pluginTiddler.fields[\"plugin-type\"] + \"s\")\n\t\t}),\n\t\tpluginInfo = pluginTiddler.getFieldStrings({exclude: [\"text\",\"type\"]});\n\tthis.saveJSONFile(directory + path.sep + \"plugin.info\",pluginInfo);\n\tself.log(\"Writing \" + directory + path.sep + \"plugin.info: \" + JSON.stringify(pluginInfo,null,$tw.config.preferences.jsonSpaces));\n\tvar pluginTiddlers = JSON.parse(pluginTiddler.fields.text).tiddlers; // A hashmap of tiddlers in the plugin\n\t$tw.utils.each(pluginTiddlers,function(tiddler) {\n\t\tself.saveTiddler(directory,new $tw.Tiddler(tiddler));\n\t});\n};\n\nWikiFolderMaker.prototype.saveTiddler = function(directory,tiddler) {\n\tvar fileInfo = $tw.utils.generateTiddlerFileInfo(tiddler,{\n\t\tdirectory: path.resolve(this.wikiFolderPath,directory),\n\t\twiki: this.wiki\n\t});\n\t$tw.utils.saveTiddlerToFileSync(tiddler,fileInfo);\n};\n\nWikiFolderMaker.prototype.saveJSONFile = function(filename,json) {\n\tthis.saveTextFile(filename,JSON.stringify(json,null,$tw.config.preferences.jsonSpaces));\n};\n\nWikiFolderMaker.prototype.saveTextFile = function(filename,data) {\n\tthis.saveFile(filename,\"utf8\",data);\n};\n\nWikiFolderMaker.prototype.saveFile = function(filename,encoding,data) {\n\tvar filepath = path.resolve(this.wikiFolderPath,filename);\n\t$tw.utils.createFileDirectories(filepath);\n\tfs.writeFileSync(filepath,data,encoding);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/server.js": {
"title": "$:/core/modules/commands/server.js",
"text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nDeprecated legacy command for serving tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: {\n\t\t\tport: this.params[0],\n\t\t\thost: this.params[6],\n\t\t\t\"root-tiddler\": this.params[1],\n\t\t\t\"root-render-type\": this.params[2],\n\t\t\t\"root-serve-type\": this.params[3],\n\t\t\tusername: this.params[4],\n\t\t\tpassword: this.params[5],\n\t\t\t\"path-prefix\": this.params[7],\n\t\t\t\"debug-level\": this.params[8]\n\t\t}\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/setfield.js": {
"title": "$:/core/modules/commands/setfield.js",
"text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/unpackplugin.js": {
"title": "$:/core/modules/commands/unpackplugin.js",
"text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/verbose.js": {
"title": "$:/core/modules/commands/verbose.js",
"text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n \" + $tw.boot.logMessages.join(\"\\n \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/version.js": {
"title": "$:/core/modules/commands/version.js",
"text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/config.js": {
"title": "$:/core/modules/config.js",
"text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter: \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
"type": "application/javascript",
"module-type": "config"
},
"$:/core/modules/deserializers.js": {
"title": "$:/core/modules/deserializers.js",
"text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlerdeserializer"
},
"$:/core/modules/editor/engines/framed.js": {
"title": "$:/core/modules/editor/engines/framed.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\tthis.domNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/engines/simple.js": {
"title": "$:/core/modules/editor/engines/simple.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.domNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/factory.js": {
"title": "$:/core/modules/editor/factory.js",
"text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag) || \"input\";\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/operations/bitmap/clear.js": {
"title": "$:/core/modules/editor/operations/bitmap/clear.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/resize.js": {
"title": "$:/core/modules/editor/operations/bitmap/resize.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/rotate-left.js": {
"title": "$:/core/modules/editor/operations/bitmap/rotate-left.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/text/excise.js": {
"title": "$:/core/modules/editor/operations/text/excise.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ? [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/make-link.js": {
"title": "$:/core/modules/editor/operations/text/make-link.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/prefix-lines.js": {
"title": "$:/core/modules/editor/operations/text/prefix-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\tvar targetCount = parseInt(event.paramObject.count + \"\",10);\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,targetCount);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== targetCount) {\n\t\t\t// Apply the prefix\n\t\t\tline = prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-all.js": {
"title": "$:/core/modules/editor/operations/text/replace-all.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-selection.js": {
"title": "$:/core/modules/editor/operations/text/replace-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/save-selection.js": {
"title": "$:/core/modules/editor/operations/text/save-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/save-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to save the current selection in a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"save-selection\"] = function(event,operation) {\n\tvar tiddler = event.paramObject.tiddler,\n\t\tfield = event.paramObject.field || \"text\";\n\tif(tiddler && field) {\n\t\tthis.wiki.setText(tiddler,field,null,operation.text.substring(operation.selStart,operation.selEnd));\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-lines.js": {
"title": "$:/core/modules/editor/operations/text/wrap-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-selection.js": {
"title": "$:/core/modules/editor/operations/text/wrap-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix\n\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\toperation.replacement = \"\";\n\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/filters/addprefix.js": {
"title": "$:/core/modules/filters/addprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/addsuffix.js": {
"title": "$:/core/modules/filters/addsuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/after.js": {
"title": "$:/core/modules/filters/after.js",
"text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/all/current.js": {
"title": "$:/core/modules/filters/all/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/missing.js": {
"title": "$:/core/modules/filters/all/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/orphans.js": {
"title": "$:/core/modules/filters/all/orphans.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/shadows.js": {
"title": "$:/core/modules/filters/all/shadows.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tags.js": {
"title": "$:/core/modules/filters/all/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tiddlers.js": {
"title": "$:/core/modules/filters/all/tiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all.js": {
"title": "$:/core/modules/filters/all.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/backlinks.js": {
"title": "$:/core/modules/filters/backlinks.js",
"text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/before.js": {
"title": "$:/core/modules/filters/before.js",
"text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/commands.js": {
"title": "$:/core/modules/filters/commands.js",
"text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/compare.js": {
"title": "$:/core/modules/filters/compare.js",
"text": "/*\\\ntitle: $:/core/modules/filters/compare.js\ntype: application/javascript\nmodule-type: filteroperator\n\nGeneral purpose comparison operator\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.compare = function(source,operator,options) {\n\tvar suffixes = operator.suffixes || [],\n\t\ttype = (suffixes[0] || [])[0],\n\t\tmode = (suffixes[1] || [])[0],\n\t\ttypeFn = types[type] || types.number,\n\t\tmodeFn = modes[mode] || modes.eq,\n\t\tinvert = operator.prefix === \"!\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tif(modeFn(typeFn(title,operator.operand)) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nvar types = {\n\t\"number\": function(a,b) {\n\t\treturn compare($tw.utils.parseNumber(a),$tw.utils.parseNumber(b));\n\t},\n\t\"integer\": function(a,b) {\n\t\treturn compare($tw.utils.parseInt(a),$tw.utils.parseInt(b));\n\t},\n\t\"string\": function(a,b) {\n\t\treturn compare(\"\" + a,\"\" +b);\n\t},\n\t\"date\": function(a,b) {\n\t\tvar dateA = $tw.utils.parseDate(a),\n\t\t\tdateB = $tw.utils.parseDate(b);\n\t\tif(!isFinite(dateA)) {\n\t\t\tdateA = new Date(0);\n\t\t}\n\t\tif(!isFinite(dateB)) {\n\t\t\tdateB = new Date(0);\n\t\t}\n\t\treturn compare(dateA,dateB);\n\t},\n\t\"version\": function(a,b) {\n\t\treturn $tw.utils.compareVersions(a,b);\n\t}\n};\n\nfunction compare(a,b) {\n\tif(a > b) {\n\t\treturn +1;\n\t} else if(a < b) {\n\t\treturn -1;\n\t} else {\n\t\treturn 0;\n\t}\n};\n\nvar modes = {\n\t\"eq\": function(value) {return value === 0;},\n\t\"ne\": function(value) {return value !== 0;},\n\t\"gteq\": function(value) {return value >= 0;},\n\t\"gt\": function(value) {return value > 0;},\n\t\"lteq\": function(value) {return value <= 0;},\n\t\"lt\": function(value) {return value < 0;}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/contains.js": {
"title": "$:/core/modules/filters/contains.js",
"text": "/*\\\ntitle: $:/core/modules/filters/contains.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for finding values in array fields\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.contains = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"list\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/count.js": {
"title": "$:/core/modules/filters/count.js",
"text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/days.js": {
"title": "$:/core/modules/filters/days.js",
"text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/each.js": {
"title": "$:/core/modules/filters/each.js",
"text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/eachday.js": {
"title": "$:/core/modules/filters/eachday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editiondescription.js": {
"title": "$:/core/modules/filters/editiondescription.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editions.js": {
"title": "$:/core/modules/filters/editions.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/else.js": {
"title": "$:/core/modules/filters/else.js",
"text": "/*\\\ntitle: $:/core/modules/filters/else.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing an empty input list with a constant, passing a non-empty input list straight through\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.else = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tif(results.length === 0) {\n\t\treturn [operator.operand];\n\t} else {\n\t\treturn results;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/decodeuricomponent.js": {
"title": "$:/core/modules/filters/decodeuricomponent.js",
"text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURIComponent(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURI(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\nexports.escapecss = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t// escape any character with a special meaning in CSS using CSS.escape()\n\t\tresults.push(CSS.escape(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/enlist.js": {
"title": "$:/core/modules/filters/enlist.js",
"text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar allowDuplicates = false;\n\tswitch(operator.suffix) {\n\t\tcase \"raw\":\n\t\t\tallowDuplicates = true;\n\t\t\tbreak;\n\t\tcase \"dedupe\":\n\t\t\tallowDuplicates = false;\n\t\t\tbreak;\n\t}\n\tvar list = $tw.utils.parseStringArray(operator.operand,allowDuplicates);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/field.js": {
"title": "$:/core/modules/filters/field.js",
"text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],indexedResults,\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif(source.byField && operator.operand) {\n\t\t\t\tindexedResults = source.byField(fieldname,operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults\n\t\t\t\t}\n\t\t\t}\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/fields.js": {
"title": "$:/core/modules/filters/fields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName,\n\t\tsuffixes = (operator.suffixes || [])[0] || [],\n\t\toperand = $tw.utils.parseStringArray(operator.operand);\n\t\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(suffixes.indexOf(\"include\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? $tw.utils.pushTop(results,fieldName) : \"\";\n\t\t\t\t}\n\t\t\t} else if (suffixes.indexOf(\"exclude\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? \"\" : $tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else if\n\t\t\telse {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else\n\t\t} // if (tiddler)\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/get.js": {
"title": "$:/core/modules/filters/get.js",
"text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getindex.js": {
"title": "$:/core/modules/filters/getindex.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getvariable.js": {
"title": "$:/core/modules/filters/getvariable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getvariable.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing input values by the value of the variable with the same name, or blank if the variable is missing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getvariable = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.widget.getVariable(title) || \"\");\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/has.js": {
"title": "$:/core/modules/filters/has.js",
"text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field or index\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse if(operator.suffix === \"index\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === \"\")) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\t\t\t\t\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/haschanged.js": {
"title": "$:/core/modules/filters/haschanged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/indexes.js": {
"title": "$:/core/modules/filters/indexes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/insertbefore.js": {
"title": "$:/core/modules/filters/insertbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/is/binary.js": {
"title": "$:/core/modules/filters/is/binary.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/binary.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[binary]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.binary = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/blank.js": {
"title": "$:/core/modules/filters/is/blank.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/blank.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[blank]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.blank = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/current.js": {
"title": "$:/core/modules/filters/is/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/image.js": {
"title": "$:/core/modules/filters/is/image.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/missing.js": {
"title": "$:/core/modules/filters/is/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/orphan.js": {
"title": "$:/core/modules/filters/is/orphan.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/shadow.js": {
"title": "$:/core/modules/filters/is/shadow.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/system.js": {
"title": "$:/core/modules/filters/is/system.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tag.js": {
"title": "$:/core/modules/filters/is/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tiddler.js": {
"title": "$:/core/modules/filters/is/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/variable.js": {
"title": "$:/core/modules/filters/is/variable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/variable.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[variable]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variable = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!(title in options.widget.variables)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title in options.widget.variables) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is.js": {
"title": "$:/core/modules/filters/is.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/limit.js": {
"title": "$:/core/modules/filters/limit.js",
"text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/links.js": {
"title": "$:/core/modules/filters/links.js",
"text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/list.js": {
"title": "$:/core/modules/filters/list.js",
"text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listed.js": {
"title": "$:/core/modules/filters/listed.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listops.js": {
"title": "$:/core/modules/filters/listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/lookup.js": {
"title": "$:/core/modules/filters/lookup.js",
"text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || options.wiki.getTiddlerText(operator.operand + operator.suffix));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/match.js": {
"title": "$:/core/modules/filters/match.js",
"text": "/*\\\ntitle: $:/core/modules/filters/match.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title matches a string\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.match = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = (operator.suffixes || [])[0] || [];\n\tif(suffixes.indexOf(\"caseinsensitive\") !== -1) {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() !== (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() === (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title !== operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title === operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/math.js": {
"title": "$:/core/modules/filters/math.js",
"text": "/*\\\ntitle: $:/core/modules/filters/math.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for math. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\nNote that strings are converted to numbers automatically. Trailing non-digits are ignored.\n\n* \"\" converts to 0\n* \"12kk\" converts to 12\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.negate = makeNumericBinaryOperator(\n\tfunction(a) {return -a}\n);\n\nexports.abs = makeNumericBinaryOperator(\n\tfunction(a) {return Math.abs(a)}\n);\n\nexports.ceil = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(a)}\n);\n\nexports.floor = makeNumericBinaryOperator(\n\tfunction(a) {return Math.floor(a)}\n);\n\nexports.round = makeNumericBinaryOperator(\n\tfunction(a) {return Math.round(a)}\n);\n\nexports.trunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.trunc(a)}\n);\n\nexports.untrunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(Math.abs(a)) * Math.sign(a)}\n);\n\nexports.sign = makeNumericBinaryOperator(\n\tfunction(a) {return Math.sign(a)}\n);\n\nexports.add = makeNumericBinaryOperator(\n\tfunction(a,b) {return a + b;}\n);\n\nexports.subtract = makeNumericBinaryOperator(\n\tfunction(a,b) {return a - b;}\n);\n\nexports.multiply = makeNumericBinaryOperator(\n\tfunction(a,b) {return a * b;}\n);\n\nexports.divide = makeNumericBinaryOperator(\n\tfunction(a,b) {return a / b;}\n);\n\nexports.remainder = makeNumericBinaryOperator(\n\tfunction(a,b) {return a % b;}\n);\n\nexports.max = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.max(a,b);}\n);\n\nexports.min = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.min(a,b);}\n);\n\nexports.fixed = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toFixed.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.precision = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toPrecision.call(a,Math.min(Math.max(b,1),100));}\n);\n\nexports.exponential = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toExponential.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.sum = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator + value},\n\t0 // Initial value\n);\n\nexports.product = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator * value},\n\t1 // Initial value\n);\n\nexports.maxall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.max(accumulator,value)},\n\t-Infinity // Initial value\n);\n\nexports.minall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.min(accumulator,value)},\n\tInfinity // Initial value\n);\n\nfunction makeNumericBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [],\n\t\t\tnumOperand = $tw.utils.parseNumber(operator.operand);\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push($tw.utils.stringifyNumber(fnCalc($tw.utils.parseNumber(title),numOperand)));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeNumericReducingOperator(fnCalc,initialValue) {\n\tinitialValue = initialValue || 0;\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [$tw.utils.stringifyNumber(result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,$tw.utils.parseNumber(currentValue));\n\t\t},initialValue))];\n\t};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/minlength.js": {
"title": "$:/core/modules/filters/minlength.js",
"text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/modules.js": {
"title": "$:/core/modules/filters/modules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/moduletypes.js": {
"title": "$:/core/modules/filters/moduletypes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/next.js": {
"title": "$:/core/modules/filters/next.js",
"text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/plugintiddlers.js": {
"title": "$:/core/modules/filters/plugintiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/prefix.js": {
"title": "$:/core/modules/filters/prefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/previous.js": {
"title": "$:/core/modules/filters/previous.js",
"text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/range.js": {
"title": "$:/core/modules/filters/range.js",
"text": "/*\\\ntitle: $:/core/modules/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g),\n\t\tbeg, end, inc, i, fixed = 0;\n\tfor (i=0; i<parts.length; i++) {\n\t\t// Validate real number\n\t\tif(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i])) {\n\t\t\treturn [\"range: bad number \\\"\" + parts[i] + \"\\\"\"];\n\t\t}\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif(frac) {\n\t\t\tfixed = Math.max(fixed,frac[0].length-1);\n\t\t}\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\tswitch(parts.length) {\n\t\tcase 1:\n\t\t\tend = parts[0];\n\t\t\tif (end >= 1) {\n\t\t\t\tbeg = 1;\n\t\t\t}\n\t\t\telse if (end <= -1) {\n\t\t\t\tbeg = -1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\tif(inc === 0) {\n\t\treturn [\"range: increment 0 causes infinite loop\"];\n\t}\n\t// May need to count backwards\n\tvar direction = ((end < beg) ? -1 : 1);\n\tinc *= direction;\n\t// Estimate number of resulting elements\n\tif((end - beg) / inc > 10000) {\n\t\treturn [\"range: too many steps (over 10K)\"];\n\t}\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1,fixed);\n\tvar safety = 10010;\n\t// Enumerate the range\n\tif (end<beg) {\n\t\tfor(i=beg; i>end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor(i=beg; i<end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif(safety<0) {\n\t\treturn [\"range: unexpectedly large output\"];\n\t}\n\t// Reverse?\n\tif(operator.prefix === \"!\") {\n\t\tresults.reverse();\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/regexp.js": {
"title": "$:/core/modules/filters/regexp.js",
"text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removeprefix.js": {
"title": "$:/core/modules/filters/removeprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removesuffix.js": {
"title": "$:/core/modules/filters/removesuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title && title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sameday.js": {
"title": "$:/core/modules/filters/sameday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/search.js": {
"title": "$:/core/modules/filters/search.js",
"text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffixes) {\n\t\tvar hasFlag = function(flag) {\n\t\t\t\treturn (operator.suffixes[1] || []).indexOf(flag) !== -1;\n\t\t\t},\n\t\t\texcludeFields = false,\n\t\t\tfieldList = operator.suffixes[0] || [],\n\t\t\tfirstField = fieldList[0] || \"\", \n\t\t\tfirstChar = firstField.charAt(0),\n\t\t\tfields;\n\t\tif(firstChar === \"-\") {\n\t\t\tfields = [firstField.slice(1)].concat(fieldList.slice(1));\n\t\t\texcludeFields = true;\n\t\t} else if(fieldList[0] === \"*\"){\n\t\t\tfields = [];\n\t\t\texcludeFields = true;\n\t\t} else {\n\t\t\tfields = fieldList.slice(0);\n\t\t}\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: fields,\n\t\t\texcludeField: excludeFields,\n\t\t\tcaseSensitive: hasFlag(\"casesensitive\"),\n\t\t\tliteral: hasFlag(\"literal\"),\n\t\t\twhitespace: hasFlag(\"whitespace\"),\n\t\t\tanchored: hasFlag(\"anchored\"),\n\t\t\tregexp: hasFlag(\"regexp\"),\n\t\t\twords: hasFlag(\"words\")\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/shadowsource.js": {
"title": "$:/core/modules/filters/shadowsource.js",
"text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sort.js": {
"title": "$:/core/modules/filters/sort.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/splitbefore.js": {
"title": "$:/core/modules/filters/splitbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/storyviews.js": {
"title": "$:/core/modules/filters/storyviews.js",
"text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/strings.js": {
"title": "$:/core/modules/filters/strings.js",
"text": "/*\\\ntitle: $:/core/modules/filters/strings.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for strings. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.length = makeStringBinaryOperator(\n\tfunction(a) {return [\"\" + (\"\" + a).length];}\n);\n\nexports.uppercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toUpperCase()];}\n);\n\nexports.lowercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toLowerCase()];}\n);\n\nexports.sentencecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toSentenceCase(a)];}\n);\n\nexports.titlecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toTitleCase(a)];}\n);\n\nexports.trim = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.trim(a)];}\n);\n\nexports.split = makeStringBinaryOperator(\n\tfunction(a,b) {return (\"\" + a).split(b);}\n);\n\nexports.join = makeStringReducingOperator(\n\tfunction(accumulator,value,operand) {\n\t\tif(accumulator === null) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn accumulator + operand + value;\n\t\t}\n\t},null\n);\n\nfunction makeStringBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tArray.prototype.push.apply(result,fnCalc(title,operator.operand || \"\"));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeStringReducingOperator(fnCalc,initialValue) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,currentValue,operator.operand || \"\");\n\t\t},initialValue) || \"\"];\n\t};\n}\n\nexports.splitregexp = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\tflags = (suffix.indexOf(\"m\") !== -1 ? \"m\" : \"\") + (suffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tregExp;\n\ttry {\n\t\tregExp = new RegExp(operator.operand || \"\",flags);\t\t\n\t} catch(ex) {\n\t\treturn [\"RegExp error: \" + ex];\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,title.split(regExp));\n\t});\t\t\n\treturn result;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subfilter.js": {
"title": "$:/core/modules/filters/subfilter.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subfilter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand evaluated as a filter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subfilter = function(source,operator,options) {\n\tvar list = options.wiki.filterTiddlers(operator.operand,options.widget,source);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subtiddlerfields.js": {
"title": "$:/core/modules/filters/subtiddlerfields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/suffix.js": {
"title": "$:/core/modules/filters/suffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tag.js": {
"title": "$:/core/modules/filters/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [],indexedResults;\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers;\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tif(source.byTag) {\n\t\t\t\tindexedResults = source.byTag(operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\t\tsource(function(tiddler,title) {\n\t\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t\t}\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tagging.js": {
"title": "$:/core/modules/filters/tagging.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tags.js": {
"title": "$:/core/modules/filters/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/then.js": {
"title": "$:/core/modules/filters/then.js",
"text": "/*\\\ntitle: $:/core/modules/filters/then.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing any titles with a constant\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.then = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/title.js": {
"title": "$:/core/modules/filters/title.js",
"text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/untagged.js": {
"title": "$:/core/modules/filters/untagged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/variables.js": {
"title": "$:/core/modules/filters/variables.js",
"text": "/*\\\ntitle: $:/core/modules/filters/variables.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the active variables\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variables = function(source,operator,options) {\n\tvar names = [];\n\tfor(var variable in options.widget.variables) {\n\t\tnames.push(variable);\n\t}\n\treturn names.sort();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/wikiparserrules.js": {
"title": "$:/core/modules/filters/wikiparserrules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/x-listops.js": {
"title": "$:/core/modules/filters/x-listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n\n /*\n Fetch titles from the current list\n */\n var prepare_results = function (source) {\n var results = [];\n source(function (tiddler, title) {\n results.push(title);\n });\n return results;\n };\n\n /*\n Moves a number of items from the tail of the current list before the item named in the operand\n */\n exports.putbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list after the item named in the operand\n */\n exports.putafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Replaces the item named in the operand with a number of items from the tail of the current list\n */\n exports.replace = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -count) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list to the head of the list\n */\n exports.putfirst = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(-count).concat(results.slice(0, -count));\n };\n\n /*\n Moves a number of items from the head of the current list to the tail of the list\n */\n exports.putlast = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(count).concat(results.slice(0, count));\n };\n\n /*\n Moves the item named in the operand a number of places forward or backward in the list\n */\n exports.move = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1),\n marker = results.splice(index, 1),\n offset = (index + count) > 0 ? index + count : 0;\n return results.slice(0, offset).concat(marker).concat(results.slice(offset));\n };\n\n /*\n Returns the items from the current list that are after the item named in the operand\n */\n exports.allafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1) ? [] :\n (operator.suffix) ? results.slice(index) :\n results.slice(index + 1);\n };\n\n /*\n Returns the items from the current list that are before the item named in the operand\n */\n exports.allbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1) ? [] :\n (operator.suffix) ? results.slice(0, index + 1) :\n results.slice(0, index);\n };\n\n /*\n Appends the items listed in the operand array to the tail of the current list\n */\n exports.append = function (source, operator) {\n var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || append.length;\n return (append.length === 0) ? results :\n (operator.prefix) ? results.concat(append.slice(-count)) :\n results.concat(append.slice(0, count));\n };\n\n /*\n Prepends the items listed in the operand array to the head of the current list\n */\n exports.prepend = function (source, operator) {\n var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,prepend.length);\n return (prepend.length === 0) ? results :\n (operator.prefix) ? prepend.slice(-count).concat(results) :\n prepend.slice(0, count).concat(results);\n };\n\n /*\n Returns all items from the current list except the items listed in the operand array\n */\n exports.remove = function (source, operator) {\n var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || array.length,\n p,\n len,\n index;\n len = array.length - 1;\n for (p = 0; p < count; ++p) {\n if (operator.prefix) {\n index = results.indexOf(array[len - p]);\n } else {\n index = results.indexOf(array[p]);\n }\n if (index !== -1) {\n results.splice(index, 1);\n }\n }\n return results;\n };\n\n /*\n Returns all items from the current list sorted in the order of the items in the operand array\n */\n exports.sortby = function (source, operator) {\n var results = prepare_results(source);\n if (!results || results.length < 2) {\n return results;\n }\n var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n results.sort(function (a, b) {\n return lookup.indexOf(a) - lookup.indexOf(b);\n });\n return results;\n };\n\n /*\n Removes all duplicate items from the current list\n */\n exports.unique = function (source, operator) {\n var results = prepare_results(source);\n var set = results.reduce(function (a, b) {\n if (a.indexOf(b) < 0) {\n a.push(b);\n }\n return a;\n }, []);\n return set;\n };\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters.js": {
"title": "$:/core/modules/filters.js",
"text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\t// The raw suffix for older filters\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t\t// The processed suffix for newer filters\n\t\t\toperator.suffixes = [];\n\t\t\t$tw.utils.each(operator.suffix.split(\":\"),function(subsuffix) {\n\t\t\t\toperator.suffixes.push([]);\n\t\t\t\t$tw.utils.each(subsuffix.split(\",\"),function(entry) {\n\t\t\t\t\tentry = $tw.utils.trim(entry);\n\t\t\t\t\tif(entry) {\n\t\t\t\t\t\toperator.suffixes[operator.suffixes.length - 1].push(entry); \n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operand = operator.operand,\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operand,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tsuffixes: operator.suffixes,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"=\": // The results of the operation are pushed into the result without deduplication\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tArray.prototype.push.apply(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"~\": // This operation is unioned into the result only if the main result so far is empty\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tif(results.length === 0) {\n\t\t\t\t\t\t\t// Main result so far is empty\n\t\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter: \" + filterString,function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/indexers/backlinks-indexer.js": {
"title": "$:/core/modules/indexers/backlinks-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/backlinks-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers' backlinks\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\n\nfunction BacklinksIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nBacklinksIndexer.prototype.init = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype._getLinks = function(tiddler) {\n\tvar parser = this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {});\n\tif(parser) {\n\t\treturn this.wiki.extractLinks(parser.tree);\n\t}\n\treturn [];\n}\n\nBacklinksIndexer.prototype.update = function(updateDescriptor) {\n\tif(!this.index) {\n\t\treturn;\n\t}\n\tvar newLinks = [],\n\t oldLinks = [],\n\t self = this;\n\tif(updateDescriptor.old.exists) {\n\t\toldLinks = this._getLinks(updateDescriptor.old.tiddler);\n\t}\n\tif(updateDescriptor.new.exists) {\n\t\tnewLinks = this._getLinks(updateDescriptor.new.tiddler);\n\t}\n\n\t$tw.utils.each(oldLinks,function(link) {\n\t\tif(self.index[link]) {\n\t\t\tdelete self.index[link][updateDescriptor.old.tiddler.fields.title];\n\t\t}\n\t});\n\t$tw.utils.each(newLinks,function(link) {\n\t\tif(!self.index[link]) {\n\t\t\tself.index[link] = Object.create(null);\n\t\t}\n\t\tself.index[link][updateDescriptor.new.tiddler.fields.title] = true;\n\t});\n}\n\nBacklinksIndexer.prototype.lookup = function(title) {\n\tif(!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tvar self = this;\n\t\tthis.wiki.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self._getLinks(tiddler);\n\t\t\t$tw.utils.each(links, function(link) {\n\t\t\t\tif(!self.index[link]) {\n\t\t\t\t\tself.index[link] = Object.create(null);\n\t\t\t\t}\n\t\t\t\tself.index[link][title] = true;\n\t\t\t});\n\t\t});\n\t}\n\tif(this.index[title]) {\n\t\treturn Object.keys(this.index[title]);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexports.BacklinksIndexer = BacklinksIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/field-indexer.js": {
"title": "$:/core/modules/indexers/field-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/field-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nvar DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH = 128;\n\nfunction FieldIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nFieldIndexer.prototype.init = function() {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH;\n\tthis.addIndexMethods();\n}\n\n// Provided for testing\nFieldIndexer.prototype.setMaxIndexedValueLength = function(length) {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = length;\n};\n\nFieldIndexer.prototype.addIndexMethods = function() {\n\tvar self = this;\n\tthis.wiki.each.byField = function(name,value) {\n\t\tvar titles = self.wiki.allTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachShadow.byField = function(name,value) {\n\t\tvar titles = self.wiki.allShadowTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachTiddlerPlusShadows.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n\tthis.wiki.eachShadowPlusTiddlers.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n};\n\n/*\nTear down and then rebuild the index as if all tiddlers have changed\n*/\nFieldIndexer.prototype.rebuild = function() {\n\t// Invalidate the index so that it will be rebuilt when it is next used\n\tthis.index = null;\n};\n\n/*\nBuild the index for a particular field\n*/\nFieldIndexer.prototype.buildIndexForField = function(name) {\n\tvar self = this;\n\t// Hashmap by field name of hashmap by field value of array of tiddler titles\n\tthis.index = this.index || Object.create(null);\n\tthis.index[name] = Object.create(null);\n\tvar baseIndex = this.index[name];\n\t// Update the index for each tiddler\n\tthis.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\tif(name in tiddler.fields) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t// Skip any values above the maximum length\n\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\tbaseIndex[value] = baseIndex[value] || [];\n\t\t\t\tbaseIndex[value].push(title);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nUpdate the index in the light of a tiddler value changing; note that the title must be identical. (Renames are handled as a separate delete and create)\nupdateDescriptor: {old: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>},new: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>}}\n*/\nFieldIndexer.prototype.update = function(updateDescriptor) {\n\tvar self = this;\n\t// Don't do anything if the index hasn't been built yet\n\tif(this.index === null) {\n\t\treturn;\n\t}\n\t// Remove the old tiddler from the index\n\tif(updateDescriptor.old.tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor.old.tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor.old.tiddler.getFieldString(name),\n\t\t\t\t\ttiddlerList = indexEntry[value];\n\t\t\t\tif(tiddlerList) {\n\t\t\t\t\tvar index = tiddlerList.indexOf(updateDescriptor.old.tiddler.fields.title);\n\t\t\t\t\tif(index !== -1) {\n\t\t\t\t\t\ttiddlerList.splice(index,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// Add the new tiddler to the index\n\tif(updateDescriptor[\"new\"].tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor[\"new\"].tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor[\"new\"].tiddler.getFieldString(name);\n\t\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\t\tindexEntry[value] = indexEntry[value] || [];\n\t\t\t\t\tindexEntry[value].push(updateDescriptor[\"new\"].tiddler.fields.title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n// Lookup the given field returning a list of tiddler titles\nFieldIndexer.prototype.lookup = function(name,value) {\n\t// Fail the lookup if the value is too long\n\tif(value.length >= this.maxIndexedValueLength) {\n\t\treturn null;\n\t}\n\t// Update the index if it has yet to be built\n\tif(this.index === null || !this.index[name]) {\n\t\tthis.buildIndexForField(name);\n\t}\n\treturn this.index[name][value] || [];\n};\n\nexports.FieldIndexer = FieldIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/tag-indexer.js": {
"title": "$:/core/modules/indexers/tag-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/tag-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nfunction TagIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nTagIndexer.prototype.init = function() {\n\tthis.subIndexers = [\n\t\tnew TagSubIndexer(this,\"each\"),\n\t\tnew TagSubIndexer(this,\"eachShadow\"),\n\t\tnew TagSubIndexer(this,\"eachTiddlerPlusShadows\"),\n\t\tnew TagSubIndexer(this,\"eachShadowPlusTiddlers\")\n\t];\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.addIndexMethod();\n\t});\n};\n\nTagIndexer.prototype.rebuild = function() {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.rebuild();\n\t});\n};\n\nTagIndexer.prototype.update = function(updateDescriptor) {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.update(updateDescriptor);\n\t});\n};\n\nfunction TagSubIndexer(indexer,iteratorMethod) {\n\tthis.indexer = indexer;\n\tthis.iteratorMethod = iteratorMethod;\n\tthis.index = null; // Hashmap of tag title to {isSorted: bool, titles: [array]} or null if not yet initialised\n}\n\nTagSubIndexer.prototype.addIndexMethod = function() {\n\tvar self = this;\n\tthis.indexer.wiki[this.iteratorMethod].byTag = function(tag) {\n\t\treturn self.lookup(tag).slice(0);\n\t};\n};\n\nTagSubIndexer.prototype.rebuild = function() {\n\tvar self = this;\n\t// Hashmap by tag of array of {isSorted:, titles:[]}\n\tthis.index = Object.create(null);\n\t// Add all the tags\n\tthis.indexer.wiki[this.iteratorMethod](function(tiddler,title) {\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\tif(!self.index[tag]) {\n\t\t\t\tself.index[tag] = {isSorted: false, titles: [title]};\n\t\t\t} else {\n\t\t\t\tself.index[tag].titles.push(title);\n\t\t\t}\n\t\t});\t\t\n\t});\n};\n\nTagSubIndexer.prototype.update = function(updateDescriptor) {\n\tthis.index = null;\n};\n\nTagSubIndexer.prototype.lookup = function(tag) {\n\t// Update the index if it has yet to be built\n\tif(this.index === null) {\n\t\tthis.rebuild();\n\t}\n\tvar indexRecord = this.index[tag];\n\tif(indexRecord) {\n\t\tif(!indexRecord.isSorted) {\n\t\t\tif(this.indexer.wiki.sortByList) {\n\t\t\t\tindexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag);\n\t\t\t}\t\t\t\n\t\t\tindexRecord.isSorted = true;\n\t\t}\n\t\treturn indexRecord.titles;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n\nexports.TagIndexer = TagIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/info/platform.js": {
"title": "$:/core/modules/info/platform.js",
"text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n\t\t// Language\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/language\", text: navigator.language || \"\"});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "info"
},
"$:/core/modules/keyboard.js": {
"title": "$:/core/modules/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\n\tthis.shortcutActionList = [], // Stores the corresponding action strings\n\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\n\tthis.lookupNames = [\"shortcuts\"];\n\tthis.lookupNames.push($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\")\n\tthis.lookupNames.push($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\tthis.lookupNames.push($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\tthis.updateShortcutLists(this.getShortcutTiddlerList());\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.handleShortcutChanges(changes);\n\t});\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\n\t\t\t\t\tlookupName(platformDescriptor);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\n\treturn $tw.wiki.getTiddlersWithTag(\"$:/tags/KeyboardShortcut\");\n};\n\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\n\tthis.shortcutTiddlers = tiddlerList;\n\tfor(var i=0; i<tiddlerList.length; i++) {\n\t\tvar title = tiddlerList[i],\n\t\t\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\n\t\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\n\t\tthis.shortcutActionList[i] = tiddlerFields.text;\n\t\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\n\t}\n};\n\nKeyboardManager.prototype.handleKeydownEvent = function(event) {\n\tvar key, action;\n\tfor(var i=0; i<this.shortcutTiddlers.length; i++) {\n\t\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\n\t\t\tkey = this.shortcutParsedList[i];\n\t\t\taction = this.shortcutActionList[i];\n\t\t}\n\t}\n\tif(key !== undefined) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\n\tvar shortcutConfigTiddlers = [],\n\t\thandled = false;\n\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\n\t\tvar descriptorString = \"$:/config/\" + platformDescriptor + \"/\";\n\t\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\n\t\t\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\"/\") + 1);\n\t\t\tif(configString === descriptorString) {\n\t\t\t\tshortcutConfigTiddlers.push(configTiddler);\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t});\n\t});\n\tif(handled) {\n\t\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\n\t} else {\n\t\treturn false;\n\t}\n};\n\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\n\tvar newList = this.getShortcutTiddlerList();\n\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\n\t\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\n\t\t(this.detectNewShortcuts(changedTiddlers))\n\t);\n\t// Re-cache shortcuts if something changed\n\tif(hasChanged) {\n\t\tthis.updateShortcutLists(newList);\n\t}\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/language.js": {
"title": "$:/core/modules/language.js",
"text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/macros/changecount.js": {
"title": "$:/core/modules/macros/changecount.js",
"text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/contrastcolour.js": {
"title": "$:/core/modules/macros/contrastcolour.js",
"text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/csvtiddlers.js": {
"title": "$:/core/modules/macros/csvtiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/displayshortcuts.js": {
"title": "$:/core/modules/macros/displayshortcuts.js",
"text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddler.js": {
"title": "$:/core/modules/macros/jsontiddler.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddlers.js": {
"title": "$:/core/modules/macros/jsontiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"spaces\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,spaces) {\n\treturn this.wiki.getTiddlersAsJson(filter,$tw.utils.parseInt(spaces));\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/makedatauri.js": {
"title": "$:/core/modules/macros/makedatauri.js",
"text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"},\n\t{name: \"_canonical_uri\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type,_canonical_uri) {\n\treturn $tw.utils.makeDataUri(text,type,_canonical_uri);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/now.js": {
"title": "$:/core/modules/macros/now.js",
"text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/qualify.js": {
"title": "$:/core/modules/macros/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/resolvepath.js": {
"title": "$:/core/modules/macros/resolvepath.js",
"text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/unusedtitle.js": {
"title": "$:/core/modules/macros/unusedtitle.js",
"text": "/*\\\ntitle: $:/core/modules/macros/unusedtitle.js\ntype: application/javascript\nmodule-type: macro\nMacro to return a new title that is unused in the wiki. It can be given a name as a base.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"unusedtitle\";\n\nexports.params = [\n\t{name: \"baseName\"},\n\t{name: \"options\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(baseName, options) {\n\tif(!baseName) {\n\t\tbaseName = $tw.language.getString(\"DefaultNewTiddlerTitle\");\n\t}\n\treturn this.wiki.generateNewTitle(baseName, options);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/version.js": {
"title": "$:/core/modules/macros/version.js",
"text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/parsers/audioparser.js": {
"title": "$:/core/modules/parsers/audioparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/binaryparser.js": {
"title": "$:/core/modules/parsers/binaryparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/binaryparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe binary parser parses a binary tiddler into a warning message and download link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar BinaryParser = function(type,text,options) {\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on binary tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!title\"}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to external or internal data URI\n\tif(options._canonical_uri) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: options._canonical_uri\n\t\t};\n\t} else if(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/octet-stream\"] = BinaryParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/csvparser.js": {
"title": "$:/core/modules/parsers/csvparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/htmlparser.js": {
"title": "$:/core/modules/parsers/htmlparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/imageparser.js": {
"title": "$:/core/modules/parsers/imageparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/webp\"] = ImageParser;\nexports[\"image/heic\"] = ImageParser;\nexports[\"image/heif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/utils/parseutils.js": {
"title": "$:/core/modules/utils/parseutils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/parsers/pdfparser.js": {
"title": "$:/core/modules/parsers/pdfparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/textparser.js": {
"title": "$:/core/modules/parsers/textparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/videoparser.js": {
"title": "$:/core/modules/parsers/videoparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/ogg\"] = VideoParser;\nexports[\"video/webm\"] = VideoParser;\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/dash.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"–\" : \"—\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/entity.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: ©\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/extlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/heading.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/html.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/html.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/image.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/image.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/import.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/import.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/import.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for importing variable definitions\n\n```\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"import\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\import[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the filter terminated by a line break\n\tvar reMatch = /(.*)(\\r?\\n)|$/mg;\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\tthis.parser.pos = reMatch.lastIndex;\n\t// Parse tree nodes to return\n\treturn [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: match[1]}\n\t\t},\n\t\tchildren: []\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/list.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/list.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"div\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params,\n\t\tisMacroDefinition: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/rules.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/syslink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/table.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/table.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/whitespace.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/wikiparser.js": {
"title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t// Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif(!keepFilter(ruleArray[t].rule.name)) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/pluginswitcher.js": {
"title": "$:/core/modules/pluginswitcher.js",
"text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Read the plugin info for the incoming plugins\n\tvar changes = $tw.wiki.readPluginInfo(plugins);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/saver-handler.js": {
"title": "$:/core/modules/saver-handler.js",
"text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.preloadDirty = options.preloadDirty || [];\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(self.preloadDirty,function(title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t});\n\t\tthis.numChanges = filteredChanges.length;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\";\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\tvar\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/savers/andtidwiki.js": {
"title": "$:/core/modules/savers/andtidwiki.js",
"text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback,options) {\n\tvar filename = options && options.variables ? options.variables.filename : null;\n\tif (method === \"download\") {\n\t\t// Support download\n\t\tif (window.twi.saveDownload) {\n\t\t\ttry {\n\t\t\t\twindow.twi.saveDownload(text,filename);\n\t\t\t} catch(err) {\n\t\t\t\tif (err.message === \"Method not found\") {\n\t\t\t\t\twindow.twi.saveDownload(text);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar link = document.createElement(\"a\");\n\t\t\tlink.setAttribute(\"href\",\"data:text/plain,\" + encodeURIComponent(text));\n\t\t\tif (filename) {\n\t\t\t link.setAttribute(\"download\",filename);\n\t\t\t}\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t}\n\t} else if (window.twi.saveWiki) {\n\t\t// Direct save in Tiddloid\n\t\twindow.twi.saveWiki(text);\n\t} else {\n\t\t// Get the pathname of this document\n\t\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t\t// Strip the file://\n\t\tif(pathname.indexOf(\"file://\") === 0) {\n\t\t\tpathname = pathname.substr(7);\n\t\t}\n\t\t// Strip any query or location part\n\t\tvar p = pathname.indexOf(\"?\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\tp = pathname.indexOf(\"#\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\t// Save the file\n\t\twindow.twi.saveFile(pathname,text);\n\t}\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/beaker.js": {
"title": "$:/core/modules/savers/beaker.js",
"text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/download.js": {
"title": "$:/core/modules/savers/download.js",
"text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/fsosaver.js": {
"title": "$:/core/modules/savers/fsosaver.js",
"text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitea.js": {
"title": "$:/core/modules/savers/gitea.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitea.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the gitea\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GiteaSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGiteaSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/Gitea/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"Gitea\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/Gitea/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/Gitea/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/Gitea/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/Gitea/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/Gitea/ServerURL\") || \"https://gitea\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar use_put = true;\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(sha === \"\"){\n\t\t\t\t\tuse_put = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: endpoint + \"/repos/\" + repo + \"/branches/\" + branch,\n\t\t\t\ttype: \"GET\",\n\t\t\t\theaders: headers,\n\t\t\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\t\t\tif(xhr.status === 404) {\n\t\t\t\t\t\tcallback(\"Please ensure the branch in the Gitea repo exists\");\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdata[\"branch\"] = branch;\n\t\t\t\t\t\tself.upload(uri + filename, use_put?\"PUT\":\"POST\", headers, data, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\nGiteaSaver.prototype.upload = function(uri,method,headers,data,callback) {\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: method,\n\t\theaders: headers,\n\t\tdata: JSON.stringify(data),\n\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\tcallback(null);\n\t\t}\n\t});\n};\n\n/*\nInformation about this saver\n*/\nGiteaSaver.prototype.info = {\n\tname: \"Gitea\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GiteaSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/github.js": {
"title": "$:/core/modules/savers/github.js",
"text": "/*\\\ntitle: $:/core/modules/savers/github.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitHub v3 REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitHubSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitHubSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitHub/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"github\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitHub/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitHub/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitHub/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitHub/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitHub/ServerURL\") || \"https://api.github.com\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/vnd.github.v3+json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a PUT request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + filename,\n\t\t\t\ttype: \"PUT\",\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitHubSaver.prototype.info = {\n\tname: \"github\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitHubSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitlab.js": {
"title": "$:/core/modules/savers/gitlab.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitlab.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitLab REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: true */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitLabSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitLabSaver.prototype.save = function(text,method,callback) {\n\t/* See https://docs.gitlab.com/ee/api/repository_files.html */\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitLab/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"gitlab\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitLab/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitLab/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitLab/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitLab/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitLab/ServerURL\") || \"https://gitlab.com/api/v4\",\n\t\theaders = {\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Private-Token\": password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/projects/\" + encodeURIComponent(repo) + \"/repository/\";\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri + \"tree/?path=\" + encodeURIComponent(path.replace(/^\\/+|\\/$/g, '')) + \"&branch=\" + encodeURIComponent(branch.replace(/^\\/+|\\/$/g, '')),\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar requestType = \"POST\";\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\trequestType = \"PUT\";\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tcommit_message: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: text,\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + \"files/\" + encodeURIComponent(path.replace(/^\\/+/, '') + filename),\n\t\t\t\ttype: requestType,\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitLabSaver.prototype.info = {\n\tname: \"gitlab\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitLabSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/manualdownload.js": {
"title": "$:/core/modules/savers/manualdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/msdownload.js": {
"title": "$:/core/modules/savers/msdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/put.js": {
"title": "$:/core/modules/savers/put.js",
"text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar retrieveETag = function(self) {\n\tvar headers = {\n\t\tAccept: \"*/*;charset=UTF-8\"\n\t};\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err,data,xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tretrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text,method,callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = {\n\t\t\"Content-Type\": \"text/html;charset=UTF-8\"\n\t};\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tvar status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif(self.etag == null) {\n\t\t\t\t\tretrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyfox.js": {
"title": "$:/core/modules/savers/tiddlyfox.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyie.js": {
"title": "$:/core/modules/savers/tiddlyie.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/twedit.js": {
"title": "$:/core/modules/savers/twedit.js",
"text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/upload.js": {
"title": "$:/core/modules/savers/upload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/server/authenticators/basic.js": {
"title": "$:/core/modules/server/authenticators/basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/basic.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for WWW basic authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\nfunction BasicAuthenticator(server) {\n\tthis.server = server;\n\tthis.credentialsData = [];\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nBasicAuthenticator.prototype.init = function() {\n\t// Read the credentials data\n\tthis.credentialsFilepath = this.server.get(\"credentials\");\n\tif(this.credentialsFilepath) {\n\t\tvar resolveCredentialsFilepath = path.resolve($tw.boot.wikiPath,this.credentialsFilepath);\n\t\tif(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {\n\t\t\tvar credentialsText = fs.readFileSync(resolveCredentialsFilepath,\"utf8\"),\n\t\t\t\tcredentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);\n\t\t\tif(typeof credentialsData === \"string\") {\n\t\t\t\treturn \"Error: \" + credentialsData + \" reading credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t\t} else {\n\t\t\t\tthis.credentialsData = credentialsData;\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"Error: Unable to load user credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t}\n\t}\n\t// Add the hardcoded username and password if specified\n\tif(this.server.get(\"username\") && this.server.get(\"password\")) {\n\t\tthis.credentialsData = this.credentialsData || [];\n\t\tthis.credentialsData.push({\n\t\t\tusername: this.server.get(\"username\"),\n\t\t\tpassword: this.server.get(\"password\")\n\t\t});\n\t}\n\treturn this.credentialsData.length > 0;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nBasicAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Extract the incoming username and password from the request\n\tvar header = request.headers.authorization || \"\";\n\tif(!header && state.allowAnon) {\n\t\t// If there's no header and anonymous access is allowed then we don't set authenticatedUsername\n\t\treturn true;\n\t}\n\tvar token = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tincomingUsername = parts[0],\n\t\tincomingPassword = parts[1];\n\t// Check that at least one of the credentials matches\n\tvar matchingCredentials = this.credentialsData.find(function(credential) {\n\t\treturn credential.username === incomingUsername && credential.password === incomingPassword;\n\t});\n\tif(matchingCredentials) {\n\t\t// If so, add the authenticated username to the request state\n\t\tstate.authenticatedUsername = incomingUsername;\n\t\treturn true;\n\t} else {\n\t\t// If not, return an authentication challenge\n\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\n\t\treturn false;\n\t}\n};\n\nexports.AuthenticatorClass = BasicAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/authenticators/header.js": {
"title": "$:/core/modules/server/authenticators/header.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/header.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for trusted header authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction HeaderAuthenticator(server) {\n\tthis.server = server;\n\tthis.header = server.get(\"authenticated-user-header\");\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nHeaderAuthenticator.prototype.init = function() {\n\treturn !!this.header;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nHeaderAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Otherwise, authenticate as the username in the specified header\n\tvar username = request.headers[this.header];\n\tif(!username && !state.allowAnon) {\n\t\tresponse.writeHead(401,\"Authorization header required to login to '\" + state.server.servername + \"'\");\n\t\tresponse.end();\n\t\treturn false;\n\t} else {\n\t\t// authenticatedUsername will be undefined for anonymous users\n\t\tstate.authenticatedUsername = username;\n\t\treturn true;\n\t}\n};\n\nexports.AuthenticatorClass = HeaderAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/routes/delete-tiddler.js": {
"title": "$:/core/modules/server/routes/delete-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/delete-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nDELETE /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"DELETE\";\n\nexports.path = /^\\/bags\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]);\n\tstate.wiki.deleteTiddler(title);\n\tresponse.writeHead(204, \"OK\", {\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-favicon.js": {
"title": "$:/core/modules/server/routes/get-favicon.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-favicon.js\ntype: application/javascript\nmodule-type: route\n\nGET /favicon.ico\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/favicon.ico$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\tresponse.end(buffer,\"base64\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-file.js": {
"title": "$:/core/modules/server/routes/get-file.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-file.js\ntype: application/javascript\nmodule-type: route\n\nGET /files/:filepath\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/files\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar path = require(\"path\"),\n\t\tfs = require(\"fs\"),\n\t\tutil = require(\"util\"),\n\t\tsuppliedFilename = decodeURIComponent(state.params[0]),\n\t\tfilename = path.resolve($tw.boot.wikiPath,\"files\",suppliedFilename),\n\t\textension = path.extname(filename);\n\tfs.readFile(filename,function(err,content) {\n\t\tvar status,content,type = \"text/plain\";\n\t\tif(err) {\n\t\t\tconsole.log(\"Error accessing file \" + filename + \": \" + err.toString());\n\t\t\tstatus = 404;\n\t\t\tcontent = \"File '\" + suppliedFilename + \"' not found\";\n\t\t} else {\n\t\t\tstatus = 200;\n\t\t\tcontent = content;\n\t\t\ttype = ($tw.config.fileExtensionInfo[extension] ? $tw.config.fileExtensionInfo[extension].type : \"application/octet-stream\");\n\t\t}\n\t\tresponse.writeHead(status,{\n\t\t\t\"Content-Type\": type\n\t\t});\n\t\tresponse.end(content);\n\t});\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-index.js": {
"title": "$:/core/modules/server/routes/get-index.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-index.js\ntype: application/javascript\nmodule-type: route\n\nGET /\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar zlib = require(\"zlib\");\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tvar acceptEncoding = request.headers[\"accept-encoding\"];\n\tif(!acceptEncoding) {\n\t\tacceptEncoding = \"\";\n\t}\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\")),\n\t\tresponseHeaders = {\n\t\t\"Content-Type\": state.server.get(\"root-serve-type\")\n\t};\n\t/*\n\tIf the gzip=yes flag for `listen` is set, check if the user agent permits\n\tcompression. If so, compress our response. Note that we use the synchronous\n\tfunctions from zlib to stay in the imperative style. The current `Server`\n\tdoesn't depend on this, and we may just as well use the async versions.\n\t*/\n\tif(state.server.enableGzip) {\n\t\tif (/\\bdeflate\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\ttext = zlib.deflateSync(text);\n\t\t} else if (/\\bgzip\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\ttext = zlib.gzipSync(text);\n\t\t}\n\t}\n\tresponse.writeHead(200,responseHeaders);\n\tresponse.end(text);\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-login-basic.js": {
"title": "$:/core/modules/server/routes/get-login-basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-login-basic.js\ntype: application/javascript\nmodule-type: route\n\nGET /login-basic -- force a Basic Authentication challenge\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/login-basic$/;\n\nexports.handler = function(request,response,state) {\n\tif(!state.authenticatedUsername) {\n\t\t// Challenge if there's no username\n\t\tresponse.writeHead(401,{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\t\t\n\t} else {\n\t\t// Redirect to the root wiki if login worked\n\t\tresponse.writeHead(302,{\n\t\t\tLocation: \"/\"\n\t\t});\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-status.js": {
"title": "$:/core/modules/server/routes/get-status.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-status.js\ntype: application/javascript\nmodule-type: route\n\nGET /status\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/status$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar text = JSON.stringify({\n\t\tusername: state.authenticatedUsername || state.server.get(\"anon-username\") || \"\",\n\t\tanonymous: !state.authenticatedUsername,\n\t\tread_only: !state.server.isAuthorized(\"writers\",state.authenticatedUsername),\n\t\tspace: {\n\t\t\trecipe: \"default\"\n\t\t},\n\t\ttiddlywiki_version: $tw.version\n\t});\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler-html.js": {
"title": "$:/core/modules/server/routes/get-tiddler-html.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler-html.js\ntype: application/javascript\nmodule-type: route\n\nGET /:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/([^\\/]+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar renderType = tiddler.getFieldString(\"_render_type\"),\n\t\t\trenderTemplate = tiddler.getFieldString(\"_render_template\");\n\t\t// Tiddler fields '_render_type' and '_render_template' overwrite\n\t\t// system wide settings for render type and template\n\t\tif(state.wiki.isSystemTiddler(title)) {\n\t\t\trenderType = renderType || state.server.get(\"system-tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"system-tiddler-render-template\");\n\t\t} else {\n\t\t\trenderType = renderType || state.server.get(\"tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"tiddler-render-template\");\n\t\t}\n\t\tvar text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}});\n\t\t// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS\n\t\tresponse.writeHead(200);\n\t\tresponse.end(text,\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler.js": {
"title": "$:/core/modules/server/routes/get-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title),\n\t\ttiddlerFields = {},\n\t\tknownFields = [\n\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t];\n\tif(tiddler) {\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\ttiddlerFields[name] = value;\n\t\t\t} else {\n\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.bag = \"default\";\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddlers-json.js": {
"title": "$:/core/modules/server/routes/get-tiddlers-json.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddlers-json.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/tiddlers.json?filter=<filter>\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_FILTER = \"[all[tiddlers]!is[system]sort[title]]\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tvar filter = state.queryParameters.filter || DEFAULT_FILTER;\n\tif($tw.wiki.getTiddlerText(\"$:/config/Server/AllowAllExternalFilters\") !== \"yes\") {\n\t\tif($tw.wiki.getTiddlerText(\"$:/config/Server/ExternalFilters/\" + filter) !== \"yes\") {\n\t\t\tconsole.log(\"Blocked attempt to GET /recipes/default/tiddlers/tiddlers.json with filter: \" + filter);\n\t\t\tresponse.writeHead(403);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\tvar excludeFields = (state.queryParameters.exclude || \"text\").split(\",\"),\n\t\ttitles = state.wiki.filterTiddlers(filter);\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\t$tw.utils.each(titles,function(title) {\n\t\tvar tiddler = state.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tvar tiddlerFields = tiddler.getFieldStrings({exclude: excludeFields});\n\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\ttiddlers.push(tiddlerFields);\n\t\t}\n\t});\n\tvar text = JSON.stringify(tiddlers);\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/put-tiddler.js": {
"title": "$:/core/modules/server/routes/put-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/put-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nPUT /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"PUT\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\tfields = JSON.parse(state.data);\n\t// Pull up any subfields in the `fields` object\n\tif(fields.fields) {\n\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\tfields[name] = field;\n\t\t});\n\t\tdelete fields.fields;\n\t}\n\t// Remove any revision field\n\tif(fields.revision) {\n\t\tdelete fields.revision;\n\t}\n\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\tresponse.writeHead(204, \"OK\",{\n\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/server.js": {
"title": "$:/core/modules/server/server.js",
"text": "/*\\\ntitle: $:/core/modules/server/server.js\ntype: application/javascript\nmodule-type: library\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\tquerystring = require(\"querystring\");\n}\n\n/*\nA simple HTTP server with regexp-based routes\noptions: variables - optional hashmap of variables to set (a misnomer - they are really constant parameters)\n\t\t routes - optional array of routes to use\n\t\t wiki - reference to wiki object\n*/\nfunction Server(options) {\n\tvar self = this;\n\tthis.routes = options.routes || [];\n\tthis.authenticators = options.authenticators || [];\n\tthis.wiki = options.wiki;\n\tthis.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\");\n\t// Initialise the variables\n\tthis.variables = $tw.utils.extend({},this.defaultVariables);\n\tif(options.variables) {\n\t\tfor(var variable in options.variables) {\n\t\t\tif(options.variables[variable]) {\n\t\t\t\tthis.variables[variable] = options.variables[variable];\n\t\t\t}\n\t\t}\t\t\n\t}\n\t$tw.utils.extend({},this.defaultVariables,options.variables);\n\t// Initialise CSRF\n\tthis.csrfDisable = this.get(\"csrf-disable\") === \"yes\";\n\t// Initialize Gzip compression\n\tthis.enableGzip = this.get(\"gzip\") === \"yes\";\n\t// Initialise authorization\n\tvar authorizedUserName = (this.get(\"username\") && this.get(\"password\")) ? this.get(\"username\") : \"(anon)\";\n\tthis.authorizationPrincipals = {\n\t\treaders: (this.get(\"readers\") || authorizedUserName).split(\",\").map($tw.utils.trim),\n\t\twriters: (this.get(\"writers\") || authorizedUserName).split(\",\").map($tw.utils.trim)\n\t}\n\t// Load and initialise authenticators\n\t$tw.modules.forEachModuleOfType(\"authenticator\", function(title,authenticatorDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addAuthenticator(authenticatorDefinition.AuthenticatorClass);\n\t});\n\t// Load route handlers\n\t$tw.modules.forEachModuleOfType(\"route\", function(title,routeDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addRoute(routeDefinition);\n\t});\n\t// Initialise the http vs https\n\tthis.listenOptions = null;\n\tthis.protocol = \"http\";\n\tvar tlsKeyFilepath = this.get(\"tls-key\"),\n\t\ttlsCertFilepath = this.get(\"tls-cert\");\n\tif(tlsCertFilepath && tlsKeyFilepath) {\n\t\tthis.listenOptions = {\n\t\t\tkey: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsKeyFilepath),\"utf8\"),\n\t\t\tcert: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsCertFilepath),\"utf8\")\n\t\t};\n\t\tthis.protocol = \"https\";\n\t}\n\tthis.transport = require(this.protocol);\n}\n\nServer.prototype.defaultVariables = {\n\tport: \"8080\",\n\thost: \"127.0.0.1\",\n\t\"root-tiddler\": \"$:/core/save/all\",\n\t\"root-render-type\": \"text/plain\",\n\t\"root-serve-type\": \"text/html\",\n\t\"tiddler-render-type\": \"text/html\",\n\t\"tiddler-render-template\": \"$:/core/templates/server/static.tiddler.html\",\n\t\"system-tiddler-render-type\": \"text/plain\",\n\t\"system-tiddler-render-template\": \"$:/core/templates/wikified-tiddler\",\n\t\"debug-level\": \"none\",\n\t\"gzip\": \"no\"\n};\n\nServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nServer.prototype.addAuthenticator = function(AuthenticatorClass) {\n\t// Instantiate and initialise the authenticator\n\tvar authenticator = new AuthenticatorClass(this),\n\t\tresult = authenticator.init();\n\tif(typeof result === \"string\") {\n\t\t$tw.utils.error(\"Error: \" + result);\n\t} else if(result) {\n\t\t// Only use the authenticator if it initialised successfully\n\t\tthis.authenticators.push(authenticator);\n\t}\n};\n\nServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"path-prefix\") || \"\";\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(pathprefix.length) || \"/\";\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nServer.prototype.methodMappings = {\n\t\"GET\": \"readers\",\n\t\"OPTIONS\": \"readers\",\n\t\"HEAD\": \"readers\",\n\t\"PUT\": \"writers\",\n\t\"POST\": \"writers\",\n\t\"DELETE\": \"writers\"\n};\n\n/*\nCheck whether a given user is authorized for the specified authorizationType (\"readers\" or \"writers\"). Pass null or undefined as the username to check for anonymous access\n*/\nServer.prototype.isAuthorized = function(authorizationType,username) {\n\tvar principals = this.authorizationPrincipals[authorizationType] || [];\n\treturn principals.indexOf(\"(anon)\") !== -1 || (username && (principals.indexOf(\"(authenticated)\") !== -1 || principals.indexOf(username) !== -1));\n}\n\nServer.prototype.requestHandler = function(request,response) {\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = self.wiki;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\tstate.queryParameters = querystring.parse(state.urlInfo.query);\n\t// Get the principals authorized to access this resource\n\tvar authorizationType = this.methodMappings[request.method] || \"readers\";\n\t// Check for the CSRF header if this is a write\n\tif(!this.csrfDisable && authorizationType === \"writers\" && request.headers[\"x-requested-with\"] !== \"TiddlyWiki\") {\n\t\tresponse.writeHead(403,\"'X-Requested-With' header required to login to '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\t\t\n\t}\n\t// Check whether anonymous access is granted\n\tstate.allowAnon = this.isAuthorized(authorizationType,null);\n\t// Authenticate with the first active authenticator\n\tif(this.authenticators.length > 0) {\n\t\tif(!this.authenticators[0].authenticateRequest(request,response,state)) {\n\t\t\t// Bail if we failed (the authenticator will have sent the response)\n\t\t\treturn;\n\t\t}\t\t\n\t}\n\t// Authorize with the authenticated username\n\tif(!this.isAuthorized(authorizationType,state.authenticatedUsername)) {\n\t\tresponse.writeHead(401,\"'\" + state.authenticatedUsername + \"' is not authorized to access '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Optionally output debug info\n\tif(self.get(\"debug-level\") !== \"none\") {\n\t\tconsole.log(\"Request path:\",JSON.stringify(state.urlInfo));\n\t\tconsole.log(\"Request headers:\",JSON.stringify(request.headers));\n\t\tconsole.log(\"authenticatedUsername:\",state.authenticatedUsername);\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Receive the request body if necessary and hand off to the route handler\n\tif(route.bodyFormat === \"stream\" || request.method === \"GET\" || request.method === \"HEAD\") {\n\t\t// Let the route handle the request stream itself\n\t\troute.handler(request,response,state);\n\t} else if(route.bodyFormat === \"string\" || !route.bodyFormat) {\n\t\t// Set the encoding for the incoming request\n\t\trequest.setEncoding(\"utf8\");\n\t\tvar data = \"\";\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata += chunk.toString();\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = data;\n\t\t\troute.handler(request,response,state);\n\t\t});\n\t} else if(route.bodyFormat === \"buffer\") {\n\t\tvar data = [];\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata.push(chunk);\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = Buffer.concat(data);\n\t\t\troute.handler(request,response,state);\n\t\t})\n\t} else {\n\t\tresponse.writeHead(400,\"Invalid bodyFormat \" + route.bodyFormat + \" in route \" + route.method + \" \" + route.path.source);\n\t\tresponse.end();\n\t}\n};\n\n/*\nListen for requests\nport: optional port number (falls back to value of \"port\" variable)\nhost: optional host address (falls back to value of \"host\" variable)\nprefix: optional prefix (falls back to value of \"path-prefix\" variable)\n*/\nServer.prototype.listen = function(port,host,prefix) {\n\tvar self = this;\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\tprefix = prefix || this.get(\"path-prefix\") || \"\";\n\t// Check for the port being a string and look it up as an environment variable\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\t// Create the server\n\tvar server;\n\tif(this.listenOptions) {\n\t\tserver = this.transport.createServer(this.listenOptions,this.requestHandler.bind(this));\n\t} else {\n\t\tserver = this.transport.createServer(this.requestHandler.bind(this));\n\t}\n\t// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)\n\tserver.on(\"listening\",function() {\n\t\tvar address = server.address();\n\t\t$tw.utils.log(\"Serving on \" + self.protocol + \"://\" + address.address + \":\" + address.port + prefix,\"brown/orange\");\n\t\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t});\n\t// Listen\n\treturn server.listen(port,host);\n};\n\nexports.Server = Server;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/browser-messaging.js": {
"title": "$:/core/modules/browser-messaging.js",
"text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\t// console.log(\"browser-messaging: \",document.location.toString())\n\t\t// console.log(\"browser-messaging: Received message from\",event.origin);\n\t\t// console.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/commands.js": {
"title": "$:/core/modules/startup/commands.js",
"text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/CSSescape.js": {
"title": "$:/core/modules/startup/CSSescape.js",
"text": "/*\\\ntitle: $:/core/modules/startup/CSSescape.js\ntype: application/javascript\nmodule-type: startup\n\nPolyfill for CSS.escape()\n\n\\*/\n(function(root,factory){\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"css-escape\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n// https://github.com/umdjs/umd/blob/master/returnExports.js\nexports.startup = factory(root);\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\n}));\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/favicon.js": {
"title": "$:/core/modules/startup/favicon.js",
"text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/info.js": {
"title": "$:/core/modules/startup/info.js",
"text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_INFO_PLUGIN = \"$:/temp/info-plugin\";\n\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin. We use the non-standard plugin-type \"info\" because ordinary plugins are only registered asynchronously after being loaded dynamically\n\tvar fields = {\n\t\ttitle: TITLE_INFO_PLUGIN,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo([TITLE_INFO_PLUGIN]);\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/load-modules.js": {
"title": "$:/core/modules/startup/load-modules.js",
"text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.wiki.addIndexersToWiki();\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/password.js": {
"title": "$:/core/modules/startup/password.js",
"text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/plugins.js": {
"title": "$:/core/modules/startup/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/startup/plugins.js\ntype: application/javascript\nmodule-type: startup\n\nStartup logic concerned with managing plugins\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"plugins\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = \"$:/status/RequireReloadDueToPluginChange\";\n\nvar PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = \"$:/config/RegisterPluginType/\";\n\nexports.startup = function() {\n\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"no\"});\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tvar changesToProcess = [],\n\t\t\trequireReloadDueToPluginChange = false;\n\t\t$tw.utils.each(Object.keys(changes),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\t\trequiresReload = $tw.wiki.doesPluginRequireReload(title);\n\t\t\tif(requiresReload) {\n\t\t\t\trequireReloadDueToPluginChange = true;\n\t\t\t} else if(tiddler) {\n\t\t\t\tvar pluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields[\"plugin-type\"] || \"\"),\"no\") === \"yes\") {\n\t\t\t\t\tchangesToProcess.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif(requireReloadDueToPluginChange) {\n\t\t\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"yes\"});\n\t\t}\n\t\t// Read or delete the plugin info of the changed tiddlers\n\t\tif(changesToProcess.length > 0) {\n\t\t\tvar changes = $tw.wiki.readPluginInfo(changesToProcess);\n\t\t\tif(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {\n\t\t\t\t// (Re-)register any modified plugins\n\t\t\t\t$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);\n\t\t\t\t// Unregister any deleted plugins\n\t\t\t\t$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);\n\t\t\t\t// Unpack the shadow tiddlers\n\t\t\t\t$tw.wiki.unpackPluginTiddlers();\n\t\t\t}\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/render.js": {
"title": "$:/core/modules/startup/render.js",
"text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar THROTTLE_REFRESH_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Remove any splash screen elements\n\tvar removeList = document.querySelectorAll(\".tc-remove-when-wiki-loaded\");\n\t$tw.utils.each(removeList,function(removeItem) {\n\t\tif(removeItem.parentNode) {\n\t\t\tremoveItem.parentNode.removeChild(removeItem);\n\t\t}\n\t});\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.hooks.invokeHook(\"th-page-refreshing\");\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only tiddlers that are throttled have changed\n\t\tvar onlyThrottledTiddlersHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !(tiddler.hasField(\"draft.of\") || tiddler.hasField(\"throttle.refresh\"))) {\n\t\t\t\tonlyThrottledTiddlersHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyThrottledTiddlersHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = THROTTLE_REFRESH_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/rootwidget.js": {
"title": "$:/core/modules/startup/rootwidget.js",
"text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject, event: event});\n\t});\n\t// Install the notification mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the tm-focus-selector message\n\t$tw.rootWidget.addEventListener(\"tm-focus-selector\",function(event) {\n\t\tvar selector = event.param || \"\",\n\t\t\telement;\n\t\ttry {\n\t\t\telement = document.querySelector(selector);\n\t\t} catch(e) {\n\t\t\tconsole.log(\"Error in selector: \",selector)\n\t\t}\n\t\tif(element && element.focus) {\n\t\t\telement.focus(event.paramObject);\n\t\t}\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tvar fullScreenDocument = event.event ? event.event.target.ownerDocument : document;\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(fullScreenDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup.js": {
"title": "$:/core/modules/startup.js",
"text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.platform);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\tvar executeStartupTiddlers = function(tag) {\n\t\t$tw.utils.each($tw.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\t\t$tw.rootWidget.invokeActionString($tw.wiki.getTiddlerText(title),$tw.rootWidget);\n\t\t});\n\t};\n\texecuteStartupTiddlers(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Browser\");\t\t\n\t}\n\tif($tw.node) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Node\");\t\t\n\t}\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-GB\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Listen for shortcuts\n\tif($tw.browser) {\n\t\t$tw.utils.addEventListeners(document,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t}\n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({\n\t\twiki: $tw.wiki,\n\t\tdirtyTracking: !$tw.syncadaptor,\n\t\tpreloadDirty: $tw.boot.preloadDirty || []\n\t});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/story.js": {
"title": "$:/core/modules/startup/story.js",
"text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\nvar CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD = \"$:/config/Navigation/Permalinkview/CopyToClipboard\"; // Can be \"yes\" (default) or \"no\"\nvar CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/Permalinkview/UpdateAddressBar\"; // Can be \"yes\" (default) or \"no\"\n\n\n// Links to help, if there is no param\nvar HELP_OPEN_EXTERNAL_WINDOW = \"http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window\";\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers({\n\t\tdisableHistory: $tw.boot.disableStartupNavigation\n\t});\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for tm-open-external-window message\n\t\t$tw.rootWidget.addEventListener(\"tm-open-external-window\",function(event) {\n\t\t\tvar paramObject = event.paramObject || {},\n\t\t\t\tstrUrl = event.param || HELP_OPEN_EXTERNAL_WINDOW,\n\t\t\t\tstrWindowName = paramObject.windowName,\n\t\t\t\tstrWindowFeatures = paramObject.windowFeatures;\n\t\t\twindow.open(strUrl, strWindowName, strWindowFeatures);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\"\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\"\n\t\t\t});\t\t\t\t\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndisableHistory: if true $:/History is NOT updated\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// Update history\n\tif(!options.disableHistory) {\n\t\t// If a target tiddler was specified add it to the history stack\n\t\tif(target && target !== \"\") {\n\t\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t\t}\n\t\t\t$tw.wiki.addToHistory(target);\n\t\t} else if(storyList.length > 0) {\n\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t}\t\t\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.copyToClipboard: \"permalink\", \"permaview\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\t// Get the story and the history stack\n\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\ttargetTiddler = \"\";\n\tif(options.targetTiddler) {\n\t\ttargetTiddler = options.targetTiddler;\n\t} else {\n\t\t// The target tiddler is the one at the top of the stack\n\t\tif(historyList.length > 0) {\n\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t}\n\t\t// Blank the target tiddler if it isn't present in the story\n\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\ttargetTiddler = \"\";\n\t\t}\n\t}\n\t// Assemble the location hash\n\tswitch(options.updateAddressBar) {\n\t\tcase \"permalink\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t\tbreak;\n\t}\n\t// Copy URL to the clipboard\n\tswitch(options.copyToClipboard) {\n\t\tcase \"permalink\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler));\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList)));\n\t\t\tbreak;\n\t}\n\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\tif(options.updateHistory === \"yes\") {\n\t\t\t// Assign the location hash so that history is updated\n\t\t\twindow.location.hash = $tw.locationHash;\n\t\t} else {\n\t\t\t// We use replace so that browser history isn't affected\n\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t}\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/windows.js": {
"title": "$:/core/modules/startup/windows.js",
"text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\nvar windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\twindowTitle = paramObject.windowTitle || title,\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow,\n\t\t srcDocument;\n\t\t// In case that popup blockers deny opening a new window\n\t\ttry {\n\t\t\tsrcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\t}\n\t\tcatch(e) {\n\t\t\treturn;\n\t\t}\n\t\twindows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = windowTitle;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\t// Listen for keyboard shortcuts\n\t\t$tw.utils.addEventListeners(srcDocument,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t},{\n\t\t\tname: \"click\",\n\t\t\thandlerObject: $tw.popup,\n\t\t\thandlerMethod: \"handleEvent\"\n\t\t}]);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/story.js": {
"title": "$:/core/modules/story.js",
"text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/storyviews/classic.js": {
"title": "$:/core/modules/storyviews/classic.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration()\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\tif(duration) {\n\t\t// Scroll the node into view\n\t\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\t\n\t} else {\n\t\ttargetElement.scrollIntoView();\n\t}\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Reset the margin once the transition is over\n\t\tsetTimeout(function() {\n\t\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t\t{transition: \"none\"},\n\t\t\t\t{marginBottom: \"\"}\n\t\t\t]);\n\t\t},duration);\n\t\t// Set up the initial position of the element\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t// Transition to the final position\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t]);\n\t}\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode(),\n\t\t\tremoveElement = function() {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t};\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\tremoveElement();\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar currWidth = targetElement.offsetWidth,\n\t\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Remove the dom nodes of the widget at the end of the transition\n\t\tsetTimeout(removeElement,duration);\n\t\t// Animate the closure\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"translateX(0px)\"},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/pop.js": {
"title": "$:/core/modules/storyviews/pop.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t\t$tw.utils.setStyle(widget.document.body,[\n\t\t\t{\"overflow-x\": \"\"}\n\t\t]);\n\t},duration);\n\t// Prevent the page from overscrolling due to the zoom factor\n\t$tw.utils.setStyle(widget.document.body,[\n\t\t{\"overflow-x\": \"hidden\"}\n\t]);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement && targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/zoomin.js": {
"title": "$:/core/modules/storyviews/zoomin.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/syncer.js": {
"title": "$:/core/modules/syncer.js",
"text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store and synchronises them to a remote data store represented as a \"sync adaptor\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleIsAnonymous = \"$:/status/IsAnonymous\";\nSyncer.prototype.titleIsReadOnly = \"$:/status/IsReadOnly\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSyncPollingInterval = \"$:/config/SyncPollingInterval\";\nSyncer.prototype.titleSyncDisableLazyLoading = \"$:/config/SyncDisableLazyLoading\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.titleSyncThrottleInterval = \"$:/config/SyncThrottleInterval\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.errorRetryInterval = 5 * 1000; // Interval to retry after an error\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\t// Save parameters\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,\"\"),10) || this.throttleInterval;\n\tthis.errorRetryInterval = options.errorRetryInterval || this.errorRetryInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,\"\"),10) || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging,\n\t\tsaveHistory: true\n\t});\n\t// Make another logger for connection errors\n\tthis.loggerConnection = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\") + \"-connection\",{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging\n\t});\n\t// Ask the syncadaptor to use the main logger\n\tif(this.syncadaptor.setLoggerSaveBuffer) {\n\t\tthis.syncadaptor.setLoggerSaveBuffer(this.logger);\n\t}\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\tthis.titlesToBeLoaded = {}; // Hashmap of titles of tiddlers that need loading from the server\n\tthis.titlesHaveBeenLazyLoaded = {}; // Hashmap of titles of tiddlers that have already been lazily loaded from the server\n\t// Timers\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Number of outstanding requests\n\tthis.numTasksInProgress = 0;\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Filter the changes to just include ones that are being synced\n\t\tvar filteredChanges = self.getSyncedTiddlers(function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t\tif(filteredChanges.length > 0) {\n\t\t\tself.processTaskQueue();\n\t\t} else {\n\t\t\t// Look for deletions of tiddlers we're already syncing\t\n\t\t\tvar outstandingDeletion = false\n\t\t\t$tw.utils.each(changes,function(change,title,object) {\n\t\t\t\tif(change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) {\n\t\t\t\t\toutstandingDeletion = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(outstandingDeletion) {\n\t\t\t\tself.processTaskQueue();\n\t\t\t}\n\t\t}\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\n\t\t\tself.handleLoginEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-copy-syncer-logs-to-clipboard\",function() {\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getSystemInfo() + \"\\n\\nLog:\\n\" + self.logger.getBuffer());\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI && $tw.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== \"yes\") {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\t\t\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nShow a generic network error alert\n*/\nSyncer.prototype.displayError = function(msg,err) {\n\tif(err === ($tw.language.getString(\"Error/XMLHttpRequest\") + \": 0\")) {\n\t\tthis.loggerConnection.alert($tw.language.getString(\"Error/NetworkErrorAlert\"));\n\t\tthis.logger.log(msg + \":\",err);\n\t} else {\n\t\tthis.logger.alert(msg + \":\",err);\n\t}\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getSyncedTiddlers = function(source) {\n\treturn this.filterFn.call(this.wiki,source);\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getTiddlerRevision = function(title) {\n\tif(this.syncadaptor && this.syncadaptor.getTiddlerRevision) {\n\t\treturn this.syncadaptor.getTiddlerRevision(title);\n\t} else {\n\t\treturn this.wiki.getTiddler(title).fields.revision;\t\n\t} \n};\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\t// \"revision\" is the revision of the tiddler last seen on the server, and \"changecount\" is the corresponding local changecount\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.getSyncedTiddlers();\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: self.getTiddlerRevision(title),\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title)\n\t\t};\n\t});\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\tthis.logger.log(\"Checking dirty status\");\n\t// Check tiddlers that are in the store and included in the filter function\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(this.wiki.tiddlerExists(title)) {\n\t\t\tif(tiddlerInfo) {\n\t\t\t\t// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server\n\t\t\t\tif($tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the tiddler isn't known on the server then it needs to be saved to the server\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t// Check tiddlers that are known from the server but not currently in the store\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\tif(!this.wiki.tiddlerExists(titles[index])) {\n\t\t\t// There must be a pending delete\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\tvar dirty = this.isDirty();\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",dirty);\n\t\tif(!dirty) {\n\t\t\tthis.loggerConnection.clearAlerts();\n\t\t}\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: this.getTiddlerRevision(tiddlerFields.title),\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title)\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username,isReadOnly,isAnonymous) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\t// Set the various status tiddlers\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\t\tif(isLoggedIn) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tvar self = this,\n\t\tcancelNextSync = function() {\n\t\t\tif(self.pollTimerId) {\n\t\t\t\tclearTimeout(self.pollTimerId);\n\t\t\t\tself.pollTimerId = null;\n\t\t\t}\n\t\t},\n\t\ttriggerNextSync = function() {\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t};\n\tif(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) {\n\t\tthis.logger.log(\"Retrieving updated tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getUpdatedTiddlers(self,function(err,updates) {\n\t\t\ttriggerNextSync();\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(updates) {\n\t\t\t\t$tw.utils.each(updates.modifications,function(title) {\n\t\t\t\t\tself.titlesToBeLoaded[title] = true;\n\t\t\t\t});\n\t\t\t\t$tw.utils.each(updates.deletions,function(title) {\n\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t});\n\t\t\t\tif(updates.modifications.length > 0 || updates.deletions.length > 0) {\n\t\t\t\t\tself.processTaskQueue();\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t} else if(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\ttriggerNextSync();\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep track of which tiddlers we already know about have been reported this time\n\t\t\tvar previousTitles = Object.keys(self.tiddlerInfo);\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.tiddlerExists(tiddlerFields.title) && self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null,\n\t\t\t\t\tindexInPreviousTitles = previousTitles.indexOf(tiddlerFields.title);\n\t\t\t\tif(indexInPreviousTitles !== -1) {\n\t\t\t\t\tpreviousTitles.splice(indexInPreviousTitles,1);\n\t\t\t\t}\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Only load the skinny version if we don't already have a fat version of the tiddler\n\t\t\t\t\tif(!tiddler || tiddler.fields.text === undefined) {\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\tself.titlesToBeLoaded[tiddlerFields.title] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Delete any tiddlers that were previously reported but missing this time\n\t\t\t$tw.utils.each(previousTitles,function(title) {\n\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t});\n\t\t\tself.processTaskQueue();\n\t\t});\n\t}\n};\n\n/*\nForce load a tiddler from the server\n*/\nSyncer.prototype.enqueueLoadTiddler = function(title) {\n\tthis.titlesToBeLoaded[title] = true;\n\tthis.processTaskQueue();\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Ignore if the syncadaptor doesn't handle it\n\tif(!this.syncadaptor.supportsLazyLoading) {\n\t\treturn;\n\t}\n\t// Don't lazy load the same tiddler twice\n\tif(!this.titlesHaveBeenLazyLoaded[title]) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.getSyncedTiddlers().indexOf(title) !== -1) {\n\t\t\t// Mark the tiddler as needing loading, and having already been lazily loaded\n\t\t\tthis.titlesToBeLoaded[title] = true;\n\t\t\tthis.titlesHaveBeenLazyLoaded[title] = true;\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!err && !isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(err,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nProcess the next task\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing\n\t// a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(typeof task === \"object\" && task !== null) {\n\t\t\tthis.numTasksInProgress += 1;\n\t\t\ttask.run(function(err) {\n\t\t\t\tself.numTasksInProgress -= 1;\n\t\t\t\tif(err) {\n\t\t\t\t\tself.displayError(\"Sync error while processing \" + task.type + \" of '\" + task.title + \"'\",err);\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\tself.triggerTimeout(self.errorRetryInterval);\n\t\t\t\t} else {\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\t// Process the next task\n\t\t\t\t\tself.processTaskQueue.call(self);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// No task is ready so update the status\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// And trigger a timeout if there is a pending task\n\t\t\tif(task === true) {\n\t\t\t\tthis.triggerTimeout();\t\t\t\t\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.updateDirtyStatus();\t\t\n\t}\n};\n\nSyncer.prototype.triggerTimeout = function(interval) {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},interval || self.taskTimerInterval);\n\t}\n};\n\n/*\nChoose the next sync task. We prioritise saves, then deletes, then loads from the server\n\nReturns either a task object, null if there's no upcoming tasks, or the boolean true if there are pending tasks that aren't yet due\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar thresholdLastSaved = (new Date()) - this.throttleInterval,\n\t\thavePending = null;\n\t// First we look for tiddlers that have been modified locally and need saving back to the server\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title),\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(tiddler) {\n\t\t\t// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server\n\t\t\tvar hasChanged = !tiddlerInfo || $tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount,\n\t\t\t\tisReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;\n\t\t\tif(hasChanged) {\n\t\t\t\tif(isReadyToSave) {\n\t\t\t\t\treturn new SaveTiddlerTask(this,title); \t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\thavePending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Second, we check tiddlers that are known from the server but not currently in the store, and so need deleting on the server\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\ttitle = titles[index];\n\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\treturn new DeleteTiddlerTask(this,title);\n\t\t}\n\t}\n\t// Check for tiddlers that need loading\n\ttitle = Object.keys(this.titlesToBeLoaded)[0];\n\tif(title) {\n\t\tdelete this.titlesToBeLoaded[title];\n\t\treturn new LoadTiddlerTask(this,title);\n\t}\n\t// No tasks are ready\n\treturn havePending;\n};\n\nfunction SaveTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"save\";\n}\n\nSaveTiddlerTask.prototype.run = function(callback) {\n\tvar self = this,\n\t\tchangeCount = this.syncer.wiki.getChangeCount(this.title),\n\t\ttiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);\n\tthis.syncer.logger.log(\"Dispatching 'save' task:\",this.title);\n\tif(tiddler) {\n\t\tthis.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t// If there's an error, exit without changing any internal state\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Adjust the info stored about this tiddler\n\t\t\tself.syncer.tiddlerInfo[self.title] = {\n\t\t\t\tchangeCount: changeCount,\n\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\trevision: revision,\n\t\t\t\ttimestampLastSaved: new Date()\n\t\t\t};\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else {\n\t\tthis.syncer.logger.log(\" Not Dispatching 'save' task:\",this.title,\"tiddler does not exist\");\n\t\t$tw.utils.nextTick(callback(null));\n\t}\n};\n\nfunction DeleteTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"delete\";\n}\n\nDeleteTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'delete' task:\",this.title);\n\tthis.syncer.syncadaptor.deleteTiddler(this.title,function(err) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Remove the info stored about this tiddler\n\t\tdelete self.syncer.tiddlerInfo[self.title];\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t},{\n\t\ttiddlerInfo: self.syncer.tiddlerInfo[this.title]\n\t});\n};\n\nfunction LoadTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"load\";\n}\n\nLoadTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'load' task:\",this.title);\n\tthis.syncer.syncadaptor.loadTiddler(this.title,function(err,tiddlerFields) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Update the info stored about this tiddler\n\t\tif(tiddlerFields) {\n\t\t\tself.syncer.storeTiddler(tiddlerFields);\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t});\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/tiddler.js": {
"title": "$:/core/modules/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet the value of a field as a list\n*/\nexports.getFieldList = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn [];\n\t}\n\treturn $tw.utils.parseStringArray(value);\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [],\n\t\tfields = Object.keys(this.fields).sort(),\n\t\tresult = [];\n\tfor(var t=0; t<fields.length; t++) {\n\t\tvar field = fields[t];\n\t\tif(exclude.indexOf(field) === -1) {\n\t\t\tresult.push(field + \": \" + this.getFieldString(field));\n\t\t}\n\t}\n\treturn result.join(\"\\n\");\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlermethod"
},
"$:/core/modules/upgraders/plugins.js": {
"title": "$:/core/modules/upgraders/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin contains JS modules\n\t\t\tvar requiresReload = $tw.wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? ($tw.wiki.getTiddlerText(\"$:/language/ControlPanel/Plugins/PluginWillRequireReload\") + \" \") : \"\";\n\t\t\tmessages[title] = requiresReload;\n\t\t\tif(incomingTiddler.version) {\n\t\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/system.js": {
"title": "$:/core/modules/upgraders/system.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\",\"$:/Import\"],\n\tWARN_IMPORT_PREFIX_LIST = [\"$:/core/modules/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tshowAlert = false;\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = WARN_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix && wiki.isShadowTiddler(title)) {\n\t\t\t\t\tshowAlert = true;\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Warning\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tif(showAlert) {\n\t\tvar logger = new $tw.utils.Logger(\"import\");\n\t\tlogger.alert($tw.language.getString(\"Import/Upgrader/System/Alert\"));\n\t}\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/themetweaks.js": {
"title": "$:/core/modules/upgraders/themetweaks.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/utils/base64-utf8/base64-utf8.module.js": {
"text": "(function(){// From https://gist.github.com/Nijikokun/5192472\n//\n// UTF8 Module\n//\n// Cleaner and modularized utf-8 encoding and decoding library for javascript.\n//\n// copyright: MIT\n// author: Nijiko Yonskai, @nijikokun, nijikokun@gmail.com\n!function(r,e,o,t){void 0!==o.module&&o.module.exports?o.module.exports=e.apply(o):void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"utf8\",[],e):o.utf8=e.apply(o)}(0,function(){return{encode:function(r){if(\"string\"!=typeof r)return r;r=r.replace(/\\r\\n/g,\"\\n\");for(var e,o=\"\",t=0;t<r.length;t++)(e=r.charCodeAt(t))<128?o+=String.fromCharCode(e):e>127&&e<2048?(o+=String.fromCharCode(e>>6|192),o+=String.fromCharCode(63&e|128)):(o+=String.fromCharCode(e>>12|224),o+=String.fromCharCode(e>>6&63|128),o+=String.fromCharCode(63&e|128));return o},decode:function(r){if(\"string\"!=typeof r)return r;for(var e=\"\",o=0,t=0;o<r.length;)(t=r.charCodeAt(o))<128?(e+=String.fromCharCode(t),o++):t>191&&t<224?(e+=String.fromCharCode((31&t)<<6|63&r.charCodeAt(o+1)),o+=2):(e+=String.fromCharCode((15&t)<<12|(63&r.charCodeAt(o+1))<<6|63&r.charCodeAt(o+2)),o+=3);return e}}},this),function(r,e,o,t){if(void 0!==o.module&&o.module.exports){if(t&&o.require)for(var n=0;n<t.length;n++)o[t[n]]=o.require(t[n]);o.module.exports=e.apply(o)}else void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"base64\",t||[],e):o.base64=e.apply(o)}(0,function(r){var e=r||this.utf8,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=e.encode(r);for(var t,n,i,d,f,a,h,c=\"\",u=0;u<r.length;)d=(t=r.charCodeAt(u++))>>2,f=(3&t)<<4|(n=r.charCodeAt(u++))>>4,a=(15&n)<<2|(i=r.charCodeAt(u++))>>6,h=63&i,isNaN(n)?a=h=64:isNaN(i)&&(h=64),c+=o.charAt(d)+o.charAt(f)+o.charAt(a)+o.charAt(h);return c},decode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");for(var t,n,i,d,f,a,h=\"\",c=0;c<r.length;)t=o.indexOf(r.charAt(c++))<<2|(d=o.indexOf(r.charAt(c++)))>>4,n=(15&d)<<4|(f=o.indexOf(r.charAt(c++)))>>2,i=(3&f)<<6|(a=o.indexOf(r.charAt(c++))),h+=String.fromCharCode(t),64!=f&&(h+=String.fromCharCode(n)),64!=a&&(h+=String.fromCharCode(i));return e.decode(h)}}},this,[\"utf8\"]);}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/base64-utf8/base64-utf8.module.js",
"module-type": "library"
},
"$:/core/modules/utils/crypto.js": {
"title": "$:/core/modules/utils/crypto.js",
"text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/csv.js": {
"title": "$:/core/modules/utils/csv.js",
"text": "/*\\\ntitle: $:/core/modules/utils/csv.js\ntype: application/javascript\nmodule-type: utils\n\nA barebones CSV parser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a CSV string with a header row and return an array of hashmaps.\n*/\nexports.parseCsvStringWithHeader = function(text,options) {\n\toptions = options || {};\n\tvar separator = options.separator || \",\",\n\t\trows = text.split(/\\r?\\n/mg).map(function(row) {\n\t\t\treturn $tw.utils.trim(row);\n\t\t}).filter(function(row) {\n\t\t\treturn row !== \"\";\n\t\t});\n\tif(rows.length < 1) {\n\t\treturn \"Missing header row\";\n\t}\n\tvar headings = rows[0].split(separator),\n\t\tresults = [];\n\tfor(var row=1; row<rows.length; row++) {\n\t\tvar columns = rows[row].split(separator),\n\t\t\tcolumnResult = Object.create(null);\n\t\tif(columns.length !== headings.length) {\n\t\t\treturn \"Malformed CSV row '\" + rows[row] + \"'\";\n\t\t}\n\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\tvar columnName = headings[column];\n\t\t\tcolumnResult[columnName] = $tw.utils.trim(columns[column] || \"\");\n\t\t}\n\t\tresults.push(columnResult);\t\t\t\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/diff-match-patch/diff_match_patch.js": {
"text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&\").replace(d,\"<\").replace(e,\">\").replace(f,\"¶<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js",
"module-type": "library"
},
"$:/core/modules/utils/dom/animations/slide.js": {
"title": "$:/core/modules/utils/dom/animations/slide.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "animation"
},
"$:/core/modules/utils/dom/animator.js": {
"title": "$:/core/modules/utils/dom/animator.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/browser.js": {
"title": "$:/core/modules/utils/dom/browser.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/csscolorparser.js": {
"title": "$:/core/modules/utils/dom/csscolorparser.js",
"text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) { // Clamp to integer 0 .. 255.\n i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) { // Clamp to float 0.0 .. 1.0.\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) { // int or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) { // float or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_float(parseFloat(str) / 100);\n return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n if (h < 0) h += 1;\n else if (h > 1) h -= 1;\n\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n return m1;\n}\n\nfunction parseCSSColor(css_str) {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = css_str.replace(/ /g, '').toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === '#') {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN.\n return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN.\n return [(iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n iv & 0xff,\n 1];\n }\n\n return null;\n }\n\n var op = str.indexOf('('), ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op+1, ep-(op+1)).split(',');\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'rgb':\n if (params.length !== 3) return null;\n return [parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha];\n case 'hsla':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'hsl':\n if (params.length !== 3) return null;\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n alpha];\n default:\n return null;\n }\n }\n\n return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom.js": {
"title": "$:/core/modules/utils/dom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function(srcWindow) {\n\tvar scrollWindow = srcWindow || window;\n\tif(\"scrollX\" in scrollWindow) {\n\t\treturn {x: scrollWindow.scrollX, y: scrollWindow.scrollY};\n\t} else {\n\t\treturn {x: scrollWindow.document.documentElement.scrollLeft, y: scrollWindow.document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(element.ownerDocument.defaultView),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\tvar done = false;\n\ttry {\n\t\twindow.localStorage.setItem(\"tw5-password-\" + name,password);\n\t\tdone = true;\n\t} catch(e) {\n\t}\n\tif(!done) {\n\t\t$tw.savedPasswords = $tw.savedPasswords || Object.create(null);\n\t\t$tw.savedPasswords[name] = password;\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\tvar value;\n\ttry {\n\t\tvalue = window.localStorage.getItem(\"tw5-password-\" + name);\n\t} catch(e) {\n\t}\n\tif(value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn ($tw.savedPasswords || Object.create(null))[name] || \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\nexports.getLocationPath = function() {\n\treturn window.location.toString().split(\"#\")[0];\n};\n\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/dragndrop.js": {
"title": "$:/core/modules/utils/dom/dragndrop.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Available data types:\");\n\t\tfor(var type=0; type<dataTransfer.types.length; type++) {\n\t\t\tconsole.log(\"type\",dataTransfer.types[type],dataTransfer.getData(dataTransfer.types[type]))\n\t\t}\n\t}\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/http.js": {
"title": "$:/core/modules/utils/dom/http.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\theaders: hashmap of headers to send\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data,xhr)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\turl = options.url,\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tif(type === \"GET\" || type === \"HEAD\") {\n\t\t\t\turl += \"?\" + results.join(\"&\");\n\t\t\t} else {\n\t\t\t\tdata = results.join(\"&\");\n\t\t\t}\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status,null,this);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\tif(!$tw.utils.hop(headers,\"X-Requested-With\")) {\n\t\trequest.setRequestHeader(\"X-Requested-With\",\"TiddlyWiki\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e,null,this);\n\t}\n\treturn request;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/keyboard.js": {
"title": "$:/core/modules/utils/dom/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/modal.js": {
"title": "$:/core/modules/utils/dom/modal.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tthis.srcDocument = options.variables && (options.variables.rootwindow === \"true\" ||\n\t\t\t\toptions.variables.rootwindow === \"yes\") ? document :\n\t\t\t\t(options.event.event && options.event.event.target ? options.event.event.target.ownerDocument : document);\n\tthis.srcWindow = this.srcDocument.defaultView;\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalBackdrop = this.srcDocument.createElement(\"div\"),\n\t\tmodalWrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalHeader = this.srcDocument.createElement(\"div\"),\n\t\theaderTitle = this.srcDocument.createElement(\"h3\"),\n\t\tmodalBody = this.srcDocument.createElement(\"div\"),\n\t\tmodalLink = this.srcDocument.createElement(\"a\"),\n\t\tmodalFooter = this.srcDocument.createElement(\"div\"),\n\t\tmodalFooterHelp = this.srcDocument.createElement(\"span\"),\n\t\tmodalFooterButtons = this.srcDocument.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\tif(tiddler.fields && tiddler.fields.class) {\n\t\t$tw.utils.addClass(wrapper,tiddler.fields.class);\n\t}\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(this.srcDocument.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler.fields && tiddler.fields.help) {\n\t\tvar link = this.srcDocument.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(this.srcDocument.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + self.srcWindow.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\tself.srcWindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tself.srcDocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-this.srcWindow.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tthis.srcDocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tvar windowContainer = $tw.pageContainer ? ($tw.pageContainer === this.srcDocument.body.firstChild ? $tw.pageContainer : this.srcDocument.body.firstChild) : null;\n\tif(windowContainer) {\n\t\t$tw.utils.toggleClass(windowContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/notifier.js": {
"title": "$:/core/modules/utils/dom/notifier.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/popup.js": {
"title": "$:/core/modules/utils/dom/popup.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned (one of domNode or domNodeRect is required)\n\tdomNodeRect: rectangle to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n\tfloating: if true, skips registering the popup, meaning that it will need manually clearing\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\n\t// Store the popup details if not already there\n\tif(!options.floating && this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode,\n\t\t\tnoStateReference: options.noStateReference\n\t\t});\n\t}\n\t// Set the state tiddler\n\tvar rect;\n\tif(options.domNodeRect) {\n\t\trect = options.domNodeRect;\n\t} else {\n\t\trect = {\n\t\t\tleft: options.domNode.offsetLeft,\n\t\t\ttop: options.domNode.offsetTop,\n\t\t\twidth: options.domNode.offsetWidth,\n\t\t\theight: options.domNode.offsetHeight\n\t\t};\n\t}\n\tvar popupRect = \"(\" + rect.left + \",\" + rect.top + \",\" + \n\t\t\t\trect.width + \",\" + rect.height + \")\";\n\tif(options.noStateReference) {\n\t\toptions.wiki.setText(options.title,\"text\",undefined,popupRect);\n\t} else {\n\t\toptions.wiki.setTextReference(options.title,popupRect);\n\t}\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tif(popup.noStateReference) {\n\t\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t\t} else {\n\t\t\t\tpopup.wiki.deleteTiddler($tw.utils.parseTextReference(popup.title).title);\n \t\t}\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/scroller.js": {
"title": "$:/core/modules/utils/dom/scroller.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.isScrolling = function() {\n\treturn this.idRequestFrame !== null;\n}\n\nPageScroller.prototype.cancelScroll = function(srcWindow) {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element,callback) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t srcWindow = element ? element.ownerDocument.defaultView : window;\n\t// Now get ready to scroll the body\n\tthis.cancelScroll(srcWindow);\n\tthis.startTime = Date.now();\n\t// Get the height of any position:fixed toolbars\n\tvar toolbar = srcWindow.document.querySelector(\".tc-adjust-top-of-scroll\"),\n\t\toffset = 0;\n\tif(toolbar) {\n\t\toffset = toolbar.offsetHeight;\n\t}\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = typeof callback === 'function' ? callback() : element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition(srcWindow);\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y - offset,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll(srcWindow);\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(srcWindow),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,srcWindow.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,srcWindow.innerHeight);\n\t\t\tsrcWindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/edition-info.js": {
"title": "$:/core/modules/utils/edition-info.js",
"text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/fakedom.js": {
"title": "$:/core/modules/utils/fakedom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis._style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nObject.defineProperty(TW_Element.prototype, \"style\", {\n\tget: function() {\n\t\treturn this._style;\n\t},\n\tset: function(str) {\n\t\tvar self = this;\n\t\tstr = str || \"\";\n\t\t$tw.utils.each(str.split(\";\"),function(declaration) {\n\t\t\tvar parts = declaration.split(\":\"),\n\t\t\t\tname = $tw.utils.trim(parts[0]),\n\t\t\t\tvalue = $tw.utils.trim(parts[1]);\n\t\t\tif(name && value) {\n\t\t\t\tself._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;\n\t\t\t}\n\t\t});\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this._style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this._style) {\n\t\t\t\tstyle.push($tw.utils.convertPropertyNameToStyleName(s) + \":\" + this._style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\");\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/filesystem.js": {
"title": "$:/core/modules/utils/filesystem.js",
"text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = Buffer.alloc(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n/*\nCreate a fileInfo object for saving a tiddler:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\nOptions include:\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFileInfo = function(tiddler,options) {\n\tvar fileInfo = {};\n\t// Check if the tiddler has any unsafe fields that can't be expressed in a .tid or .meta file: containing control characters, or leading/trailing whitespace\n\tvar hasUnsafeFields = false;\n\t$tw.utils.each(tiddler.getFieldStrings(),function(value,fieldName) {\n\t\tif(fieldName !== \"text\") {\n\t\t\thasUnsafeFields = hasUnsafeFields || /[\\x00-\\x1F]/mg.test(value);\n\t\t\thasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value);\n\t\t}\n\t});\n\t// Check for field values \n\tif(hasUnsafeFields) {\n\t\t// Save as a JSON file\n\t\tfileInfo.type = \"application/json\";\n\t\tfileInfo.hasMetaFile = false;\n\t} else {\n\t\t// Save as a .tid or a text/binary file plus a .meta file\n\t\tvar tiddlerType = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\tif(tiddlerType === \"text/vnd.tiddlywiki\") {\n\t\t\t// Save as a .tid file\n\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\tfileInfo.hasMetaFile = false;\n\t\t} else {\n\t\t\t// Save as a text/binary file and a .meta file\n\t\t\tfileInfo.type = tiddlerType;\n\t\t\tfileInfo.hasMetaFile = true;\n\t\t}\n\t}\n\t// Take the file extension from the tiddler content type\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[fileInfo.type] || {extension: \"\"};\n\t// Generate the filepath\n\tfileInfo.filepath = $tw.utils.generateTiddlerFilepath(tiddler.fields.title,{\n\t\textension: contentTypeInfo.extension,\n\t\tdirectory: options.directory,\n\t\tpathFilters: options.pathFilters,\n\t\twiki: options.wiki\n\t});\n\treturn fileInfo;\n};\n\n/*\nGenerate the filepath for saving a tiddler\nOptions include:\n\textension: file extension to be added the finished filepath\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFilepath = function(title,options) {\n\tvar self = this,\n\t\tdirectory = options.directory || \"\",\n\t\textension = options.extension || \"\",\n\t\tfilepath;\n\t// Check if any of the pathFilters applies\n\tif(options.pathFilters && options.wiki) {\n\t\t$tw.utils.each(options.pathFilters,function(filter) {\n\t\t\tif(!filepath) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\tfilepath = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// If not, generate a base pathname\n\tif(!filepath) {\n\t\tfilepath = title;\n\t\t// If the filepath already ends in the extension then remove it\n\t\tif(filepath.substring(filepath.length - extension.length) === extension) {\n\t\t\tfilepath = filepath.substring(0,filepath.length - extension.length);\n\t\t}\n\t\t// Remove any forward or backward slashes so we don't create directories\n\t\tfilepath = filepath.replace(/\\/|\\\\/g,\"_\");\n\t}\n\t// Don't let the filename start with a dot because such files are invisible on *nix\n\tfilepath = filepath.replace(/^\\./g,\"_\");\n\t// Remove any characters that can't be used in cross-platform filenames\n\tfilepath = $tw.utils.transliterate(filepath.replace(/<|>|\\:|\\\"|\\||\\?|\\*|\\^/g,\"_\"));\n\t// Truncate the filename if it is too long\n\tif(filepath.length > 200) {\n\t\tfilepath = filepath.substr(0,200);\n\t}\n\t// If the resulting filename is blank (eg because the title is just punctuation characters)\n\tif(!filepath) {\n\t\t// ...then just use the character codes of the title\n\t\tfilepath = \"\";\t\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tif(filepath) {\n\t\t\t\tfilepath += \"-\";\n\t\t\t}\n\t\t\tfilepath += char.charCodeAt(0).toString();\n\t\t});\n\t}\n\t// Add a uniquifier if the file already exists\n\tvar fullPath,\n\t\tcount = 0;\n\tdo {\n\t\tfullPath = path.resolve(directory,filepath + (count ? \"_\" + count : \"\") + extension);\n\t\tcount++;\n\t} while(fs.existsSync(fullPath));\n\t// Return the full path to the file\n\treturn fullPath;\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFile = function(tiddler,fileInfo,callback) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFile(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tfs.writeFile(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\",callback);\n\t\t});\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFile(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\",callback);\n\t\t} else {\n\t\t\tfs.writeFile(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\",callback);\n\t\t}\n\t}\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFileSync = function(tiddler,fileInfo) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFileSync(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding);\n\t\tfs.writeFileSync(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\");\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFileSync(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\");\n\t\t} else {\n\t\t\tfs.writeFileSync(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/logger.js": {
"title": "$:/core/modules/utils/logger.js",
"text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n\tthis.save = \"save\" in options ? options.save : true;\n\tthis.saveLimit = options.saveLimit || 100 * 1024;\n\tthis.saveBufferLogger = this;\n\tthis.buffer = \"\";\n\tthis.alertCount = 0;\n}\n\nLogger.prototype.setSaveBuffer = function(logger) {\n\tthis.saveBufferLogger = logger;\n};\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tvar self = this;\n\tif(this.enable) {\n\t\tif(this.saveBufferLogger.save) {\n\t\t\tthis.saveBufferLogger.buffer += $tw.utils.formatDateString(new Date(),\"YYYY MM DD 0hh:0mm:0ss.0XXX\") + \":\";\n\t\t\t$tw.utils.each(Array.prototype.slice.call(arguments,0),function(arg,index) {\n\t\t\t\tself.saveBufferLogger.buffer += \" \" + arg;\n\t\t\t});\n\t\t\tthis.saveBufferLogger.buffer += \"\\n\";\n\t\t\tthis.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit);\t\t\t\n\t\t}\n\t\tif(console !== undefined && console.log !== undefined) {\n\t\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t\t}\n\t} \n};\n\n/*\nRead the message buffer\n*/\nLogger.prototype.getBuffer = function() {\n\treturn this.saveBufferLogger.buffer;\n};\n\n/*\nLog a structure as a table\n*/\nLogger.prototype.table = function(value) {\n\t(console.table || console.log)(value);\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t\tthis.alertCount += 1;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\n/*\nClear outstanding alerts\n*/\nLogger.prototype.clearAlerts = function() {\n\tvar self = this;\n\tif($tw.browser && this.alertCount > 0) {\n\t\t$tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.component === self.componentName) {\n\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t}\n\t\t});\n\t\tthis.alertCount = 0;\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/parsetree.js": {
"title": "$:/core/modules/utils/parsetree.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/performance.js": {
"title": "$:/core/modules/utils/performance.js",
"text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap by measurement name of {time:, invocations:}\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n\tthis.showGreeting();\n}\n\nPerformance.prototype.showGreeting = function() {\n\tif($tw.browser) {\n\t\tthis.logger.log(\"Execute $tw.perf.log(); to see filter execution timings\");\t\t\n\t}\n};\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nPerformance.prototype.log = function() {\n\tvar self = this,\n\t\ttotalTime = 0,\n\t\torderedMeasures = Object.keys(this.measures).sort(function(a,b) {\n\t\t\tif(self.measures[a].time > self.measures[b].time) {\n\t\t\t\treturn -1;\n\t\t\t} else if (self.measures[a].time < self.measures[b].time) {\n\t\t\t\treturn + 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t});\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\ttotalTime += self.measures[name].time;\n\t});\n\tvar results = []\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\tvar measure = self.measures[name];\n\t\tresults.push({name: name,invocations: measure.invocations, avgTime: measure.time / measure.invocations, totalTime: measure.time, percentTime: (measure.time / totalTime) * 100})\n\t});\n\tself.logger.table(results);\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tif(!(name in self.measures)) {\n\t\t\t\tself.measures[name] = {time: 0, invocations: 0};\n\t\t\t}\n\t\t\tself.measures[name].time += $tw.utils.timer(startTime);\n\t\t\tself.measures[name].invocations++;\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/pluginmaker.js": {
"title": "$:/core/modules/utils/pluginmaker.js",
"text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/transliterate.js": {
"title": "$:/core/modules/utils/transliterate.js",
"text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\nexports.transliterateToSafeASCII = function(str) {\n\treturn str.replace(/[^\\x00-\\x7F]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || \"\"\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/utils.js": {
"title": "$:/core/modules/utils/utils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar base64utf8 = require(\"$:/core/modules/utils/base64-utf8/base64-utf8.module.js\");\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nConvert a string to sentence case (ie capitalise first letter)\n*/\nexports.toSentenceCase = function(str) {\n\treturn (str || \"\").replace(/^\\S/, function(c) {return c.toUpperCase();});\n}\n\n/*\nConvert a string to title case (ie capitalise each initial letter)\n*/\nexports.toTitleCase = function(str) {\n\treturn (str || \"\").replace(/(^|\\s)\\S/g, function(c) {return c.toUpperCase();});\n}\n\t\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nDetermine whether an array-item is an object-property\n*/\nexports.hopArray = function(object,array) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tif($tw.utils.hop(object,array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.getYearForWeekNo(date);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn date.getFullYear();\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds(),3);\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\", duration: 365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\", duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\", duration: 24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\", duration: 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration: 60 * 1000},\n\t\t{name: \"Seconds\", duration: 1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&\", < to \"<\", > to \">\", \" to \""\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&\").replace(/</mg,\"<\").replace(/>/mg,\">\").replace(/\\\"/mg,\""\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2), // Strip the & and the ;\n\t\tc;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\tc = parseInt(e.substr(2),16);\n\t\t} else {\n\t\t\tc = parseInt(e.substr(1),10);\n\t\t}\n\t\tif(isNaN(c)) {\n\t\t\treturn s;\n\t\t} else {\n\t\t\treturn converter(c);\n\t\t}\n\t} else {\n\t\tc = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/'/g, \"\\\\'\") // single quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s) {\n\t// See http://www.json.org/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/\\x08/g, '\\\\b') // backspace\n\t\t.replace(/\\x0c/g, '\\\\f') // formfeed\n\t\t.replace(/\\t/g, '\\\\t') // tab\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10) || 0;\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\treturn base64utf8.base64.decode.call(base64utf8,string64);\n};\n\n/*\nEncode a string to base64\n*/\nexports.base64Encode = function(string64) {\n\treturn base64utf8.base64.encode.call(base64utf8,string64);\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm = r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type,_canonical_uri) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tif(_canonical_uri) {\n\t\tparts.push(_canonical_uri);\n\t} else {\n\t\tparts.push(\"data:\");\n\t\tparts.push(type);\n\t\tparts.push(isBase64 ? \";base64\" : \"\");\n\t\tparts.push(\",\");\n\t\tparts.push(isBase64 ? text : encodeURIComponent(text));\t\t\n\t}\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nReturn system information useful for debugging\n*/\nexports.getSystemInfo = function(str,ending,position) {\n\tvar results = [],\n\t\tsave = function(desc,value) {\n\t\t\tresults.push(desc + \": \" + value);\n\t\t};\n\tif($tw.browser) {\n\t\tsave(\"User Agent\",navigator.userAgent);\n\t\tsave(\"Online Status\",window.navigator.onLine);\n\t}\n\tif($tw.node) {\n\t\tsave(\"Node Version\",process.version);\n\t}\n\treturn results.join(\"\\n\");\n};\n\nexports.parseNumber = function(str) {\n\treturn parseFloat(str) || 0;\n};\n\nexports.parseInt = function(str) {\n\treturn parseInt(str,10) || 0;\n};\n\nexports.stringifyNumber = function(num) {\n\treturn num + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/widgets/action-createtiddler.js": {
"title": "$:/core/modules/widgets/action-createtiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw:false, require:false, exports:false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.hasBase = !!this.actionBaseTitle;\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionSaveDraftTitle = this.getAttribute(\"$savedrafttitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n\t//Following params are new since 5.1.22\n\tthis.actionTemplate = this.getAttribute(\"$template\");\n\tthis.useTemplate = !!this.actionTemplate;\n\tthis.actionOverwrite = this.getAttribute(\"$overwrite\",\"no\");\n\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.getTiddlerText(\"$:/language/DefaultNewTiddlerTitle\"), // Get the initial new-tiddler title\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tif(this.hasBase && this.actionOverwrite === \"no\") {\n\t\ttitle = this.wiki.generateNewTitle(this.actionBaseTitle);\n\t} else if (this.hasBase && this.actionOverwrite === \"yes\") {\n\t\ttitle = this.actionBaseTitle\n\t}\n\t// NO $basetitle BUT $template parameter is available\n\t// the title MUST be unique, otherwise the template would be overwritten\n\tif (!this.hasBase && this.useTemplate) {\n\t\ttitle = this.wiki.generateNewTitle(this.actionTemplate);\n\t} else if (!this.hasBase && !this.useTemplate) {\n\t\t// If NO $basetitle AND NO $template use initial title\n\t\t// DON'T overwrite any stuff\n\t\ttitle = this.wiki.generateNewTitle(title);\n\t}\n\tvar templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.actionSaveDraftTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(title),this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletefield.js": {
"title": "$:/core/modules/widgets/action-deletefield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField && tiddler) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletetiddler.js": {
"title": "$:/core/modules/widgets/action-deletetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-listops.js": {
"title": "$:/core/modules/widgets/action-listops.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-navigate.js": {
"title": "$:/core/modules/widgets/action-navigate.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tevent = event || {};\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-popup.js": {
"title": "$:/core/modules/widgets/action-popup.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-popup.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to trigger a popup.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ActionPopupWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nActionPopupWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nActionPopupWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nActionPopupWidget.prototype.execute = function() {\n\tthis.actionState = this.getAttribute(\"$state\");\n\tthis.actionCoords = this.getAttribute(\"$coords\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nActionPopupWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$state\"] || changedAttributes[\"$coords\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Trigger the popup\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(this.actionCoords);\n\tif(match) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: null,\n\t\t\tdomNodeRect: {\n\t\t\t\tleft: parseFloat(match[1]),\n\t\t\t\ttop: parseFloat(match[2]),\n\t\t\t\twidth: parseFloat(match[3]),\n\t\t\t\theight: parseFloat(match[4])\n\t\t\t},\n\t\t\ttitle: this.actionState,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-popup\"] = ActionPopupWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-sendmessage.js": {
"title": "$:/core/modules/widgets/action-sendmessage.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-setfield.js": {
"title": "$:/core/modules/widgets/action-setfield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\") || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/browse.js": {
"title": "$:/core/modules/widgets/browse.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/button.js": {
"title": "$:/core/modules/widgets/button.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = (this.popup || this.popupTitle) && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif((this.set || this.setTitle) && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\t\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup || self.popupTitle) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set || self.setTitle) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n return this.setTitle ? (this.setField ? this.wiki.getTiddler(this.setTitle).getFieldString(this.setField) === this.setTo :\n\t\t(this.setIndex ? this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex) === this.setTo :\n\t\t\tthis.wiki.getTiddlerText(this.setTitle))) || this.defaultSetValue || this.getVariable(\"currentTiddler\") :\n\t\tthis.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\tif(this.popupTitle) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popupTitle,\n\t\t\twiki: this.wiki,\n\t\t\tnoStateReference: true\n\t\t});\n\t} else {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popup,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tif(this.setTitle) {\n\t\tthis.setField ? this.wiki.setText(this.setTitle,this.setField,undefined,this.setTo) :\n\t\t\t\t(this.setIndex ? this.wiki.setText(this.setTitle,undefined,this.setIndex,this.setTo) :\n\t\t\t\tthis.wiki.setText(this.setTitle,\"text\",undefined,this.setTo));\n\t} else {\n\t\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\tthis.setTitle = this.getAttribute(\"setTitle\");\n\tthis.setField = this.getAttribute(\"setField\");\n\tthis.setIndex = this.getAttribute(\"setIndex\");\n\tthis.popupTitle = this.getAttribute(\"popupTitle\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/checkbox.js": {
"title": "$:/core/modules/widgets/checkbox.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxCheckActions && checked) {\n\t\tthis.invokeActionString(this.checkboxCheckActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxCheckActions = this.getAttribute(\"checkactions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/codeblock.js": {
"title": "$:/core/modules/widgets/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/count.js": {
"title": "$:/core/modules/widgets/count.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = \"0\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/diff-text.js": {
"title": "$:/core/modules/widgets/diff-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/draggable.js": {
"title": "$:/core/modules/widgets/draggable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/droppable.js": {
"title": "$:/core/modules/widgets/droppable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tvar domNode = this.document.createElement(tag),\n\t\tclasses = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tdomNode.className = classes.join(\" \");\n\t// Add event handlers\n\tif(this.droppableEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t\t]);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = event.ctrlKey && ! event.shiftKey ? \"ctrl\" : event.shiftKey && !event.ctrlKey ? \"shift\" : \n\t\t\t\tevent.ctrlKey && event.shiftKey ? \"ctrl-shift\" : \"normal\" ;\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableClass = this.getAttribute(\"class\");\n\tthis.droppableEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"] || changedAttributes.tag || changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/dropzone.js": {
"title": "$:/core/modules/widgets/dropzone.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = this.dropzoneClass || \"tc-dropzone\";\n\t// Add event handlers\n\tif(this.dropzoneEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\t\t\n\t}\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDragEndEvent = function(event) {\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneClass = this.getAttribute(\"class\");\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\tthis.dropzoneEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-binary.js": {
"title": "$:/core/modules/widgets/edit-binary.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Get our parameters\n\tvar editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tvar tiddler = this.wiki.getTiddler(editTitle);\n\tvar type = tiddler.fields.type;\n\tvar text = tiddler.fields.text;\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on draft tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!draft.title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!draft.title\"}\n\t\t},\n\t\tchildren: [{\n\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to internal data URI (no external)\n\tif(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets([element]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-bitmap.js": {
"title": "$:/core/modules/widgets/edit-bitmap.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370,\n\tDEFAULT_IMAGE_TYPE = \"image/png\";\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tif(tiddler && tiddler.fields.type && tiddler.fields.text) {\n\t\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\t\t\n\t} else {\n\t\tcurrImage.width = DEFAULT_IMAGE_WIDTH;\n\t\tcurrImage.height = DEFAULT_IMAGE_HEIGHT;\n\t\tcurrImage.onerror();\n\t}\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle) || new $tw.Tiddler({title: this.editTitle,type: DEFAULT_IMAGE_TYPE});\n\t// data URIs look like \"data:<type>;base64,<text>\"\n\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\tposColon = dataURL.indexOf(\":\"),\n\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\tposComma = dataURL.indexOf(\",\"),\n\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\ttext = dataURL.substring(posComma+1);\n\tvar update = {type: type, text: text};\n\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-shortcut.js": {
"title": "$:/core/modules/widgets/edit-shortcut.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n\t// Focus the input Node if focus === \"yes\" or focus === \"true\"\n\tif(this.shortcutFocus === \"yes\" || this.shortcutFocus === \"true\") {\n\t\tthis.focus();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n\tthis.shortcutFocus = this.getAttribute(\"focus\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nfocus the input node\n*/\nEditShortcutWidget.prototype.focus = function() {\n\tif(this.inputNode.focus && this.inputNode.select) {\n\t\tthis.inputNode.focus();\n\t\tthis.inputNode.select();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"] || changedAttributes.focus) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-text.js": {
"title": "$:/core/modules/widgets/edit-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit.js": {
"title": "$:/core/modules/widgets/edit.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\tthis.editFocus = this.getAttribute(\"focus\",\"\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder},\n\t\t\t\"tabindex\": {type: \"string\", value: this.editTabIndex},\n\t\t\t\"focus\": {type: \"string\", value: this.editFocus}\n\t\t},\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/element.js": {
"title": "$:/core/modules/widgets/element.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\t// Adjust headings by the current base level\n\tvar headingLevel = [\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(tag);\n\tif(headingLevel !== -1) {\n\t\tvar baseLevel = parseInt(this.getVariable(\"tv-adjust-heading-level\",\"0\"),10) || 0;\n\t\theadingLevel = Math.min(Math.max(headingLevel + 1 + baseLevel,1),6);\n\t\ttag = \"h\" + headingLevel;\n\t}\n\t// Create the DOM node\n\tvar domNode = this.document.createElementNS(this.namespace,tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.parseTreeNode.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/encrypt.js": {
"title": "$:/core/modules/widgets/encrypt.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/entity.js": {
"title": "$:/core/modules/widgets/entity.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fieldmangler.js": {
"title": "$:/core/modules/widgets/fieldmangler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fields.js": {
"title": "$:/core/modules/widgets/fields.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.sort = this.getAttribute(\"sort\",\"yes\") === \"yes\";\n\tthis.sortReverse = this.getAttribute(\"sortReverse\",\"no\") === \"yes\";\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.include = this.getAttribute(\"include\",null);\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\n\t// Get the inclusion and exclusion list\n\tvar excludeArr = (this.exclude) ? this.exclude.split(\" \") : [\"text\"];\n\t// Include takes precedence\n\tvar includeArr = (this.include) ? this.include.split(\" \") : null;\n\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tif (includeArr) { // Include takes precedence\n\t\t\tfor(var i=0; i<includeArr.length; i++) {\n\t\t\t\tif(tiddler.fields[includeArr[i]]) {\n\t\t\t\t\tfields.push(includeArr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\tif(excludeArr.indexOf(fieldName) === -1) {\n\t\t\t\t\tfields.push(fieldName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.sort) fields.sort();\n\t\tif (this.sortReverse) fields.reverse();\n\t\tfor(var f=0, fmax=fields.length; f<fmax; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tvar row = this.template,\n\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\tif(reMatch) {\n\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\ttext.push(row);\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif( changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude ||\n\t\tchangedAttributes.include || changedAttributes.sort || changedAttributes.sortReverse ||\n\t\tchangedTiddlers[this.tiddlerTitle] || changedAttributes.stripTitlePrefix) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/image.js": {
"title": "$:/core/modules/widgets/image.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/importvariables.js": {
"title": "$:/core/modules/widgets/importvariables.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar widgetPointer = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = widgetPointer.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tvar node = {\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params,\n\t\t\t\t\tisMacroDefinition: parseTreeNode.isMacroDefinition\n\t\t\t\t};\n\t\t\t\tif (parseTreeNode.isMacroDefinition) {\n\t\t\t\t\t// Macro definitions can be folded into\n\t\t\t\t\t// current widget instead of adding\n\t\t\t\t\t// another link to the chain.\n\t\t\t\t\tvar widget = widgetPointer.makeChildWidget(node);\n\t\t\t\t\twidget.computeAttributes();\n\t\t\t\t\twidget.execute();\n\t\t\t\t\t// We SHALLOW copy over all variables\n\t\t\t\t\t// in widget. We can't use\n\t\t\t\t\t// $tw.utils.assign, because that copies\n\t\t\t\t\t// up the prototype chain, which we\n\t\t\t\t\t// don't want.\n\t\t\t\t\t$tw.utils.each(Object.keys(widget.variables), function(key) {\n\t\t\t\t\t\twidgetPointer.variables[key] = widget.variables[key];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twidgetPointer.makeChildWidgets([node]);\n\t\t\t\t\twidgetPointer = widgetPointer.children[0];\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\n\tif (widgetPointer != this) {\n\t\twidgetPointer.parseTreeNode.children = this.parseTreeNode.children;\n\t} else {\n\t\twidgetPointer.makeChildWidgets();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/keyboard.js": {
"title": "$:/core/modules/widgets/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tself.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\",\"\");\n\tthis.message = this.getAttribute(\"message\",\"\");\n\tthis.param = this.getAttribute(\"param\",\"\");\n\tthis.key = this.getAttribute(\"key\",\"\");\n\tthis.tag = this.getAttribute(\"tag\",\"\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tif(this.key.substr(0,2) === \"((\" && this.key.substr(-2,2) === \"))\") {\n\t\tthis.shortcutTiddlers = [];\n\t\tvar name = this.key.substring(2,this.key.length -2);\n\t\t$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {\n\t\t\tself.shortcutTiddlers.push(\"$:/config/\" + platformDescriptor + \"/\" + name);\n\t\t});\n\t}\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\t// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed\n\tif(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {\n\t\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/link.js": {
"title": "$:/core/modules/widgets/link.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = (this.getVariable(\"tv-show-missing-links\") || \"yes\") === \"no\";\n\t// Make the child widgets\n\tvar templateTree;\n\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\ttemplateTree = this.parseTreeNode.children;\n\t} else {\n\t\t// Default template is a link to the title\n\t\ttemplateTree = [{type: \"text\", text: this.to}];\n\t}\n\tthis.makeChildWidgets(templateTree);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/linkcatcher.js": {
"title": "$:/core/modules/widgets/linkcatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/list.js": {
"title": "$:/core/modules/widgets/list.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/macrocall.js": {
"title": "$:/core/modules/widgets/macrocall.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/navigator.js": {
"title": "$:/core/modules/widgets/navigator.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tif(this.storyTitle) {\n\t\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: this.storyTitle},\n\t\t\tstoryTiddler,\n\t\t\t{list: storyList}\n\t\t));\t\t\n\t}\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tif(storyList) {\n\t\tvar p = storyList.indexOf(title);\n\t\twhile(p !== -1) {\n\t\t\tstoryList.splice(p,1);\n\t\t\tp = storyList.indexOf(title);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tif(storyList) {\n\t\tvar pos = storyList.indexOf(oldTitle);\n\t\tif(pos !== -1) {\n\t\t\tstoryList[pos] = newTitle;\n\t\t\tdo {\n\t\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\t\tif(pos !== -1) {\n\t\t\t\t\tstoryList.splice(pos,1);\n\t\t\t\t}\n\t\t\t} while(pos !== -1);\n\t\t} else {\n\t\t\tstoryList.splice(0,0,newTitle);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tif(this.storyTitle) {\n\t\tthis.wiki.addToStory(title,fromTitle,this.storyTitle,{\n\t\t\topenLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),\n\t\t\topenLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")\n\t\t});\n\t}\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\treturn this.wiki.generateDraftTitle(title);\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\nconsole.log(\"Relinking '\" + draftOf + \"' to '\" + draftTitle + \"'\");\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList && storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tif(slot === -1) {\n\t\t\tslot = this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\" ? storyList.length - 1 : slot;\n\t\t}\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList && storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList && storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n//\nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix || \"$:/state/folded/\";\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\tthis.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/password.js": {
"title": "$:/core/modules/widgets/password.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/qualify.js": {
"title": "$:/core/modules/widgets/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/qualify.js\ntype: application/javascript\nmodule-type: widget\n\nQualify text to a variable \n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar QualifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nQualifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nQualifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nQualifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.qualifyName = this.getAttribute(\"name\");\n\tthis.qualifyTitle = this.getAttribute(\"title\");\n\t// Set context variable\n\tif(this.qualifyName) {\n\t\tthis.setVariable(this.qualifyName,this.qualifyTitle + \"-\" + this.getStateQualifier());\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nQualifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.title) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.qualify = QualifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/radio.js": {
"title": "$:/core/modules/widgets/radio.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n \t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n \t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/range.js": {
"title": "$:/core/modules/widgets/range.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\t\t\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tfieldName = this.tiddlerField || \"text\",\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(tiddler,this.tiddlerIndex,this.defaultValue || \"\");\n\t\t} else {\n\t\t\tif($tw.utils.hop(tiddler.fields,fieldName)) {\n\t\t\t\tvalue = tiddler.fields[fieldName] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.defaultValue || \"\";\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.handleInputEvent = function(event) {\n\tif(this.getValue() !== this.inputDomNode.value) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,\"\",this.tiddlerIndex,this.inputDomNode.value);\n\t\t} else {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\");\n\tthis.tiddlerIndex = this.getAttribute(\"index\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes['min'] || changedAttributes['max'] || changedAttributes['increment'] || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.tiddlerTitle]) {\n\t\t\tvar value = this.getValue();\n\t\t\tif(this.inputDomNode.value !== value) {\n\t\t\t\tthis.inputDomNode.value = value;\t\t\t\t\n\t\t\t}\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/raw.js": {
"title": "$:/core/modules/widgets/raw.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/reveal.js": {
"title": "$:/core/modules/widgets/reveal.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tvar left,top;\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tleft = this.popup.left + this.popup.width - domNode.offsetWidth;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t}\n\tif(!this.positionAllowNegative) {\n\t\tleft = Math.max(0,left);\n\t\ttop = Math.max(0,top);\n\t}\n\tdomNode.style.left = left + \"px\";\n\tdomNode.style.top = top + \"px\";\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis.positionAllowNegative = this.getAttribute(\"positionAllowNegative\") === \"yes\";\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTiddlerTitle = this.state;\n\tthis.stateTitle = this.getAttribute(\"stateTitle\");\n\tthis.stateField = this.getAttribute(\"stateField\");\n\tthis.stateIndex = this.getAttribute(\"stateIndex\");\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state,\n\t defaultState = this[\"default\"];\n\tif(this.stateTitle) {\n\t\tvar stateTitleTiddler = this.wiki.getTiddler(this.stateTitle);\n\t\tif(this.stateField) {\n\t\t\tstate = stateTitleTiddler ? stateTitleTiddler.getFieldString(this.stateField) || defaultState : defaultState;\n\t\t} else if(this.stateIndex) {\n\t\t\tstate = stateTitleTiddler ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) || defaultState : defaultState;\n\t\t} else if(stateTitleTiddler) {\n\t\t\tstate = this.wiki.getTiddlerText(this.stateTitle) || defaultState;\n\t\t} else {\n\t\t\tstate = defaultState;\n\t\t}\n\t} else {\n\t\tstate = this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\t}\n\tif(state === null) {\n\t\tstate = this[\"default\"];\n\t}\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = this.text === state;\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = this.text !== state;\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes[\"default\"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar currentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n\t\t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/scrollable.js": {
"title": "$:/core/modules/widgets/scrollable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tthis.scrollIntoView(event.target);\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/select.js": {
"title": "$:/core/modules/widgets/select.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tselect.children[i].selected = values.indexOf(select.children[i].value) !== -1\n\t\t}\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\tthis.selectTooltip = this.getAttribute(\"tooltip\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tif(this.selectTooltip) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"title\",this.selectTooltip);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex || changedAttributes.selectTooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/set.js": {
"title": "$:/core/modules/widgets/set.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/text.js": {
"title": "$:/core/modules/widgets/text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/tiddler.js": {
"title": "$:/core/modules/widgets/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/transclude.js": {
"title": "$:/core/modules/widgets/transclude.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tthis.setVariable(\"transclusion\",recursionMarker);\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/vars.js": {
"title": "$:/core/modules/widgets/vars.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/view.js": {
"title": "$:/core/modules/widgets/view.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/widget.js": {
"title": "$:/core/modules/widgets/widget.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\t// Bail if parseTreeNode is undefined, meaning that the widget constructor was called without any arguments so that it can be subclassed\n\tif(parseTreeNode === undefined) {\n\t\treturn;\n\t}\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\t// Get widget classes\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t\t// Process any subclasses\n\t\t$tw.modules.forEachModuleOfType(\"widget-subclass\",function(title,module) {\n\t\t\tif(module.baseClass) {\n\t\t\t\tvar baseClass = Widget.prototype.widgetClasses[module.baseClass];\n\t\t\t\tif(!baseClass) {\n\t\t\t\t\tthrow \"Module '\" + title + \"' is attemping to extend a non-existent base class '\" + module.baseClass + \"'\";\n\t\t\t\t}\n\t\t\t\tvar subClass = module.constructor;\n\t\t\t\tsubClass.prototype = new baseClass();\n\t\t\t\t$tw.utils.extend(subClass.prototype,module.prototype);\n\t\t\t\tWidget.prototype.widgetClasses[module.name || module.baseClass] = subClass;\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\nisMacroDefinition: true if the variable is set via a \\define macro pragma (and hence should have variable substitution performed)\n*/\nWidget.prototype.setVariable = function(name,value,params,isMacroDefinition) {\n\tthis.variables[name] = {value: value, params: params, isMacroDefinition: !!isMacroDefinition};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\t// Only substitute variable references if this variable was defined with the \\define pragma\n\t\tif(variable.isMacroDefinition) {\n\t\t\tvalue = this.substituteVariableReferences(value);\t\t\t\n\t\t}\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\tvar children = this.children;\n\tfor(var i = 0; i < children.length; i++) {\n\t\tchildren[i].render(parent,nextSibling);\n\t};\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar children = this.children,\n\t\trefreshed = false;\n\tfor (var i = 0; i < children.length; i++) {\n\t\trefreshed = children[i].refresh(changedTiddlers) || refreshed;\n\t}\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/wikify.js": {
"title": "$:/core/modules/widgets/wikify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/wiki-bulkops.js": {
"title": "$:/core/modules/wiki-bulkops.js",
"text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,\n\t\t\t\t\tlist = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/wiki.js": {
"title": "$:/core/modules/wiki.js",
"text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nAdd available indexers to this wiki\n*/\nexports.addIndexersToWiki = function() {\n\tvar self = this;\n\t$tw.utils.each($tw.modules.applyMethods(\"indexer\"),function(Indexer,name) {\n\t\tself.addIndexer(new Indexer(self),name);\n\t});\n};\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type] || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.isBinaryTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.encoding === \"base64\";\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x : x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked within the given parse tree\n */\nexports.extractLinks = function(parseTreeRoot) {\n\t// Count up the links\n\tvar links = [],\n\t\tcheckParseTree = function(parseTree) {\n\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcheckParseTree(parseTreeRoot);\n\treturn links;\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\tif(parser) {\n\t\t\treturn self.extractLinks(parser.tree);\n\t\t}\n\t\treturn [];\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinksIndexer = this.getIndexer(\"BacklinksIndexer\"),\n\t\tbacklinks = backlinksIndexer && backlinksIndexer.lookup(targetTitle);\n\n\tif(!backlinks) {\n\t\tbacklinks = [];\n\t\tthis.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self.getTiddlerLinks(title);\n\t\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\t\tbacklinks.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\t// Try to use the indexer\n\tvar self = this,\n\t\ttagIndexer = this.getIndexer(\"TagIndexer\"),\n\t\tresults = tagIndexer && tagIndexer.subIndexers[3].lookup(tag);\n\tif(!results) {\n\t\t// If not available, perform a manual scan\n\t\tresults = this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\t\tvar tagmap = self.getTagMap();\n\t\t\treturn self.sortByList(tagmap[tag],tag);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar self = this,\n\t\treplacedTitles = Object.create(null);\n\t// Given a title, this function will place it in the correct location\n\t// within titles.\n\tfunction moveItemInList(title) {\n\t\tif(!$tw.utils.hop(replacedTitles, title)) {\n\t\t\treplacedTitles[title] = true;\n\t\t\tvar newPos = -1,\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\t// if this title is placed relative\n\t\t\t\t\t// to another title, make sure that\n\t\t\t\t\t// title is placed before we place\n\t\t\t\t\t// this one.\n\t\t\t\t\tmoveItemInList(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\t// Same deal\n\t\t\t\t\tmoveItemInList(afterTitle);\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If a new position is specified, let's move it\n\t\t\t\tif (newPos !== -1) {\n\t\t\t\t\t// get its current Pos, and make sure\n\t\t\t\t\t// sure that it's _actually_ in the list\n\t\t\t\t\t// and that it would _actually_ move\n\t\t\t\t\t// (#4275) We don't bother calling\n\t\t\t\t\t// indexOf unless we have a new\n\t\t\t\t\t// position to work with\n\t\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\t\t// move it!\n\t\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tmoveItemInList(title);\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\nexports.getTiddlersAsJson = function(filter,spaces) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tspaces = (spaces === undefined) ? $tw.config.preferences.jsonSpaces : spaces,\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,spaces);\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n\t// Use the generic binary parser for any binary types not registered so far\n\tif($tw.Wiki.parsers[\"application/octet-stream\"]) {\n\t\tObject.keys($tw.config.contentTypeInfo).forEach(function(type) {\n\t\t\tif(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === \"base64\") {\n\t\t\t\t$tw.Wiki.parsers[type] = $tw.Wiki.parsers[\"application/octet-stream\"];\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type,tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title}},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tfield: If specified, restricts the search to the specified field, or an array of field names\n\tanchored: If true, forces all but regexp searches to be anchored to the start of text\n\texcludeField: If true, the field options are inverted to specify the fields that are not to be searched\n\tThe search mode is determined by the first of these boolean flags to be true\n\t\tliteral: searches for literal string\n\t\twhitespace: same as literal except runs of whitespace are treated as a single space\n\t\tregexp: treats the search term as a regular expression\n\t\twords: (default) treats search string as a list of tokens, and matches if all tokens are found, regardless of adjacency or ordering\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\",\n\t\tanchor = options.anchored ? \"^\" : \"\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else if(options.whitespace) {\n\t\tterms = [];\n\t\t$tw.utils.each(text.split(/\\s+/g),function(term) {\n\t\t\tif(term) {\n\t\t\t\tterms.push($tw.utils.escapeRegExp(term));\n\t\t\t}\n\t\t});\n\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + terms.join(\"\\\\s+\") + \")\",flags)];\n\t} else if(options.regexp) {\n\t\ttry {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + text + \")\",flags)];\t\t\t\n\t\t} catch(e) {\n\t\t\tsearchTermsRegExps = null;\n\t\t\tconsole.log(\"Regexp error parsing /(\" + text + \")/\" + flags + \": \",e);\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Accumulate the array of fields to be searched or excluded from the search\n\tvar fields = [];\n\tif(options.field) {\n\t\tif($tw.utils.isArray(options.field)) {\n\t\t\t$tw.utils.each(options.field,function(fieldName) {\n\t\t\t\tif(fieldName) {\n\t\t\t\t\tfields.push(fieldName);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tfields.push(options.field);\n\t\t}\n\t}\n\t// Use default fields if none specified and we're not excluding fields (excluding fields with an empty field array is the same as searching all fields)\n\tif(fields.length === 0 && !options.excludeField) {\n\t\tfields.push(\"title\");\n\t\tfields.push(\"tags\");\n\t\tfields.push(\"text\");\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar notYetFound = searchTermsRegExps.slice();\n\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tsearchFields;\n\t\t// Get the list of fields we're searching\n\t\tif(options.excludeField) {\n\t\t\tsearchFields = Object.keys(tiddler.fields);\n\t\t\t$tw.utils.each(fields,function(fieldName) {\n\t\t\t\tvar p = searchFields.indexOf(fieldName);\n\t\t\t\tif(p !== -1) {\n\t\t\t\t\tsearchFields.splice(p,1);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsearchFields = fields;\n\t\t}\n\t\tfor(var fieldIndex=0; notYetFound.length>0 && fieldIndex<searchFields.length; fieldIndex++) {\n\t\t\t// Don't search the text field if the content type is binary\n\t\t\tvar fieldName = searchFields[fieldIndex];\n\t\t\tif(fieldName === \"text\" && contentTypeInfo.encoding !== \"utf8\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar str = tiddler.fields[fieldName],\n\t\t\t\tt;\n\t\t\tif(str) {\n\t\t\t\tif($tw.utils.isArray(str)) {\n\t\t\t\t\t// If the field value is an array, test each regexp against each field array entry and fail if each regexp doesn't match at least one field array entry\n\t\t\t\t\tfor(var s=0; s<str.length; s++) {\n\t\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\t\tif(notYetFound[t].test(str[s])) {\n\t\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If the field isn't an array, force it to a string and test each regexp against it and fail if any do not match\n\t\t\t\t\tstr = tiddler.getFieldString(fieldName);\n\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\tif(notYetFound[t].test(str)) {\n\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn notYetFound.length == 0;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(!tiddler.hasField(\"_is_skinny\")) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text || \"\";\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],$tw.utils.extend({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\t\t\n};\n\n/*\nAdd a new tiddler to the story river\ntitle: a title string or an array of title strings\nfromTitle: the title of the tiddler from which the navigation originated\nstoryTitle: title of story tiddler (defaults to $:/StoryList)\noptions: see story.js\n*/\nexports.addToStory = function(title,fromTitle,storyTitle,options) {\n\tvar story = new $tw.Story({wiki: this, storyTitle: storyTitle});\n\tstory.addToStory(title,fromTitle,options);\t\t\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nexports.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.getTiddlerText(\"$:/status/UserName\"),\n\t\tattribution = username ? \" by \" + username : \"\";\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\" + attribution;\n\t\tc++;\n\t} while(this.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n// Determine whether a plugin by title is dynamically loadable\nexports.doesPluginRequireReload = function(title) {\n\treturn this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));\n};\n\n// Determine whether a plugin info structure is dynamically loadable\nexports.doesPluginInfoRequireReload = function(pluginInfo) {\n\tif(pluginInfo) {\n\t\tvar foundModule = false;\n\t\t$tw.utils.each(pluginInfo.tiddlers,function(tiddler) {\n\t\t\tif(tiddler.type === \"application/javascript\" && $tw.utils.hop(tiddler,\"module-type\")) {\n\t\t\t\tfoundModule = true;\n\t\t\t}\n\t\t});\n\t\treturn foundModule;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n})();\n\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/palettes/Blanca": {
"title": "$:/palettes/Blanca",
"name": "Blanca",
"description": "A clean white palette to let you focus",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Blue": {
"title": "$:/palettes/Blue",
"name": "Blue",
"description": "A blue theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Muted": {
"title": "$:/palettes/Muted",
"name": "Muted",
"description": "Bright tiddlers on a muted background",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastLight": {
"title": "$:/palettes/ContrastLight",
"name": "Contrast (Light)",
"description": "High contrast and unambiguous (light version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastDark": {
"title": "$:/palettes/ContrastDark",
"name": "Contrast (Dark)",
"description": "High contrast and unambiguous (dark version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/DarkPhotos": {
"title": "$:/palettes/DarkPhotos",
"created": "20150402111612188",
"description": "Good with dark photo backgrounds",
"modified": "20150402112344080",
"name": "DarkPhotos",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/GruvboxDark": {
"title": "$:/palettes/GruvboxDark",
"name": "Gruvbox Dark",
"description": "Retro groove color scheme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "https://github.com/morhetz/gruvbox",
"text": "alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #504945\nbutton-foreground: #fbf1c7\nbutton-border: transparent\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: #7c6f64\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #282828\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: <<colour button-background>>\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>"
},
"$:/palettes/Nord": {
"title": "$:/palettes/Nord",
"name": "Nord",
"description": "An arctic, north-bluish color palette.",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
"text": "alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #4C566A\nbutton-foreground: #D8DEE9\nbutton-border: transparent\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #2e3440\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #2d3038\nvery-muted-foreground: #2d3038\n"
},
"$:/palettes/Rocker": {
"title": "$:/palettes/Rocker",
"name": "Rocker",
"description": "A dark theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarFlare": {
"title": "$:/palettes/SolarFlare",
"name": "Solar Flare",
"description": "Warm, relaxing earth colours",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarizedLight": {
"title": "$:/palettes/SolarizedLight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Precision colors for machines and people",
"license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
"name": "SolarizedLight",
"text": "alert-background: #eee8d5\nalert-border: #073642\nalert-highlight: #cb4b16\nalert-muted-foreground: #586e75\nbackground: #fdf6e3\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #cb4b16\nbutton-foreground: #fdf6e3\nbutton-border: transparent\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #d33682\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #859900\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #D08770\ndownload-background: #859900\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #fdf6e3\ndropdown-tab-background: #93a1a1\ndropzone-background: #859900\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: #d33682\nexternal-link-foreground-visited: #b58900\nexternal-link-foreground: #cb4b16\nforeground: #839496\nmessage-background: #586e75\nmessage-border: #586e75\nmessage-foreground: #eee8d5\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #eee8d5\nmodal-footer-background: #eee8d5\nmodal-footer-border: #eee8d5\nmodal-header-border: #eee8d5\nmuted-foreground: #93a1a1\nnotification-background: #EBCB8B\nnotification-border: #D08770\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #93a1a1\nprimary: #2aa198\nselect-tag-background: #eee8d5\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: #eee8d5\nsidebar-controls-foreground-hover: #268bd2\nsidebar-controls-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #839496\nsidebar-muted-foreground-hover: #657b83\nsidebar-muted-foreground: #93a1a1\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-background: #839496\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #657b83\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #839496\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #859900\nsidebar-tiddler-link-foreground: #268bd2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #dc322f\ntab-background-selected: #fdf6e3\ntab-background: #839496\ntab-border-selected: #93a1a1\ntab-border: #93a1a1\ntab-divider: #fdf6e3\ntab-foreground-selected: #839496\ntab-foreground: #eee8d5\ntable-border: #657b83\ntable-footer-background: #657b83\ntable-header-background: #93a1a1\ntag-background: #6c71c4\ntag-foreground: #eee8d5\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #b58900\ntiddler-controls-foreground-selected: #b58900\ntiddler-controls-foreground: #073642\ntiddler-editor-background: #eee8d5\ntiddler-editor-border-image: #eee8d5\ntiddler-editor-border: #eee8d5\ntiddler-editor-fields-even: #eee8d5\ntiddler-editor-fields-odd: #fdf6e3\ntiddler-info-background: #eee8d5\ntiddler-info-border: #eee8d5\ntiddler-info-tab-background: #586e75\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #586e75\ntiddler-title-foreground: #073642\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #839496\nvery-muted-foreground: #93a1a1\n"
},
"$:/palettes/SpartanDay": {
"title": "$:/palettes/SpartanDay",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Cold, spartan day colors",
"name": "Spartan Day",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"
},
"$:/palettes/SpartanNight": {
"title": "$:/palettes/SpartanNight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Dark spartan colors",
"name": "Spartan Night",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"
},
"$:/palettes/Twilight": {
"title": "$:/palettes/Twilight",
"tags": "$:/tags/Palette",
"author": "Thomas Elmiger",
"type": "application/x-tiddler-dictionary",
"name": "Twilight",
"description": "Delightful, soft darkness.",
"text": "alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\n"
},
"$:/palettes/Vanilla": {
"title": "$:/palettes/Vanilla",
"name": "Vanilla",
"description": "Pale and unobtrusive",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\n"
},
"$:/core/readme": {
"title": "$:/core/readme",
"text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
},
"$:/library/sjcl.js/license": {
"title": "$:/library/sjcl.js/license",
"type": "text/plain",
"text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
},
"$:/core/templates/MOTW.html": {
"title": "$:/core/templates/MOTW.html",
"text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com --> "
},
"$:/core/templates/alltiddlers.template.html": {
"title": "$:/core/templates/alltiddlers.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
},
"$:/core/templates/canonical-uri-external-image": {
"title": "$:/core/templates/canonical-uri-external-image",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-raw": {
"title": "$:/core/templates/canonical-uri-external-raw",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-text": {
"title": "$:/core/templates/canonical-uri-external-text",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
},
"$:/core/templates/css-tiddler": {
"title": "$:/core/templates/css-tiddler",
"text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
},
"$:/core/templates/exporters/CsvFile": {
"title": "$:/core/templates/exporters/CsvFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/CsvFile}}",
"extension": ".csv",
"text": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n"
},
"$:/core/templates/exporters/JsonFile": {
"title": "$:/core/templates/exporters/JsonFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/JsonFile}}",
"extension": ".json",
"text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\n"
},
"$:/core/templates/exporters/StaticRiver": {
"title": "$:/core/templates/exporters/StaticRiver",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/StaticRiver}}",
"extension": ".html",
"text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
},
"$:/core/templates/exporters/StaticRiver/Content": {
"title": "$:/core/templates/exporters/StaticRiver/Content",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n"
},
"$:/core/templates/exporters/TidFile": {
"title": "$:/core/templates/exporters/TidFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/TidFile}}",
"extension": ".tid",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>"
},
"$:/core/save/all-external-js": {
"title": "$:/core/save/all-external-js",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n"
},
"$:/core/templates/tiddlywiki5.js": {
"title": "$:/core/templates/tiddlywiki5.js",
"text": "\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n"
},
"$:/core/templates/tiddlywiki5.js/tiddlers": {
"title": "$:/core/templates/tiddlywiki5.js/tiddlers",
"text": "`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n$tw.preloadTiddlerArray([{\n\ttitle: \"$:/config/SaveWikiButton/Template\",\n\ttext: \"$:/core/save/all-external-js\"\n}]);\n`\n"
},
"$:/core/templates/tiddlywiki5-external-js.html": {
"title": "$:/core/templates/tiddlywiki5-external-js.html",
"text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"
},
"$:/core/templates/html-div-skinny-tiddler": {
"title": "$:/core/templates/html-div-skinny-tiddler",
"text": "<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\n"
},
"$:/core/templates/html-div-tiddler": {
"title": "$:/core/templates/html-div-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
},
"$:/core/templates/html-tiddler": {
"title": "$:/core/templates/html-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
},
"$:/core/templates/javascript-tiddler": {
"title": "$:/core/templates/javascript-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
},
"$:/core/templates/json-tiddler": {
"title": "$:/core/templates/json-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
},
"$:/core/templates/module-tiddler": {
"title": "$:/core/templates/module-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
},
"$:/core/templates/plain-text-tiddler": {
"title": "$:/core/templates/plain-text-tiddler",
"text": "<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/raw-static-tiddler": {
"title": "$:/core/templates/raw-static-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
},
"$:/core/save/all": {
"title": "$:/core/save/all",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/empty": {
"title": "$:/core/save/empty",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-all": {
"title": "$:/core/save/lazy-all",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-images": {
"title": "$:/core/save/lazy-images",
"text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[is[image]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/templates/server/static.sidebar.wikitext": {
"title": "$:/core/templates/server/static.sidebar.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n"
},
"$:/core/templates/server/static.tiddler.html": {
"title": "$:/core/templates/server/static.tiddler.html",
"text": "\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>"
},
"$:/core/templates/server/static.tiddler.wikitext": {
"title": "$:/core/templates/server/static.tiddler.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n"
},
"$:/core/templates/single.tiddler.window": {
"title": "$:/core/templates/single.tiddler.window",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/templates/split-recipe": {
"title": "$:/core/templates/split-recipe",
"text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
},
"$:/core/templates/static-tiddler": {
"title": "$:/core/templates/static-tiddler",
"text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
},
"$:/core/templates/static.area": {
"title": "$:/core/templates/static.area",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\n"
},
"$:/core/templates/static.content": {
"title": "$:/core/templates/static.content",
"text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
},
"$:/core/templates/static.template.css": {
"title": "$:/core/templates/static.template.css",
"text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
},
"$:/core/templates/static.template.html": {
"title": "$:/core/templates/static.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
},
"$:/core/templates/static.tiddler.html": {
"title": "$:/core/templates/static.tiddler.html",
"text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\n</section>\n</body>\n</html>\n`"
},
"$:/core/templates/store.area.template.html": {
"title": "$:/core/templates/store.area.template.html",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
},
"$:/core/templates/tid-tiddler": {
"title": "$:/core/templates/tid-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/tiddler-metadata": {
"title": "$:/core/templates/tiddler-metadata",
"text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
},
"$:/core/templates/tiddlywiki5.html": {
"title": "$:/core/templates/tiddlywiki5.html",
"text": "<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n`{{{ [<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}`\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"`{{$:/core/copyright.txt}}`\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>`{{$:/core/wiki/title}}`</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}`\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n`{{$:/core/templates/static.area}}`\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n`{{$:/core/templates/store.area.template.html}}`\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}`\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n`{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n`{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`\n</body>\n</html>`\n"
},
"$:/core/templates/version": {
"title": "$:/core/templates/version",
"text": "<<version>>"
},
"$:/core/templates/wikified-tiddler": {
"title": "$:/core/templates/wikified-tiddler",
"text": "<$transclude />"
},
"$:/core/ui/AboveStory/tw2-plugin-check": {
"title": "$:/core/ui/AboveStory/tw2-plugin-check",
"tags": "$:/tags/AboveStory",
"text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/Actions/new-image": {
"title": "$:/core/ui/Actions/new-image",
"tags": "$:/tags/Actions",
"description": "create a new image tiddler",
"text": "\\define get-type()\nimage/$(imageType)$\n\\end\n<$vars imageType={{$:/config/NewImageType}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>> tags={{$:/config/NewTiddler/Tags!!tags}}/>\n</$vars>\n"
},
"$:/core/ui/Actions/new-journal": {
"title": "$:/core/ui/Actions/new-journal",
"tags": "$:/tags/Actions",
"description": "create a new journal tiddler",
"text": "<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} journalTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n"
},
"$:/core/ui/Actions/new-tiddler": {
"title": "$:/core/ui/Actions/new-tiddler",
"tags": "$:/tags/Actions",
"description": "create a new empty tiddler",
"text": "<$action-sendmessage $message=\"tm-new-tiddler\" tags={{$:/config/NewTiddler/Tags!!tags}}/>\n"
},
"$:/core/ui/AdvancedSearch/Filter": {
"title": "$:/core/ui/AdvancedSearch/Filter",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Filter/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Shadows": {
"title": "$:/core/ui/AdvancedSearch/Shadows",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Shadows/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Standard": {
"title": "$:/core/ui/AdvancedSearch/Standard",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Standard/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n</$list>\n</$set>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/System": {
"title": "$:/core/ui/AdvancedSearch/System",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/System/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/AdvancedSearch": {
"title": "$:/AdvancedSearch",
"icon": "$:/core/images/advanced-search-button",
"color": "#bbb",
"text": "<div class=\"tc-advanced-search\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\n</div>\n"
},
"$:/core/ui/AlertTemplate": {
"title": "$:/core/ui/AlertTemplate",
"text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
},
"$:/core/ui/BinaryWarning": {
"title": "$:/core/ui/BinaryWarning",
"text": "\\define lingo-base() $:/language/BinaryWarning/\n<<lingo Prompt>>\n"
},
"$:/core/ui/Components/plugin-info": {
"title": "$:/core/ui/Components/plugin-info",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$view field=\"description\"><$view field=\"title\"/></$view> $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
},
"$:/core/ui/Components/tag-link": {
"title": "$:/core/ui/Components/tag-link",
"text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
},
"$:/core/ui/ControlPanel/Advanced": {
"title": "$:/core/ui/ControlPanel/Advanced",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
"text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Appearance": {
"title": "$:/core/ui/ControlPanel/Appearance",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
"text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Basics": {
"title": "$:/core/ui/ControlPanel/Basics",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Basics/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewTiddler/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewJournal/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
},
"$:/core/ui/ControlPanel/EditorTypes": {
"title": "$:/core/ui/ControlPanel/EditorTypes",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/Info": {
"title": "$:/core/ui/ControlPanel/Info",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Info/Caption}}",
"text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/KeyboardShortcuts": {
"title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} focus=\"true\" style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>match[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/LoadedModules": {
"title": "$:/core/ui/ControlPanel/LoadedModules",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
},
"$:/core/ui/ControlPanel/Modals/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
"subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
"text": "\\define install-plugin-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[title]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[title]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$set>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n"
},
"$:/core/ui/ControlPanel/Palette": {
"title": "$:/core/ui/ControlPanel/Palette",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Palette/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/PaletteManager}}\n\n</$reveal>\n\n"
},
"$:/core/ui/ControlPanel/Parsing": {
"title": "$:/core/ui/ControlPanel/Parsing",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
},
"$:/core/ui/ControlPanel/Plugins/Add/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
"text": "<<display-server-assets language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
"text": "<<display-server-assets plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
"text": "<<display-server-assets theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Updates": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Updates",
"caption": "<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>",
"text": "\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"[[<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Plugins/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green tc-primary-btn\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
"text": "<<plugin-table language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
"text": "<<plugin-table plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
"text": "<<plugin-table theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[title]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n"
},
"$:/core/ui/ControlPanel/Saving/DownloadSaver": {
"title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Saving/General": {
"title": "$:/core/ui/ControlPanel/Saving/General",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
"list-before": "",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Saving/GitHub": {
"title": "$:/core/ui/ControlPanel/Saving/GitHub",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/GitLab": {
"title": "$:/core/ui/ControlPanel/Saving/GitLab",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/TiddlySpot": {
"title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<backupLink>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>"
},
"$:/core/ui/ControlPanel/Saving/Gitea": {
"title": "$:/core/ui/ControlPanel/Saving/Gitea",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"
},
"$:/core/ui/ControlPanel/Saving": {
"title": "$:/core/ui/ControlPanel/Saving",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Saving/Caption}}",
"text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Saving/General\">>\n</div>\n"
},
"$:/core/buttonstyles/Borderless": {
"title": "$:/core/buttonstyles/Borderless",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
"text": "tc-btn-invisible"
},
"$:/core/buttonstyles/Boxed": {
"title": "$:/core/buttonstyles/Boxed",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
"text": "tc-btn-boxed"
},
"$:/core/buttonstyles/Rounded": {
"title": "$:/core/buttonstyles/Rounded",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
"text": "tc-btn-rounded"
},
"$:/core/ui/ControlPanel/Settings/CamelCase": {
"title": "$:/core/ui/ControlPanel/Settings/CamelCase",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
"title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
"title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/MissingLinks": {
"title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationHistory": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
"title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/TitleLinks": {
"title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings": {
"title": "$:/core/ui/ControlPanel/Settings",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Settings/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ControlPanel/StoryView": {
"title": "$:/core/ui/ControlPanel/StoryView",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
"text": "{{$:/snippets/viewswitcher}}\n"
},
"$:/core/ui/ControlPanel/Stylesheets": {
"title": "$:/core/ui/ControlPanel/Stylesheets",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"
},
"$:/core/ui/ControlPanel/Theme": {
"title": "$:/core/ui/ControlPanel/Theme",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Theme/Caption}}",
"text": "{{$:/snippets/themeswitcher}}\n"
},
"$:/core/ui/ControlPanel/TiddlerFields": {
"title": "$:/core/ui/ControlPanel/TiddlerFields",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
},
"$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
},
"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/PageControls": {
"title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars": {
"title": "$:/core/ui/ControlPanel/Toolbars",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
"text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n"
},
"$:/ControlPanel": {
"title": "$:/ControlPanel",
"icon": "$:/core/images/options-button",
"color": "#bbb",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n"
},
"$:/core/ui/DefaultSearchResultList": {
"title": "$:/core/ui/DefaultSearchResultList",
"tags": "$:/tags/SearchResults",
"caption": "{{$:/language/Search/DefaultResults/Caption}}",
"text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-current": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-current",
"tags": "$:/tags/EditPreview",
"caption": "differences from current",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-shadow": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow",
"tags": "$:/tags/EditPreview",
"caption": "differences from shadow (if any)",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/output": {
"title": "$:/core/ui/EditTemplate/body/preview/output",
"tags": "$:/tags/EditPreview",
"caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
"text": "\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
},
"$:/state/showeditpreview": {
"title": "$:/state/showeditpreview",
"text": "no"
},
"$:/core/ui/EditTemplate/body/editor": {
"title": "$:/core/ui/EditTemplate/body/editor",
"text": "<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor tc-edit-texteditor-body\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n tabindex={{$:/config/EditTabIndex}}\n focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
},
"$:/core/ui/EditTemplate/body/toolbar/button": {
"title": "$:/core/ui/EditTemplate/body/toolbar/button",
"text": "\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
},
"$:/core/ui/EditTemplate/body": {
"title": "$:/core/ui/EditTemplate/body",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\" tabindex={{$:/config/EditTabIndex}}></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/EditTemplate/controls": {
"title": "$:/core/ui/EditTemplate/controls",
"tags": "$:/tags/EditTemplate",
"text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
},
"$:/core/ui/EditTemplate/fields": {
"title": "$:/core/ui/EditTemplate/fields",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\\whitespace trim\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\" storyview=\"pop\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>> \n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=<<newFieldNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}}/>\n</span> \n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> \n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}}/>\n</$keyboard>\n</$set>\n</span> \n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n"
},
"$:/core/ui/EditTemplate/shadow": {
"title": "$:/core/ui/EditTemplate/shadow",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
},
"$:/core/ui/EditTemplate/tags": {
"title": "$:/core/ui/EditTemplate/tags",
"tags": "$:/tags/EditTemplate",
"text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon)\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\"/>\n\\end\n\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>\n</$list>\n<$set name=\"tabIndex\" value={{$:/config/EditTabIndex}}>\n<$macrocall $name=\"tag-picker\"/>\n</$set>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}}/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/EditTemplate/type": {
"title": "$:/core/ui/EditTemplate/type",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\whitespace trim\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}}/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</$set>\n</div>\n"
},
"$:/core/ui/EditTemplate": {
"title": "$:/core/ui/EditTemplate",
"text": "\\define save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$vars>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/Buttons/cancel": {
"title": "$:/core/ui/Buttons/cancel",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
"description": "{{$:/language/Buttons/Cancel/Hint}}",
"text": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/delete": {
"title": "$:/core/ui/Buttons/delete",
"tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
"caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
"description": "{{$:/language/Buttons/Delete/Hint}}",
"text": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save": {
"title": "$:/core/ui/Buttons/save",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
"description": "{{$:/language/Buttons/Save/Hint}}",
"text": "\\define save-tiddler-button()\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\n"
},
"$:/core/ui/EditorToolbar/bold": {
"title": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}}",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
},
"$:/core/ui/EditorToolbar/clear-dropdown": {
"title": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
},
"$:/core/ui/EditorToolbar/clear": {
"title": "$:/core/ui/EditorToolbar/clear",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/erase",
"caption": "{{$:/language/Buttons/Clear/Caption}}",
"description": "{{$:/language/Buttons/Clear/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/editor-height-dropdown": {
"title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
},
"$:/core/ui/EditorToolbar/editor-height": {
"title": "$:/core/ui/EditorToolbar/editor-height",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/fixed-height",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
"description": "{{$:/language/Buttons/EditorHeight/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/excise-dropdown": {
"title": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
},
"$:/core/ui/EditorToolbar/excise": {
"title": "$:/core/ui/EditorToolbar/excise",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/excise",
"caption": "{{$:/language/Buttons/Excise/Caption}}",
"description": "{{$:/language/Buttons/Excise/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]",
"shortcuts": "((excise))",
"dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/heading-1": {
"title": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}}",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((heading-1))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-2": {
"title": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}}",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-2))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-3": {
"title": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}}",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-3))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}}",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-4))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}}",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-5))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}}",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-6))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
},
"$:/core/ui/EditorToolbar/italic": {
"title": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}}",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
},
"$:/core/ui/EditorToolbar/line-width-dropdown": {
"title": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/line-width": {
"title": "$:/core/ui/EditorToolbar/line-width",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/line-width",
"caption": "{{$:/language/Buttons/LineWidth/Caption}}",
"description": "{{$:/language/Buttons/LineWidth/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>"
},
"$:/core/ui/EditorToolbar/link-dropdown": {
"title": "$:/core/ui/EditorToolbar/link-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $tiddler=<<dropdown-state>> />\n<$action-deletetiddler $tiddler=<<searchTiddler>> />\n<$action-deletetiddler $tiddler=<<linkTiddler>> />\n\\end\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" >\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"ENTER\" actions=<<add-link-actions>>>\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$keyboard>\n</$vars>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>"
},
"$:/core/ui/EditorToolbar/link": {
"title": "$:/core/ui/EditorToolbar/link",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/link",
"caption": "{{$:/language/Buttons/Link/Caption}}",
"description": "{{$:/language/Buttons/Link/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((link))",
"dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/linkify": {
"title": "$:/core/ui/EditorToolbar/linkify",
"caption": "{{$:/language/Buttons/Linkify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Linkify/Hint}}",
"icon": "$:/core/images/linkify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((linkify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-bullet": {
"title": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}}",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-bullet))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-number": {
"title": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}}",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-block": {
"title": "$:/core/ui/EditorToolbar/mono-block",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-block",
"caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
"description": "{{$:/language/Buttons/MonoBlock/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((mono-block))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-line": {
"title": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}}",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/core/ui/EditorToolbar/more-dropdown": {
"title": "$:/core/ui/EditorToolbar/more-dropdown",
"text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
},
"$:/core/ui/EditorToolbar/more": {
"title": "$:/core/ui/EditorToolbar/more",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/down-arrow",
"caption": "{{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"condition": "[<targetTiddler>]",
"dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/opacity-dropdown": {
"title": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/EditorToolbar/opacity": {
"title": "$:/core/ui/EditorToolbar/opacity",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/opacity",
"caption": "{{$:/language/Buttons/Opacity/Caption}}",
"description": "{{$:/language/Buttons/Opacity/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
},
"$:/core/ui/EditorToolbar/paint-dropdown": {
"title": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/paint": {
"title": "$:/core/ui/EditorToolbar/paint",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/paint",
"caption": "{{$:/language/Buttons/Paint/Caption}}",
"description": "{{$:/language/Buttons/Paint/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
},
"$:/core/ui/EditorToolbar/picture-dropdown": {
"title": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/picture": {
"title": "$:/core/ui/EditorToolbar/picture",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/picture",
"caption": "{{$:/language/Buttons/Picture/Caption}}",
"description": "{{$:/language/Buttons/Picture/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((picture))",
"dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/preview-type-dropdown": {
"title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
"text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/preview-type": {
"title": "$:/core/ui/EditorToolbar/preview-type",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/chevron-down",
"caption": "{{$:/language/Buttons/PreviewType/Caption}}",
"description": "{{$:/language/Buttons/PreviewType/Hint}}",
"condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
"button-classes": "tc-text-editor-toolbar-item-adjunct",
"dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
},
"$:/core/ui/EditorToolbar/preview": {
"title": "$:/core/ui/EditorToolbar/preview",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/preview-open",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/Preview/Caption}}",
"description": "{{$:/language/Buttons/Preview/Hint}}",
"condition": "[<targetTiddler>]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((preview))",
"text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/quote": {
"title": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}}",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
},
"$:/core/ui/EditorToolbar/rotate-left": {
"title": "$:/core/ui/EditorToolbar/rotate-left",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/rotate-left",
"caption": "{{$:/language/Buttons/RotateLeft/Caption}}",
"description": "{{$:/language/Buttons/RotateLeft/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"
},
"$:/core/ui/EditorToolbar/size-dropdown": {
"title": "$:/core/ui/EditorToolbar/size-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
},
"$:/core/ui/EditorToolbar/size": {
"title": "$:/core/ui/EditorToolbar/size",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/size",
"caption": "{{$:/language/Buttons/Size/Caption}}",
"description": "{{$:/language/Buttons/Size/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/stamp-dropdown": {
"title": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
},
"$:/core/ui/EditorToolbar/stamp": {
"title": "$:/core/ui/EditorToolbar/stamp",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/stamp",
"caption": "{{$:/language/Buttons/Stamp/Caption}}",
"description": "{{$:/language/Buttons/Stamp/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"shortcuts": "((stamp))",
"dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/strikethrough": {
"title": "$:/core/ui/EditorToolbar/strikethrough",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/strikethrough",
"caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
"description": "{{$:/language/Buttons/Strikethrough/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((strikethrough))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
},
"$:/core/ui/EditorToolbar/subscript": {
"title": "$:/core/ui/EditorToolbar/subscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/subscript",
"caption": "{{$:/language/Buttons/Subscript/Caption}}",
"description": "{{$:/language/Buttons/Subscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((subscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
},
"$:/core/ui/EditorToolbar/superscript": {
"title": "$:/core/ui/EditorToolbar/superscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/superscript",
"caption": "{{$:/language/Buttons/Superscript/Caption}}",
"description": "{{$:/language/Buttons/Superscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((superscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
},
"$:/core/ui/EditorToolbar/transcludify": {
"title": "$:/core/ui/EditorToolbar/transcludify",
"caption": "{{$:/language/Buttons/Transcludify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Transcludify/Hint}}",
"icon": "$:/core/images/transcludify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((transcludify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"
},
"$:/core/ui/EditorToolbar/underline": {
"title": "$:/core/ui/EditorToolbar/underline",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/underline",
"caption": "{{$:/language/Buttons/Underline/Caption}}",
"description": "{{$:/language/Buttons/Underline/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((underline))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
},
"$:/core/Filters/AllTags": {
"title": "$:/core/Filters/AllTags",
"tags": "$:/tags/Filter",
"filter": "[tags[]!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTags}}",
"text": ""
},
"$:/core/Filters/AllTiddlers": {
"title": "$:/core/Filters/AllTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTiddlers}}",
"text": ""
},
"$:/core/Filters/Drafts": {
"title": "$:/core/Filters/Drafts",
"tags": "$:/tags/Filter",
"filter": "[has[draft.of]sort[title]]",
"description": "{{$:/language/Filters/Drafts}}",
"text": ""
},
"$:/core/Filters/Missing": {
"title": "$:/core/Filters/Missing",
"tags": "$:/tags/Filter",
"filter": "[all[missing]sort[title]]",
"description": "{{$:/language/Filters/Missing}}",
"text": ""
},
"$:/core/Filters/Orphans": {
"title": "$:/core/Filters/Orphans",
"tags": "$:/tags/Filter",
"filter": "[all[orphans]sort[title]]",
"description": "{{$:/language/Filters/Orphans}}",
"text": ""
},
"$:/core/Filters/OverriddenShadowTiddlers": {
"title": "$:/core/Filters/OverriddenShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[shadow]]",
"description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentSystemTiddlers": {
"title": "$:/core/Filters/RecentSystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentSystemTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentTiddlers": {
"title": "$:/core/Filters/RecentTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentTiddlers}}",
"text": ""
},
"$:/core/Filters/SessionTiddlers": {
"title": "$:/core/Filters/SessionTiddlers",
"tags": "$:/tags/Filter",
"filter": "[haschanged[]]",
"description": "{{$:/language/Filters/SessionTiddlers}}",
"text": ""
},
"$:/core/Filters/ShadowTiddlers": {
"title": "$:/core/Filters/ShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[all[shadows]sort[title]]",
"description": "{{$:/language/Filters/ShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/StoryList": {
"title": "$:/core/Filters/StoryList",
"tags": "$:/tags/Filter",
"filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
"description": "{{$:/language/Filters/StoryList}}",
"text": ""
},
"$:/core/Filters/SystemTags": {
"title": "$:/core/Filters/SystemTags",
"tags": "$:/tags/Filter",
"filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTags}}",
"text": ""
},
"$:/core/Filters/SystemTiddlers": {
"title": "$:/core/Filters/SystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTiddlers}}",
"text": ""
},
"$:/core/Filters/TypedTiddlers": {
"title": "$:/core/Filters/TypedTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Filters/TypedTiddlers}}",
"text": ""
},
"$:/core/ui/ImportListing": {
"title": "$:/core/ui/ImportListing",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table>\n<tbody>\n<tr>\n<th>\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" stateTitle=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Diff": {
"title": "$:/core/ui/ImportPreviews/Diff",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Diff}}",
"text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"
},
"$:/core/ui/ImportPreviews/DiffFields": {
"title": "$:/core/ui/ImportPreviews/DiffFields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/DiffFields}}",
"text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"
},
"$:/core/ui/ImportPreviews/Fields": {
"title": "$:/core/ui/ImportPreviews/Fields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Fields}}",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Text": {
"title": "$:/core/ui/ImportPreviews/Text",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Text}}",
"text": "<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n"
},
"$:/core/ui/ImportPreviews/TextRaw": {
"title": "$:/core/ui/ImportPreviews/TextRaw",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/TextRaw}}",
"text": "<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>"
},
"$:/core/ui/KeyboardShortcuts/advanced-search": {
"title": "$:/core/ui/KeyboardShortcuts/advanced-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((advanced-search))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\"/>\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-image": {
"title": "$:/core/ui/KeyboardShortcuts/new-image",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-image))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-journal": {
"title": "$:/core/ui/KeyboardShortcuts/new-journal",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-journal))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-tiddler": {
"title": "$:/core/ui/KeyboardShortcuts/new-tiddler",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-tiddler))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/sidebar-search": {
"title": "$:/core/ui/KeyboardShortcuts/sidebar-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((sidebar-search))",
"text": "<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"
},
"$:/core/ui/KeyboardShortcut/toggle-sidebar": {
"title": "$:/core/ui/KeyboardShortcut/toggle-sidebar",
"tags": "$:/tags/KeyboardShortcut",
"key": "((toggle-sidebar))",
"text": "<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"
},
"$:/core/ui/ListItemTemplate": {
"title": "$:/core/ui/ListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link />\n</div>"
},
"$:/Manager/ItemMain/Fields": {
"title": "$:/Manager/ItemMain/Fields",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/Fields}}",
"text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/Manager/ItemMain/RawText": {
"title": "$:/Manager/ItemMain/RawText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/RawText}}",
"text": "<pre><code><$view/></code></pre>\n"
},
"$:/Manager/ItemMain/WikifiedText": {
"title": "$:/Manager/ItemMain/WikifiedText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/WikifiedText}}",
"text": "<$transclude mode=\"block\"/>\n"
},
"$:/Manager/ItemSidebar/Colour": {
"title": "$:/Manager/ItemSidebar/Colour",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Colour}}",
"text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Icon": {
"title": "$:/Manager/ItemSidebar/Icon",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Icon}}",
"text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tags": {
"title": "$:/Manager/ItemSidebar/Tags",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tags}}",
"text": "\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tools": {
"title": "$:/Manager/ItemSidebar/Tools",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tools}}",
"text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
},
"$:/Manager": {
"title": "$:/Manager",
"icon": "$:/core/images/list",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
},
"$:/core/ui/MissingTemplate": {
"title": "$:/core/ui/MissingTemplate",
"text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
},
"$:/core/ui/MoreSideBar/All": {
"title": "$:/core/ui/MoreSideBar/All",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/All/Caption}}",
"text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Drafts": {
"title": "$:/core/ui/MoreSideBar/Drafts",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Drafts/Caption}}",
"text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Explorer": {
"title": "$:/core/ui/MoreSideBar/Explorer",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Explorer/Caption}}",
"text": "<<tree \"$:/\">>\n"
},
"$:/core/ui/MoreSideBar/Missing": {
"title": "$:/core/ui/MoreSideBar/Missing",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Missing/Caption}}",
"text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Orphans": {
"title": "$:/core/ui/MoreSideBar/Orphans",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Orphans/Caption}}",
"text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Plugins/Plugins\">>\n"
},
"$:/core/ui/MoreSideBar/Recent": {
"title": "$:/core/ui/MoreSideBar/Recent",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/MoreSideBar/Shadows": {
"title": "$:/core/ui/MoreSideBar/Shadows",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Shadows/Caption}}",
"text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/System": {
"title": "$:/core/ui/MoreSideBar/System",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/System/Caption}}",
"text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Tags": {
"title": "$:/core/ui/MoreSideBar/Tags",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Tags/Caption}}",
"text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
},
"$:/core/ui/MoreSideBar/Types": {
"title": "$:/core/ui/MoreSideBar/Types",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Types/Caption}}",
"text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Languages": {
"title": "$:/core/ui/MoreSideBar/Plugins/Languages",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Theme": {
"title": "$:/core/ui/MoreSideBar/Plugins/Theme",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/Buttons/advanced-search": {
"title": "$:/core/ui/Buttons/advanced-search",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
"description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/close-all": {
"title": "$:/core/ui/Buttons/close-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
"description": "{{$:/language/Buttons/CloseAll/Hint}}",
"text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/control-panel": {
"title": "$:/core/ui/Buttons/control-panel",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
"description": "{{$:/language/Buttons/ControlPanel/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/encryption": {
"title": "$:/core/ui/Buttons/encryption",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
"description": "{{$:/language/Buttons/Encryption/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/export-page": {
"title": "$:/core/ui/Buttons/export-page",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
"description": "{{$:/language/Buttons/ExportPage/Hint}}",
"text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
},
"$:/core/ui/Buttons/fold-all": {
"title": "$:/core/ui/Buttons/fold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
"description": "{{$:/language/Buttons/FoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/full-screen": {
"title": "$:/core/ui/Buttons/full-screen",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
"description": "{{$:/language/Buttons/FullScreen/Hint}}",
"text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/home": {
"title": "$:/core/ui/Buttons/home",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
"description": "{{$:/language/Buttons/Home/Hint}}",
"text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/import": {
"title": "$:/core/ui/Buttons/import",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
"description": "{{$:/language/Buttons/Import/Hint}}",
"text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
},
"$:/core/ui/Buttons/language": {
"title": "$:/core/ui/Buttons/language",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
"description": "{{$:/language/Buttons/Language/Hint}}",
"text": "\\whitespace trim\n\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/manager": {
"title": "$:/core/ui/Buttons/manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
"description": "{{$:/language/Buttons/Manager/Hint}}",
"text": "\\whitespace trim\n\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/more-page-actions": {
"title": "$:/core/ui/Buttons/more-page-actions",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-image": {
"title": "$:/core/ui/Buttons/new-image",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
"description": "{{$:/language/Buttons/NewImage/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/new-journal": {
"title": "$:/core/ui/Buttons/new-journal",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
"description": "{{$:/language/Buttons/NewJournal/Hint}}",
"text": "\\whitespace trim\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n"
},
"$:/core/ui/Buttons/new-tiddler": {
"title": "$:/core/ui/Buttons/new-tiddler",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
"description": "{{$:/language/Buttons/NewTiddler/Hint}}",
"text": "\\whitespace trim\n<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/palette": {
"title": "$:/core/ui/Buttons/palette",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
"description": "{{$:/language/Buttons/Palette/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/print": {
"title": "$:/core/ui/Buttons/print",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
"description": "{{$:/language/Buttons/Print/Hint}}",
"text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/refresh": {
"title": "$:/core/ui/Buttons/refresh",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
"description": "{{$:/language/Buttons/Refresh/Hint}}",
"text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save-wiki": {
"title": "$:/core/ui/Buttons/save-wiki",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
"description": "{{$:/language/Buttons/SaveWiki/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
},
"$:/core/ui/Buttons/storyview": {
"title": "$:/core/ui/Buttons/storyview",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
"description": "{{$:/language/Buttons/StoryView/Hint}}",
"text": "\\whitespace trim\n\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/tag-manager": {
"title": "$:/core/ui/Buttons/tag-manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
"description": "{{$:/language/Buttons/TagManager/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/theme": {
"title": "$:/core/ui/Buttons/theme",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
"description": "{{$:/language/Buttons/Theme/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/timestamp": {
"title": "$:/core/ui/Buttons/timestamp",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
"description": "{{$:/language/Buttons/Timestamp/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/unfold-all": {
"title": "$:/core/ui/Buttons/unfold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
"description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/PageTemplate/pagecontrols": {
"title": "$:/core/ui/PageTemplate/pagecontrols",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$list>\n</$set>\n</$list>\n</div>\n"
},
"$:/core/ui/PageStylesheet": {
"title": "$:/core/ui/PageStylesheet",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/PageTemplate/alerts": {
"title": "$:/core/ui/PageTemplate/alerts",
"tags": "$:/tags/PageTemplate",
"text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
},
"$:/core/ui/PageTemplate/drafts": {
"title": "$:/core/ui/PageTemplate/drafts",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/PageTemplate/pluginreloadwarning": {
"title": "$:/core/ui/PageTemplate/pluginreloadwarning",
"tags": "$:/tags/PageTemplate",
"text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/PageTemplate/sidebar": {
"title": "$:/core/ui/PageTemplate/sidebar",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\" tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>\n"
},
"$:/core/ui/PageTemplate/story": {
"title": "$:/core/ui/PageTemplate/story",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
},
"$:/core/ui/PageTemplate/topleftbar": {
"title": "$:/core/ui/PageTemplate/topleftbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate/toprightbar": {
"title": "$:/core/ui/PageTemplate/toprightbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate": {
"title": "$:/core/ui/PageTemplate",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"tv-enable-drag-and-drop\" value={{$:/config/DragAndDrop/Enable}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone enable=<<tv-enable-drag-and-drop>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/PaletteManager": {
"title": "$:/PaletteManager",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip=<<lingo Delete/Hint>> aria-label=<<lingo Delete/Hint>> class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"> <<lingo Names/External/Show>></$checkbox>\n\n<<palette-manager-table>>\n"
},
"$:/core/ui/PluginInfo": {
"title": "$:/core/ui/PluginInfo",
"text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
},
"$:/core/ui/PluginInfo/Default/contents": {
"title": "$:/core/ui/PluginInfo/Default/contents",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link />\n</li>\n</$list>\n</ul>\n"
},
"$:/core/ui/PluginListItemTemplate": {
"title": "$:/core/ui/PluginListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}><$view field=\"description\"><$view field=\"title\"/></$view></$link>\n</div>"
},
"$:/core/ui/SearchResults": {
"title": "$:/core/ui/SearchResults",
"text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n\n</$list>\n\n</div>\n"
},
"$:/core/ui/SideBar/More": {
"title": "$:/core/ui/SideBar/More",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/More/Caption}}",
"text": "<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical tc-sidebar-tabs-more\" />\n</div>"
},
"$:/core/ui/SideBar/Open": {
"title": "$:/core/ui/SideBar/Open",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Open/Caption}}",
"text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">{{$:/core/images/close-button}}</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n"
},
"$:/core/ui/SideBar/Recent": {
"title": "$:/core/ui/SideBar/Recent",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/SideBar/Tools": {
"title": "$:/core/ui/SideBar/Tools",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/SideBarLists": {
"title": "$:/core/ui/SideBarLists",
"text": "<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n"
},
"$:/core/ui/SideBarSegments/page-controls": {
"title": "$:/core/ui/SideBarSegments/page-controls",
"tags": "$:/tags/SideBarSegment",
"text": "{{||$:/core/ui/PageTemplate/pagecontrols}}\n"
},
"$:/core/ui/SideBarSegments/search": {
"title": "$:/core/ui/SideBarSegments/search",
"tags": "$:/tags/SideBarSegment",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"searchTerm\" value={{{ [<searchTiddler>get[text]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search<searchTerm>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$set>\n</$list>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n{{$:/core/ui/SearchResults}}\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-subtitle": {
"title": "$:/core/ui/SideBarSegments/site-subtitle",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-title": {
"title": "$:/core/ui/SideBarSegments/site-title",
"tags": "$:/tags/SideBarSegment",
"text": "<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n"
},
"$:/core/ui/SideBarSegments/tabs": {
"title": "$:/core/ui/SideBarSegments/tabs",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-sidebar-lists tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\"/>\n\n</div>\n"
},
"$:/TagManager": {
"title": "$:/TagManager",
"icon": "$:/core/images/tag-button",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n\\whitespace trim\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
},
"$:/core/ui/TagTemplate": {
"title": "$:/core/ui/TagTemplate",
"text": "\\whitespace trim\n<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
},
"$:/core/ui/TiddlerFieldTemplate": {
"title": "$:/core/ui/TiddlerFieldTemplate",
"text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
},
"$:/core/ui/TiddlerFields": {
"title": "$:/core/ui/TiddlerFields",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
},
"$:/core/ui/TiddlerInfo/Advanced": {
"title": "$:/core/ui/TiddlerInfo/Advanced",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
"text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Fields": {
"title": "$:/core/ui/TiddlerInfo/Fields",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
"text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
},
"$:/core/ui/TiddlerInfo/List": {
"title": "$:/core/ui/TiddlerInfo/List",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/List/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Listed": {
"title": "$:/core/ui/TiddlerInfo/Listed",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/References": {
"title": "$:/core/ui/TiddlerInfo/References",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/References/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>"
},
"$:/core/ui/TiddlerInfo/Tagging": {
"title": "$:/core/ui/TiddlerInfo/Tagging",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Tools": {
"title": "$:/core/ui/TiddlerInfo/Tools",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/TiddlerInfo": {
"title": "$:/core/ui/TiddlerInfo",
"text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>"
},
"$:/core/ui/TopBar/menu": {
"title": "$:/core/ui/TopBar/menu",
"tags": "$:/tags/TopRightBar",
"text": "<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$list>\n"
},
"$:/core/ui/UntaggedTemplate": {
"title": "$:/core/ui/UntaggedTemplate",
"text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/body": {
"title": "$:/core/ui/ViewTemplate/body",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/classic": {
"title": "$:/core/ui/ViewTemplate/classic",
"tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/import": {
"title": "$:/core/ui/ViewTemplate/import",
"tags": "$:/tags/ViewTemplate",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ViewTemplate/plugin": {
"title": "$:/core/ui/ViewTemplate/plugin",
"tags": "$:/tags/ViewTemplate",
"text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/subtitle": {
"title": "$:/core/ui/ViewTemplate/subtitle",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}} />\n<$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/tags": {
"title": "$:/core/ui/ViewTemplate/tags",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/title": {
"title": "$:/core/ui/ViewTemplate/title",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>"
},
"$:/core/ui/ViewTemplate/unfold": {
"title": "$:/core/ui/ViewTemplate/unfold",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate": {
"title": "$:/core/ui/ViewTemplate",
"text": "\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$vars>\n"
},
"$:/core/ui/Buttons/clone": {
"title": "$:/core/ui/Buttons/clone",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
"description": "{{$:/language/Buttons/Clone/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close-others": {
"title": "$:/core/ui/Buttons/close-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
"description": "{{$:/language/Buttons/CloseOthers/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close": {
"title": "$:/core/ui/Buttons/close",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
"description": "{{$:/language/Buttons/Close/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/edit": {
"title": "$:/core/ui/Buttons/edit",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
"description": "{{$:/language/Buttons/Edit/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/export-tiddler": {
"title": "$:/core/ui/Buttons/export-tiddler",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
"description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
"text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
},
"$:/core/ui/Buttons/fold-bar": {
"title": "$:/core/ui/Buttons/fold-bar",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
"description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
"text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
},
"$:/core/ui/Buttons/fold-others": {
"title": "$:/core/ui/Buttons/fold-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
"description": "{{$:/language/Buttons/FoldOthers/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/fold": {
"title": "$:/core/ui/Buttons/fold",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
"description": "{{$:/language/Buttons/Fold/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/info": {
"title": "$:/core/ui/Buttons/info",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
"description": "{{$:/language/Buttons/Info/Hint}}",
"text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
},
"$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/core/ui/Buttons/more-tiddler-actions",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-here": {
"title": "$:/core/ui/Buttons/new-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
"description": "{{$:/language/Buttons/NewHere/Hint}}",
"text": "\\whitespace trim\n\\define newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags!!tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"
},
"$:/core/ui/Buttons/new-journal-here": {
"title": "$:/core/ui/Buttons/new-journal-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
"description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
"text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags!!tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"
},
"$:/core/ui/Buttons/open-window": {
"title": "$:/core/ui/Buttons/open-window",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
"description": "{{$:/language/Buttons/OpenWindow/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permalink": {
"title": "$:/core/ui/Buttons/permalink",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
"description": "{{$:/language/Buttons/Permalink/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permaview": {
"title": "$:/core/ui/Buttons/permaview",
"tags": "$:/tags/ViewToolbar $:/tags/PageControls",
"caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
"description": "{{$:/language/Buttons/Permaview/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/DefaultTiddlers": {
"title": "$:/DefaultTiddlers",
"text": "GettingStarted\n"
},
"$:/temp/advancedsearch": {
"title": "$:/temp/advancedsearch",
"text": ""
},
"$:/snippets/allfields": {
"title": "$:/snippets/allfields",
"text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
},
"$:/config/AnimationDuration": {
"title": "$:/config/AnimationDuration",
"text": "400"
},
"$:/config/AutoFocus": {
"title": "$:/config/AutoFocus",
"text": "title"
},
"$:/config/AutoSave": {
"title": "$:/config/AutoSave",
"text": "yes"
},
"$:/config/BitmapEditor/Colour": {
"title": "$:/config/BitmapEditor/Colour",
"text": "#444"
},
"$:/config/BitmapEditor/ImageSizes": {
"title": "$:/config/BitmapEditor/ImageSizes",
"text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
},
"$:/config/BitmapEditor/LineWidth": {
"title": "$:/config/BitmapEditor/LineWidth",
"text": "3px"
},
"$:/config/BitmapEditor/LineWidths": {
"title": "$:/config/BitmapEditor/LineWidths",
"text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
},
"$:/config/BitmapEditor/Opacities": {
"title": "$:/config/BitmapEditor/Opacities",
"text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
},
"$:/config/BitmapEditor/Opacity": {
"title": "$:/config/BitmapEditor/Opacity",
"text": "1.0"
},
"$:/config/DefaultMoreSidebarTab": {
"title": "$:/config/DefaultMoreSidebarTab",
"text": "$:/core/ui/MoreSideBar/Tags"
},
"$:/config/DefaultSidebarTab": {
"title": "$:/config/DefaultSidebarTab",
"text": "$:/core/ui/SideBar/Open"
},
"$:/config/DownloadSaver/AutoSave": {
"title": "$:/config/DownloadSaver/AutoSave",
"text": "no"
},
"$:/config/Drafts/TypingTimeout": {
"title": "$:/config/Drafts/TypingTimeout",
"text": "400"
},
"$:/config/EditTemplateFields/Visibility/title": {
"title": "$:/config/EditTemplateFields/Visibility/title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/tags": {
"title": "$:/config/EditTemplateFields/Visibility/tags",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/text": {
"title": "$:/config/EditTemplateFields/Visibility/text",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/creator": {
"title": "$:/config/EditTemplateFields/Visibility/creator",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/created": {
"title": "$:/config/EditTemplateFields/Visibility/created",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modified": {
"title": "$:/config/EditTemplateFields/Visibility/modified",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modifier": {
"title": "$:/config/EditTemplateFields/Visibility/modifier",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/type": {
"title": "$:/config/EditTemplateFields/Visibility/type",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.title": {
"title": "$:/config/EditTemplateFields/Visibility/draft.title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.of": {
"title": "$:/config/EditTemplateFields/Visibility/draft.of",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/revision": {
"title": "$:/config/EditTemplateFields/Visibility/revision",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/bag": {
"title": "$:/config/EditTemplateFields/Visibility/bag",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
"text": "hide"
},
"$:/config/EditorTypeMappings/image/gif": {
"title": "$:/config/EditorTypeMappings/image/gif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/webp": {
"title": "$:/config/EditorTypeMappings/image/webp",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heic": {
"title": "$:/config/EditorTypeMappings/image/heic",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heif": {
"title": "$:/config/EditorTypeMappings/image/heif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpeg": {
"title": "$:/config/EditorTypeMappings/image/jpeg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpg": {
"title": "$:/config/EditorTypeMappings/image/jpg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/png": {
"title": "$:/config/EditorTypeMappings/image/png",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/x-icon": {
"title": "$:/config/EditorTypeMappings/image/x-icon",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
"text": "text"
},
"$:/config/Manager/Show": {
"title": "$:/config/Manager/Show",
"text": "tiddlers"
},
"$:/config/Manager/Filter": {
"title": "$:/config/Manager/Filter",
"text": ""
},
"$:/config/Manager/Order": {
"title": "$:/config/Manager/Order",
"text": "forward"
},
"$:/config/Manager/Sort": {
"title": "$:/config/Manager/Sort",
"text": "title"
},
"$:/config/Manager/System": {
"title": "$:/config/Manager/System",
"text": "system"
},
"$:/config/Manager/Tag": {
"title": "$:/config/Manager/Tag",
"text": ""
},
"$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
"title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
"text": "hide"
},
"$:/config/MissingLinks": {
"title": "$:/config/MissingLinks",
"text": "yes"
},
"$:/config/Navigation/UpdateAddressBar": {
"title": "$:/config/Navigation/UpdateAddressBar",
"text": "no"
},
"$:/config/Navigation/UpdateHistory": {
"title": "$:/config/Navigation/UpdateHistory",
"text": "no"
},
"$:/config/NewImageType": {
"title": "$:/config/NewImageType",
"text": "jpeg"
},
"$:/config/OfficialPluginLibrary": {
"title": "$:/config/OfficialPluginLibrary",
"tags": "$:/tags/PluginLibrary",
"url": "https://tiddlywiki.com/library/v5.1.22/index.html",
"caption": "{{$:/language/OfficialPluginLibrary}}",
"text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
},
"$:/config/Navigation/openLinkFromInsideRiver": {
"title": "$:/config/Navigation/openLinkFromInsideRiver",
"text": "below"
},
"$:/config/Navigation/openLinkFromOutsideRiver": {
"title": "$:/config/Navigation/openLinkFromOutsideRiver",
"text": "top"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
"text": "hide"
},
"$:/config/Performance/Instrumentation": {
"title": "$:/config/Performance/Instrumentation",
"text": "no"
},
"$:/config/RegisterPluginType/plugin": {
"title": "$:/config/RegisterPluginType/plugin",
"text": "yes"
},
"$:/config/RegisterPluginType/theme": {
"title": "$:/config/RegisterPluginType/theme",
"text": "no"
},
"$:/config/RegisterPluginType/language": {
"title": "$:/config/RegisterPluginType/language",
"text": "no"
},
"$:/config/RegisterPluginType/info": {
"title": "$:/config/RegisterPluginType/info",
"text": "no"
},
"$:/config/RegisterPluginType/import": {
"title": "$:/config/RegisterPluginType/import",
"text": "no"
},
"$:/config/SaveWikiButton/Template": {
"title": "$:/config/SaveWikiButton/Template",
"text": "$:/core/save/all"
},
"$:/config/SaverFilter": {
"title": "$:/config/SaverFilter",
"text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Search/AutoFocus": {
"title": "$:/config/Search/AutoFocus",
"text": "true"
},
"$:/config/Search/MinLength": {
"title": "$:/config/Search/MinLength",
"text": "3"
},
"$:/config/SearchResults/Default": {
"title": "$:/config/SearchResults/Default",
"text": "$:/core/ui/DefaultSearchResultList"
},
"$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]": {
"title": "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]",
"text": "yes"
},
"$:/config/ShortcutInfo/add-field": {
"title": "$:/config/ShortcutInfo/add-field",
"text": "{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"
},
"$:/config/ShortcutInfo/advanced-search": {
"title": "$:/config/ShortcutInfo/advanced-search",
"text": "{{$:/language/Buttons/AdvancedSearch/Hint}}"
},
"$:/config/ShortcutInfo/bold": {
"title": "$:/config/ShortcutInfo/bold",
"text": "{{$:/language/Buttons/Bold/Hint}}"
},
"$:/config/ShortcutInfo/cancel-edit-tiddler": {
"title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
"text": "{{$:/language/Buttons/Cancel/Hint}}"
},
"$:/config/ShortcutInfo/excise": {
"title": "$:/config/ShortcutInfo/excise",
"text": "{{$:/language/Buttons/Excise/Hint}}"
},
"$:/config/ShortcutInfo/heading-1": {
"title": "$:/config/ShortcutInfo/heading-1",
"text": "{{$:/language/Buttons/Heading1/Hint}}"
},
"$:/config/ShortcutInfo/heading-2": {
"title": "$:/config/ShortcutInfo/heading-2",
"text": "{{$:/language/Buttons/Heading2/Hint}}"
},
"$:/config/ShortcutInfo/heading-3": {
"title": "$:/config/ShortcutInfo/heading-3",
"text": "{{$:/language/Buttons/Heading3/Hint}}"
},
"$:/config/ShortcutInfo/heading-4": {
"title": "$:/config/ShortcutInfo/heading-4",
"text": "{{$:/language/Buttons/Heading4/Hint}}"
},
"$:/config/ShortcutInfo/heading-5": {
"title": "$:/config/ShortcutInfo/heading-5",
"text": "{{$:/language/Buttons/Heading5/Hint}}"
},
"$:/config/ShortcutInfo/heading-6": {
"title": "$:/config/ShortcutInfo/heading-6",
"text": "{{$:/language/Buttons/Heading6/Hint}}"
},
"$:/config/ShortcutInfo/italic": {
"title": "$:/config/ShortcutInfo/italic",
"text": "{{$:/language/Buttons/Italic/Hint}}"
},
"$:/config/ShortcutInfo/link": {
"title": "$:/config/ShortcutInfo/link",
"text": "{{$:/language/Buttons/Link/Hint}}"
},
"$:/config/ShortcutInfo/list-bullet": {
"title": "$:/config/ShortcutInfo/list-bullet",
"text": "{{$:/language/Buttons/ListBullet/Hint}}"
},
"$:/config/ShortcutInfo/list-number": {
"title": "$:/config/ShortcutInfo/list-number",
"text": "{{$:/language/Buttons/ListNumber/Hint}}"
},
"$:/config/ShortcutInfo/mono-block": {
"title": "$:/config/ShortcutInfo/mono-block",
"text": "{{$:/language/Buttons/MonoBlock/Hint}}"
},
"$:/config/ShortcutInfo/mono-line": {
"title": "$:/config/ShortcutInfo/mono-line",
"text": "{{$:/language/Buttons/MonoLine/Hint}}"
},
"$:/config/ShortcutInfo/new-image": {
"title": "$:/config/ShortcutInfo/new-image",
"text": "{{$:/language/Buttons/NewImage/Hint}}"
},
"$:/config/ShortcutInfo/new-journal": {
"title": "$:/config/ShortcutInfo/new-journal",
"text": "{{$:/language/Buttons/NewJournal/Hint}}"
},
"$:/config/ShortcutInfo/new-tiddler": {
"title": "$:/config/ShortcutInfo/new-tiddler",
"text": "{{$:/language/Buttons/NewTiddler/Hint}}"
},
"$:/config/ShortcutInfo/picture": {
"title": "$:/config/ShortcutInfo/picture",
"text": "{{$:/language/Buttons/Picture/Hint}}"
},
"$:/config/ShortcutInfo/preview": {
"title": "$:/config/ShortcutInfo/preview",
"text": "{{$:/language/Buttons/Preview/Hint}}"
},
"$:/config/ShortcutInfo/quote": {
"title": "$:/config/ShortcutInfo/quote",
"text": "{{$:/language/Buttons/Quote/Hint}}"
},
"$:/config/ShortcutInfo/save-tiddler": {
"title": "$:/config/ShortcutInfo/save-tiddler",
"text": "{{$:/language/Buttons/Save/Hint}}"
},
"$:/config/ShortcutInfo/sidebar-search": {
"title": "$:/config/ShortcutInfo/sidebar-search",
"text": "{{$:/language/Buttons/SidebarSearch/Hint}}"
},
"$:/config/ShortcutInfo/stamp": {
"title": "$:/config/ShortcutInfo/stamp",
"text": "{{$:/language/Buttons/Stamp/Hint}}"
},
"$:/config/ShortcutInfo/strikethrough": {
"title": "$:/config/ShortcutInfo/strikethrough",
"text": "{{$:/language/Buttons/Strikethrough/Hint}}"
},
"$:/config/ShortcutInfo/subscript": {
"title": "$:/config/ShortcutInfo/subscript",
"text": "{{$:/language/Buttons/Subscript/Hint}}"
},
"$:/config/ShortcutInfo/superscript": {
"title": "$:/config/ShortcutInfo/superscript",
"text": "{{$:/language/Buttons/Superscript/Hint}}"
},
"$:/config/ShortcutInfo/toggle-sidebar": {
"title": "$:/config/ShortcutInfo/toggle-sidebar",
"text": "{{$:/language/Buttons/ToggleSidebar/Hint}}"
},
"$:/config/ShortcutInfo/underline": {
"title": "$:/config/ShortcutInfo/underline",
"text": "{{$:/language/Buttons/Underline/Hint}}"
},
"$:/config/SyncFilter": {
"title": "$:/config/SyncFilter",
"text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Tags/MinLength": {
"title": "$:/config/Tags/MinLength",
"text": "0"
},
"$:/config/TextEditor/EditorHeight/Height": {
"title": "$:/config/TextEditor/EditorHeight/Height",
"text": "400px"
},
"$:/config/TextEditor/EditorHeight/Mode": {
"title": "$:/config/TextEditor/EditorHeight/Mode",
"text": "auto"
},
"$:/config/TiddlerInfo/Default": {
"title": "$:/config/TiddlerInfo/Default",
"text": "$:/core/ui/TiddlerInfo/Fields"
},
"$:/config/TiddlerInfo/Mode": {
"title": "$:/config/TiddlerInfo/Mode",
"text": "popup"
},
"$:/config/Tiddlers/TitleLinks": {
"title": "$:/config/Tiddlers/TitleLinks",
"text": "no"
},
"$:/config/Toolbar/ButtonClass": {
"title": "$:/config/Toolbar/ButtonClass",
"text": "tc-btn-invisible"
},
"$:/config/Toolbar/Icons": {
"title": "$:/config/Toolbar/Icons",
"text": "yes"
},
"$:/config/Toolbar/Text": {
"title": "$:/config/Toolbar/Text",
"text": "no"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
"text": "show"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
"text": "hide"
},
"$:/config/shortcuts-mac/bold": {
"title": "$:/config/shortcuts-mac/bold",
"text": "meta-B"
},
"$:/config/shortcuts-mac/italic": {
"title": "$:/config/shortcuts-mac/italic",
"text": "meta-I"
},
"$:/config/shortcuts-mac/underline": {
"title": "$:/config/shortcuts-mac/underline",
"text": "meta-U"
},
"$:/config/shortcuts-mac/new-image": {
"title": "$:/config/shortcuts-mac/new-image",
"text": "ctrl-I"
},
"$:/config/shortcuts-mac/new-journal": {
"title": "$:/config/shortcuts-mac/new-journal",
"text": "ctrl-J"
},
"$:/config/shortcuts-mac/new-tiddler": {
"title": "$:/config/shortcuts-mac/new-tiddler",
"text": "ctrl-N"
},
"$:/config/shortcuts-not-mac/bold": {
"title": "$:/config/shortcuts-not-mac/bold",
"text": "ctrl-B"
},
"$:/config/shortcuts-not-mac/italic": {
"title": "$:/config/shortcuts-not-mac/italic",
"text": "ctrl-I"
},
"$:/config/shortcuts-not-mac/underline": {
"title": "$:/config/shortcuts-not-mac/underline",
"text": "ctrl-U"
},
"$:/config/shortcuts-not-mac/new-image": {
"title": "$:/config/shortcuts-not-mac/new-image",
"text": "alt-I"
},
"$:/config/shortcuts-not-mac/new-journal": {
"title": "$:/config/shortcuts-not-mac/new-journal",
"text": "alt-J"
},
"$:/config/shortcuts-not-mac/new-tiddler": {
"title": "$:/config/shortcuts-not-mac/new-tiddler",
"text": "alt-N"
},
"$:/config/shortcuts/add-field": {
"title": "$:/config/shortcuts/add-field",
"text": "enter"
},
"$:/config/shortcuts/advanced-search": {
"title": "$:/config/shortcuts/advanced-search",
"text": "ctrl-shift-A"
},
"$:/config/shortcuts/cancel-edit-tiddler": {
"title": "$:/config/shortcuts/cancel-edit-tiddler",
"text": "escape"
},
"$:/config/shortcuts/excise": {
"title": "$:/config/shortcuts/excise",
"text": "ctrl-E"
},
"$:/config/shortcuts/sidebar-search": {
"title": "$:/config/shortcuts/sidebar-search",
"text": "ctrl-shift-F"
},
"$:/config/shortcuts/heading-1": {
"title": "$:/config/shortcuts/heading-1",
"text": "ctrl-1"
},
"$:/config/shortcuts/heading-2": {
"title": "$:/config/shortcuts/heading-2",
"text": "ctrl-2"
},
"$:/config/shortcuts/heading-3": {
"title": "$:/config/shortcuts/heading-3",
"text": "ctrl-3"
},
"$:/config/shortcuts/heading-4": {
"title": "$:/config/shortcuts/heading-4",
"text": "ctrl-4"
},
"$:/config/shortcuts/heading-5": {
"title": "$:/config/shortcuts/heading-5",
"text": "ctrl-5"
},
"$:/config/shortcuts/heading-6": {
"title": "$:/config/shortcuts/heading-6",
"text": "ctrl-6"
},
"$:/config/shortcuts/link": {
"title": "$:/config/shortcuts/link",
"text": "ctrl-L"
},
"$:/config/shortcuts/linkify": {
"title": "$:/config/shortcuts/linkify",
"text": "alt-shift-L"
},
"$:/config/shortcuts/list-bullet": {
"title": "$:/config/shortcuts/list-bullet",
"text": "ctrl-shift-L"
},
"$:/config/shortcuts/list-number": {
"title": "$:/config/shortcuts/list-number",
"text": "ctrl-shift-N"
},
"$:/config/shortcuts/mono-block": {
"title": "$:/config/shortcuts/mono-block",
"text": "ctrl-shift-M"
},
"$:/config/shortcuts/mono-line": {
"title": "$:/config/shortcuts/mono-line",
"text": "ctrl-M"
},
"$:/config/shortcuts/picture": {
"title": "$:/config/shortcuts/picture",
"text": "ctrl-shift-I"
},
"$:/config/shortcuts/preview": {
"title": "$:/config/shortcuts/preview",
"text": "alt-P"
},
"$:/config/shortcuts/quote": {
"title": "$:/config/shortcuts/quote",
"text": "ctrl-Q"
},
"$:/config/shortcuts/save-tiddler": {
"title": "$:/config/shortcuts/save-tiddler",
"text": "ctrl+enter"
},
"$:/config/shortcuts/stamp": {
"title": "$:/config/shortcuts/stamp",
"text": "ctrl-S"
},
"$:/config/shortcuts/strikethrough": {
"title": "$:/config/shortcuts/strikethrough",
"text": "ctrl-T"
},
"$:/config/shortcuts/subscript": {
"title": "$:/config/shortcuts/subscript",
"text": "ctrl-shift-B"
},
"$:/config/shortcuts/superscript": {
"title": "$:/config/shortcuts/superscript",
"text": "ctrl-shift-P"
},
"$:/config/shortcuts/toggle-sidebar": {
"title": "$:/config/shortcuts/toggle-sidebar",
"text": "alt-shift-S"
},
"$:/config/shortcuts/transcludify": {
"title": "$:/config/shortcuts/transcludify",
"text": "alt-shift-T"
},
"$:/config/ui/EditTemplate": {
"title": "$:/config/ui/EditTemplate",
"text": "$:/core/ui/EditTemplate"
},
"$:/config/ui/ViewTemplate": {
"title": "$:/config/ui/ViewTemplate",
"text": "$:/core/ui/ViewTemplate"
},
"$:/config/WikiParserRules/Inline/wikilink": {
"title": "$:/config/WikiParserRules/Inline/wikilink",
"text": "enable"
},
"$:/snippets/currpalettepreview": {
"title": "$:/snippets/currpalettepreview",
"text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}\n><div class=\"tc-swatch\" style=<<swatchStyle>> title=<<colour>>/></$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>"
},
"$:/snippets/download-wiki-button": {
"title": "$:/snippets/download-wiki-button",
"text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
},
"$:/language": {
"title": "$:/language",
"text": "$:/languages/en-GB"
},
"$:/snippets/languageswitcher": {
"title": "$:/snippets/languageswitcher",
"text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/macros/CSS": {
"title": "$:/core/macros/CSS",
"tags": "$:/tags/Macro",
"text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"><$transclude tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}} _canonical_uri={{$title$!!_canonical_uri}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"
},
"$:/core/macros/colour-picker": {
"title": "$:/core/macros/colour-picker",
"tags": "$:/tags/Macro",
"text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<span style=\"display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/>\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
},
"$:/core/macros/copy-to-clipboard": {
"title": "$:/core/macros/copy-to-clipboard",
"tags": "$:/tags/Macro",
"text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"
},
"$:/core/macros/diff": {
"title": "$:/core/macros/diff",
"tags": "$:/tags/Macro",
"text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"
},
"$:/core/macros/dumpvariables": {
"title": "$:/core/macros/dumpvariables",
"tags": "$:/tags/Macro",
"text": "\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\n\\end\n"
},
"$:/core/macros/export": {
"title": "$:/core/macros/export",
"tags": "$:/tags/Macro",
"text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n"
},
"$:/core/macros/image-picker": {
"title": "$:/core/macros/image-picker",
"created": "20170715180840889",
"modified": "20170715180914005",
"tags": "$:/tags/Macro",
"type": "text/vnd.tiddlywiki",
"text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
},
"$:/core/macros/lingo": {
"title": "$:/core/macros/lingo",
"tags": "$:/tags/Macro",
"text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
},
"$:/core/macros/list": {
"title": "$:/core/macros/list",
"tags": "$:/tags/Macro",
"text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n\\whitespace trim\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n\\whitespace trim\n<span class=\"tc-links-draggable-list\">\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n</$type$>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$vars>\n</span>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\n\\end\n"
},
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tag-picker": {
"title": "$:/core/macros/tag-picker",
"tags": "$:/tags/Macro",
"text": "\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<tag>>/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker-inner()\n\\whitespace trim\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$keyboard key=\"ENTER\" actions=<<add-tag-actions>>>\n<$edit-text tiddler=<<newTagNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}}/>\n</$keyboard>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class=\"tc-add-tag-button\">\n<$set name=\"tag\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n<<add-tag-actions>>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$set name=\"newTagName\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$list filter=\"[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]!is[system]search:title<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n<hr>\n<$list filter=\"[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]is[system]search:title<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n\\end\n\\define tag-picker()\n\\whitespace trim\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=<<tag-picker-inner>>>\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<<tag-picker-inner>>\n</$set>\n</$list>\n\\end\n"
},
"$:/core/macros/tag": {
"title": "$:/core/macros/tag",
"tags": "$:/tags/Macro",
"text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=<<__tag__>> icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
},
"$:/core/macros/thumbnails": {
"title": "$:/core/macros/thumbnails",
"tags": "$:/tags/Macro",
"text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
},
"$:/core/macros/timeline": {
"title": "$:/core/macros/timeline",
"created": "20141212105914482",
"modified": "20141212110330815",
"tags": "$:/tags/Macro",
"text": "\\define timeline-title()\n\\whitespace trim\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><<timeline-title>></$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
},
"$:/core/macros/toc": {
"title": "$:/core/macros/toc",
"tags": "$:/tags/Macro",
"text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\"\")\n<$macrocall $name=\"toc-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$link>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\"\",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\" >\n <li class=<<toc-item-class>>>\n <$link>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=<<__selectedTiddler__>>>\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]] -[<__selectedTiddler__>get[text]]\"/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=<<__template__>>>\n <h1><<toc-caption>></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n"
},
"$:/core/macros/translink": {
"title": "$:/core/macros/translink",
"tags": "$:/tags/Macro",
"text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tree": {
"title": "$:/core/macros/tree",
"tags": "$:/tags/Macro",
"text": "\\define leaf-link(full-title,chunk,separator: \"/\")\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix,chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix,chunk,separator: \"/\")\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/utils": {
"title": "$:/core/macros/utils",
"text": "\\define colour(colour)\n$colour$\n\\end\n"
},
"$:/snippets/minifocusswitcher": {
"title": "$:/snippets/minifocusswitcher",
"text": "<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\n"
},
"$:/snippets/minilanguageswitcher": {
"title": "$:/snippets/minilanguageswitcher",
"text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/minithemeswitcher": {
"title": "$:/snippets/minithemeswitcher",
"text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/modules": {
"title": "$:/snippets/modules",
"text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
},
"$:/palette": {
"title": "$:/palette",
"text": "$:/palettes/Vanilla"
},
"$:/snippets/paletteeditor": {
"title": "$:/snippets/paletteeditor",
"text": "<$transclude tiddler=\"$:/PaletteManager\"/>\n"
},
"$:/snippets/palettepreview": {
"title": "$:/snippets/palettepreview",
"text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"
},
"$:/snippets/paletteswitcher": {
"title": "$:/snippets/paletteswitcher",
"text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>\n"
},
"$:/snippets/peek-stylesheets": {
"title": "$:/snippets/peek-stylesheets",
"text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/state/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/state/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"
},
"$:/temp/search": {
"title": "$:/temp/search",
"text": ""
},
"$:/tags/AdvancedSearch": {
"title": "$:/tags/AdvancedSearch",
"list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
},
"$:/tags/AdvancedSearch/FilterButton": {
"title": "$:/tags/AdvancedSearch/FilterButton",
"list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
},
"$:/tags/ControlPanel": {
"title": "$:/tags/ControlPanel",
"list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
},
"$:/tags/ControlPanel/Info": {
"title": "$:/tags/ControlPanel/Info",
"list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
},
"$:/tags/ControlPanel/Plugins": {
"title": "$:/tags/ControlPanel/Plugins",
"list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
},
"$:/tags/EditTemplate": {
"title": "$:/tags/EditTemplate",
"list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
},
"$:/tags/EditToolbar": {
"title": "$:/tags/EditToolbar",
"list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
},
"$:/tags/EditorToolbar": {
"title": "$:/tags/EditorToolbar",
"list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
},
"$:/tags/Manager/ItemMain": {
"title": "$:/tags/Manager/ItemMain",
"list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
},
"$:/tags/Manager/ItemSidebar": {
"title": "$:/tags/Manager/ItemSidebar",
"list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
},
"$:/tags/MoreSideBar": {
"title": "$:/tags/MoreSideBar",
"list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]",
"text": ""
},
"$:/tags/PageControls": {
"title": "$:/tags/PageControls",
"list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
},
"$:/tags/PageTemplate": {
"title": "$:/tags/PageTemplate",
"list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
"text": ""
},
"$:/tags/PluginLibrary": {
"title": "$:/tags/PluginLibrary",
"list": "$:/config/OfficialPluginLibrary"
},
"$:/tags/SideBar": {
"title": "$:/tags/SideBar",
"list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
"text": ""
},
"$:/tags/SideBarSegment": {
"title": "$:/tags/SideBarSegment",
"list": "[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]"
},
"$:/tags/TiddlerInfo": {
"title": "$:/tags/TiddlerInfo",
"list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
"text": ""
},
"$:/tags/TiddlerInfo/Advanced": {
"title": "$:/tags/TiddlerInfo/Advanced",
"list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
},
"$:/tags/ViewTemplate": {
"title": "$:/tags/ViewTemplate",
"list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
},
"$:/tags/ViewToolbar": {
"title": "$:/tags/ViewToolbar",
"list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
},
"$:/snippets/themeswitcher": {
"title": "$:/snippets/themeswitcher",
"text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/wiki/title": {
"title": "$:/core/wiki/title",
"text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
},
"$:/view": {
"title": "$:/view",
"text": "classic"
},
"$:/snippets/viewswitcher": {
"title": "$:/snippets/viewswitcher",
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser tc-viewswitcher\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
}
}
}
/*\
title: $:/core/modules/filters/has.js
type: application/javascript
module-type: filteroperator
Filter operator for checking if a tiddler has the specified field
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Export our filter function
*/
exports.has = function(source,operator,options) {
var results = [],
invert = operator.prefix === "!";
if(operator.suffix === "field") {
if(invert) {
source(function(tiddler,title) {
if(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {
results.push(title);
}
});
} else {
source(function(tiddler,title) {
if(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {
results.push(title);
}
});
}
} else {
if(invert) {
source(function(tiddler,title) {
if(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === "") || (tiddler.fields[operator.operand].length === 0)) {
results.push(title);
}
});
} else {
source(function(tiddler,title) {
if(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === "" || tiddler.fields[operator.operand].length === 0)) {
results.push(title);
}
});
}
}
return results;
};
})();
\whitespace trim
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" default="show">
<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>
<$action-sendmessage $message="tm-fold-tiddler" $param=<<currentTiddler>> foldedState=<<folded-state>>/>
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
{{$:/core/images/fold-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text=" "/>
<$text text={{$:/language/Buttons/Fold/Caption}}/>
</span>
</$list>
</$button>
</$reveal>
<$reveal type="match" stateTitle=<<folded-state>> text="hide" default="show">
<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>
<$action-sendmessage $message="tm-fold-tiddler" $param=<<currentTiddler>> foldedState=<<folded-state>>/>
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
{{$:/core/images/unfold-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text=" "/>
<$text text={{$:/language/Buttons/Unfold/Caption}}/>
</span>
</$list>
</$button>
</$reveal>
{{$:/snippets/viewswitcher}}
\define title-styles()
fill:$(foregroundColor)$;
\end
\define config-title()
$:/config/ViewToolbarButtons/Visibility/$(listItem)$
\end
<div class="tc-tiddler-title">
<div class="tc-titlebar">
<span class="tc-tiddler-controls">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<<config-title>> text="hide"><$set name="tv-config-toolbar-class" filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>
</span>
<$set name="tv-wikilinks" value={{$:/config/Tiddlers/TitleLinks}}>
<$link>
<$set name="foregroundColor" value={{!!color}}>
<span class="tc-tiddler-title-icon" style=<<title-styles>>>
<$transclude tiddler={{!!icon}}/>
</span>
</$set>
<$list filter="[all[current]removeprefix[$:/]]">
<h2 class="tc-title" title={{$:/language/SystemTiddler/Tooltip}}>
<span class="tc-system-title-prefix">$:/</span><$text text=<<currentTiddler>>/>
</h2>
</$list>
<$list filter="[all[current]!prefix[$:/]]">
<h2 class="tc-title">
<$view field="title"/>
</h2>
</$list>
</$link>
</$set>
</div>
<$reveal type="nomatch" text="" default="" state=<<tiddlerInfoState>> class="tc-tiddler-info tc-popup-handle" animate="yes" retain="yes">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]" variable="listItem"><$transclude tiddler=<<listItem>> mode="block"/></$list>
</$reveal>
</div>
anaxios/anaxios.github.io
The following tiddlers were imported:
# [[$:/plugins/sendwheel/tw-receiver]]
Create a new tiddler that links to this one
Create a new journal tiddler that links to this one
.bm-table {margin:0 auto;}
.bm-table, .bm-table th, .bm-table td {
border:0; background:white;
}
.bm-input-table {width:100%;}
.bm-input-table > tr > td:nth-child(2) {max-width:300px;}
.bm-input-table select {max-width:calc(100% - 50px - 1.2em);}
.bm-fieldeditor {max-width:calc(100% - 1.2em);}
.bm-relations-table {margin-top:4em;}
.bm-table th.rotate {
white-space: nowrap;
vertical-align:bottom;
}
.bm-table th.rotate > div {
transform: translate(27px, -.5em) rotate(315deg);
width: 1em;
margin-left:-1em;
}
.bm-table th.rotate > div > span {
border-bottom: 1px solid #ccc;
padding: 0px 10px 2px 0;
margin-left:-.6em;
background:white;
}
.bm-table ::-webkit-input-placeholder { color: #a6a6a6; }
.bm-table :-ms-input-placeholder { color: #a6a6a6; }
.bm-table ::-ms-input-placeholder { color: #a6a6a6; }
.bm-table ::-moz-placeholder { color: #a6a6a6; }
.bm-singledata-table-head {border-bottom:2px solid silver}
.bm-btn {width:1em;}
.bm-btn-addtofilter {color:blue; }
.bm-btn-add, .tm-add-tag, .tm-add-field { background:lightgray;}
.bm-btn-remove, .tm-remove-tag, .tm-remove-field {background:lightgreen;}
.peek {display:none;z-index:2;background-color:lightgray;position:absolute;}
.peek-hover:hover .peek {display:block; background:lightgray;}
.bm-tooltip {position:absolute; display:none; z-index:2;background:white; margin:-2.6em -1em; border:1px solid silver; padding:0 5px; color:black;white-space:nowrap;}
.bm-btn-tooltip:hover .bm-tooltip {display:block;}
.bm-fontsmall {font-size:.8em; fill:gray;}
.bm-center {text-align:center; vertical-align:text-bottom;}
.bm-fontsmall svg,
.bm-fontsmall input[type="checkbox"] {vertical-align:text-top}
.bm-alert {border-color:red;}
.bm-drag {background:#ec6; border-radius:1em; padding:0; line-height:1.1em; width:3em; display:inline-block;}
button.green-link {color:#00cc00;}
alert-background: #ffe476
alert-border: #b99e2f
alert-highlight: #881122
alert-muted-foreground: #b99e2f
background: #ffffff
blockquote-bar: <<colour muted-foreground>>
button-background:
button-foreground:
button-border:
code-background: #f7f7f9
code-border: #e1e1e8
code-foreground: #dd1144
diff-delete-background: #ffc9c9
diff-delete-foreground: <<colour foreground>>
diff-equal-background:
diff-equal-foreground: <<colour foreground>>
diff-insert-background: #aaefad
diff-insert-foreground: <<colour foreground>>
diff-invisible-background:
diff-invisible-foreground: <<colour muted-foreground>>
dirty-indicator: #ff0000
download-background: #9e391f
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #fff
dropdown-tab-background: #ececec
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #0000aa
external-link-foreground: #0000ee
foreground: #33323f
message-background: #ecf2ff
message-border: #cfd6e6
message-foreground: #547599
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: #999999
modal-footer-background: #f5f5f5
modal-footer-border: #dddddd
modal-header-border: #eeeeee
muted-foreground: #bbb
notification-background: #ffffdd
notification-border: #999999
page-background: #33323f
pre-background: #f5f5f5
pre-border: #cccccc
primary: #5778d8
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: #9e391f
sidebar-controls-foreground-hover: #4b8b95
sidebar-controls-foreground: #9e391f
sidebar-foreground-shadow:
sidebar-foreground: #d2ad5d
sidebar-muted-foreground-hover: #d2ad5d
sidebar-muted-foreground: #e2d5bf
sidebar-tab-background-selected: #d2ad5d
sidebar-tab-background: #849261
sidebar-tab-border-selected: #849261
sidebar-tab-border: #849261
sidebar-tab-divider: #849261
sidebar-tab-foreground-selected: #ffffff
sidebar-tab-foreground: #ffffff
sidebar-tiddler-link-foreground-hover: #9e391f
sidebar-tiddler-link-foreground: #d2ad5d
site-title-foreground: <<colour tiddler-title-foreground>>
static-alert-foreground: #aaaaaa
tab-background-selected: #ffffff
tab-background: #d8d8d8
tab-border-selected: #d8d8d8
tab-border: #cccccc
tab-divider: #d8d8d8
tab-foreground-selected: <<colour tab-foreground>>
tab-foreground: #666666
table-border: #dddddd
table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #ec6
tag-foreground: #ffffff
tiddler-background: #e2d5bf
tiddler-border: #d2ad5d
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground: #cccccc
tiddler-editor-background: #f8f8f8
tiddler-editor-border-image: #ffffff
tiddler-editor-border: #cccccc
tiddler-editor-fields-even: #e0e8e0
tiddler-editor-fields-odd: #f0f4f0
tiddler-info-background: #f8f8f8
tiddler-info-border: #dddddd
tiddler-info-tab-background: #f8f8f8
tiddler-link-background: <<colour background>>
tiddler-link-foreground: #9e391f
tiddler-subtitle-foreground: #4b8b95
tiddler-title-foreground: #d2ad5d
toolbar-new-button: #9e391f
toolbar-options-button: #9e391f
toolbar-save-button: #9e391f
toolbar-info-button: #9e391f
toolbar-edit-button: #9e391f
toolbar-close-button: #9e391f
toolbar-delete-button: #9e391f
toolbar-cancel-button: #9e391f
toolbar-done-button: #9e391f
untagged-background: #999999
very-muted-foreground: #888888
wikilist-background: #e5e5e5
wikilist-item: #fff
wikilist-info: #000
wikilist-title: #666
wikilist-title-svg: <<colour wikilist-title>>
wikilist-url: #aaa
wikilist-button-open: #4fb82b
wikilist-button-open-hover: green
wikilist-button-reveal: #5778d8
wikilist-button-reveal-hover: blue
wikilist-button-remove: #d85778
wikilist-button-remove-hover: red
wikilist-toolbar-background: #d3d3d3
wikilist-toolbar-foreground: #888
wikilist-droplink-dragover: rgba(255,192,192,0.5)
wikilist-button-background: #acacac
wikilist-button-foreground: #000
alert-background: <<colour background>>
alert-border: <<colour very-muted-foreground>>
alert-highlight: <<colour very-muted-foreground>>
alert-muted-foreground: <<colour muted-foreground>>
background: #FAFAFA
blockquote-bar: <<colour page-background>>
button-background: transparent
button-foreground: inherit
button-border: <<colour tag-background>>
code-background: #ececec
code-border: #ececec
code-foreground:
dirty-indicator: #c80000
download-background: <<colour primary>>
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: #FFFFFF
dropdown-border: <<colour dropdown-background>>
dropdown-tab-background-selected: <<colour dropdown-background>>
dropdown-tab-background: #F5F5F5
dropzone-background: <<colour tag-background>>
external-link-background-hover: transparent
external-link-background-visited: transparent
external-link-background: transparent
external-link-foreground-hover:
external-link-foreground-visited:
external-link-foreground:
foreground: rgba(0, 0, 0, 0.87)
message-background: <<colour background>>
message-border: <<colour very-muted-foreground>>
message-foreground: rgba(0, 0, 0, 0.54)
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: <<colour very-muted-foreground>>
modal-footer-background: <<colour background>>
modal-footer-border: <<colour very-muted-foreground>>
modal-header-border: <<colour very-muted-foreground>>
muted-foreground: rgba(0, 0, 0, 0.54)
notification-background: <<colour dropdown-background>>
notification-border: <<colour dropdown-background>>
page-background: #f4f4f4
pre-background: #ececec
pre-border: #ececec
primary: #9e391f
select-tag-background: <<colour background>>
select-tag-foreground: <<colour foreground>>
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #aeaeae
sidebar-controls-foreground: #c6c6c6
sidebar-foreground-shadow: transparent
sidebar-foreground: rgba(0, 0, 0, 0.54)
sidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)
sidebar-muted-foreground: rgba(0, 0, 0, 0.38)
sidebar-tab-background-selected: <<colour page-background>>
sidebar-tab-background: transparent
sidebar-tab-border-selected: <<colour table-border>>
sidebar-tab-border: transparent
sidebar-tab-divider: <<colour table-border>>
sidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)
sidebar-tab-foreground: rgba(0, 0, 0, 0.54)
sidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)
sidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)
site-title-foreground: rgba(0, 0, 0, 0.87)
static-alert-foreground: #aaaaaa
tab-background-selected: <<colour background>>
tab-background: transparent
tab-border-selected: <<colour table-border>>
tab-border: transparent
tab-divider: <<colour table-border>>
tab-foreground-selected: rgba(0, 0, 0, 0.87)
tab-foreground: rgba(0, 0, 0, 0.54)
table-border: #d8d8d8
table-footer-background: <<colour tiddler-editor-fields-odd>>
table-header-background: <<colour tiddler-editor-fields-even>>
tag-background: #ec6
tag-foreground: <<colour button-foreground>>
tiddler-background: <<colour background>>
tiddler-border: #f9f9f9
tiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>
tiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>
tiddler-controls-foreground: <<colour sidebar-controls-foreground>>
tiddler-editor-background: transparent
tiddler-editor-border-image:
tiddler-editor-border: #e8e7e7
tiddler-editor-fields-even: rgba(0, 0, 0, 0.1)
tiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)
tiddler-info-background: #F5F5F5
tiddler-info-border: #F5F5F5
tiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: <<colour muted-foreground>>
tiddler-title-foreground: #000000
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: <<colour very-muted-foreground>>
very-muted-foreground: rgba(0, 0, 0, 0.12)
.matched {background-color:#ffc;}
.tw-context {
border:0px solid #eee;background-color:#eee;
word-break: break-all; word-wrap: break-word;}
{
"tiddlers": {
"$:/plugins/danielo515/ContextPlugin/widgets/context.js": {
"created": "20140418153435777",
"creator": "danielo",
"modified": "20140530231943517",
"modifier": "danielo",
"module-type": "widget",
"title": "$:/plugins/danielo515/ContextPlugin/widgets/context.js",
"type": "application/javascript",
"text": "/*\\\\\ntitle: $:/core/modules/widgets/danielo/context-widget.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar contextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\ncontextWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\ncontextWidget.prototype.render = function(parent,nextSibling) {\n // Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n \n if(this.term && this.term.length>3){\n \n this.createRegexp();\n var matches = this.executeRegexp();\n\t if(matches.length > 0){ \n this.domNode = this.document.createElement(this.element);\n this.domNode.className=\"tw-context\";\n this.composeResults( matches ); //this appends to domNode \n \t// Insert element\n \tparent.insertBefore(this.domNode,nextSibling);\n \tthis.renderChildren(this.domNode,null);\n\t \tthis.domNodes.push(this.domNode);\n }\n }\n\t\n};\n\n/*\nCompute the internal state of the widget\n*/\ncontextWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n this.matchedClass = this.getAttribute(\"matchClass\",\"matched\");\n\tthis.tiddler = this.getAttribute( \"tiddler\",this.getVariable(\"currentTiddler\") );\n this.term = this.getAttribute(\"term\",this.getAttribute(\"searchTerm\"));\n\tthis.contextLength = this.getAttribute(\"length\",50);\n this.before = this.getAttribute(\"before\",this.contextLength);\n this.after = this.getAttribute(\"after\",this.contextLength);\n this.maxMatches = this.getAttribute(\"maxMatches\",10);\n this.element = this.getAttribute(\"element\",\"pre\");\n\tthis.makeChildWidgets();\n};\n\n /*Create the regular expression*/\ncontextWidget.prototype.createRegexp = function()\n{\n var regString = \"(\\\\w+[\\\\s\\\\S]{0,#before#})?(#term#)([\\\\s\\\\S]{0,#after#}\\\\w+)?\";\n\n var regString = regString.replace(\"#before#\",this.before).replace(\"#term#\", $tw.utils.escapeRegExp(this.term) ) .replace(\"#after#\",this.after);\n this.regexp = new RegExp(regString,\"ig\");\n //console.log(regString);\n};\n/*\nexecute the regular expresion\n*/\ncontextWidget.prototype.executeRegexp = function()\n{\n var text = this.wiki.getTiddlerText(this.tiddler), match,results = new Array();\n while( (match = this.regexp.exec( text ) ) && (results.length < this.maxMatches) )\n { results.push(match) }\n //console.log(\"matches\",results);\n return results;\n};\n\n/*\ncompose the results\nmatches : array of match objects from regular expression execute\n*/\ncontextWidget.prototype.composeResults = function(matches){\n var result=[], self=this, node = this.domNode,\n dots = textNode(\"...\\n\"),\n span = matchedNode( this.term );\n\n for(var i=0; i < matches.length; i++){\n processMatch( matches[i] );\n }\n \n function processMatch(match){\n if( match.index !== 0) node.appendChild( dots.cloneNode(true) );\n for( var i=1;i<match.length;i++ ) {//match[0] full matched text (all groups together)\n if( match[i] ) {\n if ( match[i].toLowerCase() == self.term.toLowerCase() ) \n node.appendChild( match[i] == self.term ? span.cloneNode(true) : matchedNode( match[i] ) )\n else\n node.appendChild( textNode( match[i]) )\n }\n }\n if( match.index + match[0].length < match.input.length) node.appendChild( dots.cloneNode(true) );\n }\n \n function textNode(text){ return self.document.createTextNode(text) }\n function matchedNode(text) { \n var node = self.document.createElement(\"span\"); node.appendChild( textNode(text) ); node.className = self.matchedClass;\n return node }\n \n};\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\ncontextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.term || changedAttributes.length || changedAttributes.matchedClass) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n return this.refreshChildren(changedTiddlers);\n};\n\nexports.context = contextWidget;\n\n})();"
},
"$:/plugins/danielo515/ContextPlugin/visualizer": {
"title": "$:/plugins/danielo515/ContextPlugin/visualizer",
"tags": "$:/tags/SearchResults",
"caption": "Context",
"text": "<$list filter=\"[!is[system]search{$:/temp/search}sort[title]limit[250]]\">\r\n {{!!title||$:/core/ui/ListItemTemplate}}\r\n <$context term={{$:/temp/search}} />\r\n</$list>\r\n"
},
"$:/plugins/danielo515/ContextPlugin/Stylesheet/results": {
"created": "20140529162823729",
"tags": "$:/tags/Stylesheet contextPlugin",
"title": "$:/plugins/danielo515/ContextPlugin/Stylesheet/results",
"type": "text/css",
"text": ".matched{background-color:yellow}\n.tw-context {/*border:1px solid;\n /*word-break: break-all; word-wrap: break-word*/}"
},
"$:/plugins/danielo515/ContextPlugin/Caption": {
"created": "20140530174219263",
"tags": "contextPlugin",
"title": "$:/plugins/danielo515/ContextPlugin/Caption",
"type": "text/vnd.tiddlywiki",
"text": "Context search"
},
"Context Search": {
"caption": "{{$:/plugins/danielo515/ContextPlugin/Caption}}",
"created": "20140530173407542",
"tags": "$:/tags/AdvancedSearch",
"title": "Context Search",
"type": "text/vnd.tiddlywiki",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tw-search\"><$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/><$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\"> <$link to=\"\" class=\"btn-invisible\">{{$:/core/images/close-button}}</$link></$reveal></div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<div class=\"tw-search-results\">\n\n<<lingo Standard/Matches>>\n\n<$list filter=\"[!is[system]search{$:/temp/advancedsearch}sort[title]limit[250]]\">\n{{!!title||$:/core/ui/ListItemTemplate}}\n<$context term={{$:/temp/advancedsearch}}/>\n</$list>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/plugins/danielo515/ContextPlugin/readme": {
"title": "$:/plugins/danielo515/ContextPlugin/readme",
"text": "!Usage\n\nAfter installing the plugin you will have a new tab in [[$:/AdvancedSearch]] called [[Context Search]]. If you want this functionality in other places you will have to edit the desired tiddler yourself adding the ''context widget''. For more details about using the widget see the section below.\n\n!!Using the widget\n\nThe very basic usage of the widget is the following:\n\n```\r\n<$context term=\"lorem\"/>\r\n```\r\nWhich will render as:\r\n<$context term=\"lorem\"/>\n\nThe widgets will search inside the current tiddler by default. Because that you see the same content twice here. This example is not very useful. Other more meaningful would be:\n\n```\r\n<$list filter=\"[search{$:/temp/advancedsearch}sort[title]limit[250]]\">\r\n{{!!title||$:/core/ui/ListItemTemplate}}\r\n<$context term={{$:/temp/advancedsearch}}/>\r\n</$list>\r\n```\n\nThat will search for tiddlers containing the text specified in [[$:/temp/advancedsearch]] and will display a link to the matching tiddlers plus a preview of the matching content. Something very similar is used in [[Context Search]]. Below you can find a complete list of parameters and their default values.\n\n|! parameter |! description | !default |\r\n| term | The term you want to search ||\r\n| searchTerm | An alias for the previous one ||\r\n| tiddler | The tiddler's name to look into | current tiddler |\r\n| length | Number of context characters to show | 50 |\r\n| before | Number of characters before the matched term to show | the value of the length parameter |\r\n| after | Number of characters after the matched term to show | the value of the length parameter |\r\n| maxMatches | maximun number of matched elements to show. Incrementing this can cause several performance issues | 10 |\r\n| element | Node element to create. This element will contain the results of the search. If you want to style it its class is `tw-context` | `<pre>` |\r\n| matchClass | The css class to assign to the matched terms in the results. This is used to highlight the results | matched |\n\n!Customizing the output\r\nThere are not many ways to customize the output of this widget. You can specify ''what type of node you want to create'' to wrap the results (div,span...). The default is `<pre>`. This container is created with the class `tw-context` so you can easily apply styles to it. Something similar happens to the ''highlighted'' words. You can specify the name of the class to assign to it and also you can apply styles to that class.\n\nA very basic example of customization could be:\n\n# Create a tiddler, for example [[$/plugins/danielo515/context/css]]\r\n# Paste the following text or any css rule you want: \"\"\"\n\n<pre>\r\n.matched{background-color:yellow}\r\n.tw-context {\r\n border:1px solid blue;\r\n word-break: break-all; word-wrap: break-word;}\r\n</pre>\r\n\"\"\"\r\n# Tag it with `$:/tags/stylesheet`\r\n# Save the tiddler"
}
}
}
/*\\
title: $:/core/modules/widgets/danielo/context-widget.js
type: application/javascript
module-type: widget
Edit-text widget
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tc: false */
"use strict";
var Widget = require("$:/core/modules/widgets/widget.js").widget;
var contextWidget = function(parseTreeNode,options) {
this.initialise(parseTreeNode,options);
};
/*
Inherit from the base widget class
*/
contextWidget.prototype = new Widget();
/*
Render this widget into the DOM
*/
contextWidget.prototype.render = function(parent,nextSibling) {
// Save the parent dom node
this.parentDomNode = parent;
// Compute our attributes
this.computeAttributes();
// Execute our logic
this.execute();
if(this.term && this.term.length>3){
this.createRegexp();
var matches = this.executeRegexp();
if(matches.length > 0){
this.domNode = this.document.createElement(this.element);
this.domNode.className="tw-context";
this.composeResults( matches ); //this appends to domNode
// Insert element
parent.insertBefore(this.domNode,nextSibling);
this.renderChildren(this.domNode,null);
this.domNodes.push(this.domNode);
}
}
};
/*
Compute the internal state of the widget
*/
contextWidget.prototype.execute = function() {
// Get the parameters from the attributes
this.matchedClass = this.getAttribute("matchClass","matched");
this.tiddler = this.getAttribute( "tiddler",this.getVariable("currentTiddler") );
this.term = this.getAttribute("term",this.getAttribute("searchTerm"));
this.contextLength = this.getAttribute("length",50);
this.before = this.getAttribute("before",this.contextLength);
this.after = this.getAttribute("after",this.contextLength);
this.maxMatches = this.getAttribute("maxMatches",10);
this.element = this.getAttribute("element","pre");
this.makeChildWidgets();
};
/*Create the regular expression*/
contextWidget.prototype.createRegexp = function()
{
var regString = "(\\w+[\\s\\S]{0,#before#})?(#term#)([\\s\\S]{0,#after#}\\w+)?";
var regString = regString.replace("#before#",this.before).replace("#term#", $tw.utils.escapeRegExp(this.term) ) .replace("#after#",this.after);
this.regexp = new RegExp(regString,"ig");
//console.log(regString);
};
/*
execute the regular expresion
*/
contextWidget.prototype.executeRegexp = function()
{
var text = this.wiki.getTiddlerText(this.tiddler), match,results = new Array();
while( (match = this.regexp.exec( text ) ) && (results.length < this.maxMatches) )
{ results.push(match) }
//console.log("matches",results);
return results;
};
/*
compose the results
matches : array of match objects from regular expression execute
*/
contextWidget.prototype.composeResults = function(matches){
var result=[], self=this, node = this.domNode,
dots = textNode("...\n"),
span = matchedNode( this.term );
for(var i=0; i < matches.length; i++){
processMatch( matches[i] );
}
function processMatch(match){
if( match.index !== 0) node.appendChild( dots.cloneNode(true) );
for( var i=1;i<match.length;i++ ) {//match[0] full matched text (all groups together)
if( match[i] ) {
if ( match[i].toLowerCase() == self.term.toLowerCase() )
node.appendChild( match[i] == self.term ? span.cloneNode(true) : matchedNode( match[i] ) )
else
node.appendChild( textNode( match[i]) )
}
}
if( match.index + match[0].length < match.input.length) node.appendChild( dots.cloneNode(true) );
}
function textNode(text){ return self.document.createTextNode(text) }
function matchedNode(text) {
var node = self.document.createElement("span"); node.appendChild( textNode(text) ); node.className = self.matchedClass;
return node }
};
/*
Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
*/
contextWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
if(changedAttributes.tiddler || changedAttributes.term || changedAttributes.length || changedAttributes.matchedClass) {
this.refreshSelf();
return true;
}
return this.refreshChildren(changedTiddlers);
};
exports.context = contextWidget;
})();
{
"tiddlers": {
"$:/plugins/danielo515/encryptTiddler/Encrypt-Tiddler": {
"title": "$:/plugins/danielo515/encryptTiddler/Encrypt-Tiddler",
"created": "20140406153742691",
"creator": "Danielo515",
"description": "add the hability to encrypt individual tiddlers",
"modified": "20141029152631265",
"modifier": "Danielo Rodriguez",
"tags": "index plugins",
"type": "text/vnd.tiddlywiki",
"caption": "readme",
"text": "This plugin adds the ability to encrypt your tiddlers individually. This have several advantages:\n\n* You can specify a different password for each tiddler if you want.\n* You don't have to encrypt your whole wiky.\n* If you forget your password, you only lose a tiddler.\n* It's possible to edit the tiddler content , tags and fields ''except the encrypt field'' after encryption. Decrypting your tiddler will restore it to its original state when you encrypted it. This way you can hide the encrypted tiddlers as a \"different\" thing.\n* You can even encrypt images.\n* You can have sensible data in a day to day wiky.\n* I didn't try this, but theoretically you can apply double encryption by encrypting your wiki too."
},
"$:/plugins/danielo515/encryptTiddler/Changelog": {
"title": "$:/plugins/danielo515/encryptTiddler/Changelog",
"text": "!! V2.3\n* No need to double type password for decrypt tiddlers\n* Fix bug with batch encryption\n* Code simplified\n!! V2.2\n* Added the need to type the password twice\n* Tested on tw 5.1.22\n!! V2.1\n* Added control panel.\n* Added ability to batch encrypt and decrypt tiddlers.\n* Added some documentation an language strings.\n\n"
},
"$:/plugins/danielo515/encryptTiddler/control-panel/batch-encrypt": {
"title": "$:/plugins/danielo515/encryptTiddler/control-panel/batch-encrypt",
"caption": "Batch Encryption",
"text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n{{$:/plugins/danielo515/encryptTiddler/language/batch}}\n\n<$linkcatcher to=\"$:/temp/encrypt/filter\">\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/encrypt/filter\" type=\"search\" tag=\"input\" default=\"\" placeholder=\"filter tiddlers\"/>\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n<$reveal state=\"$:/temp/encrypt/filter\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/encrypt/filter\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n\n\n<$edit-text tag=\"input\" tiddler=\"$:/temp/password1\" placeholder=\"password\" type=\"password\" default=\"\" col=\"4\"/>\n<$edit-text tag=\"input\" tiddler=\"$:/temp/password2\" placeholder=\"confirm password\" type=\"password\" default=\"\" col=\"4\"/>\n<$encryptTiddler passwordTiddler1=\"$:/temp/password1\" passwordTiddler2=\"$:/temp/password2\" filter={{$:/temp/encrypt/filter}}>\n<$button message=\"tw-encrypt-tiddler\">\nEncrypt\n</$button>\n<$button message=\"tw-decrypt-tiddler\">\nDecrypt\n</$button>\n</$encryptTiddler>\n</$reveal>\n</div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]!sort[]] -[[$:/core/Filters/SystemTags]] -[[$:/core/Filters/AllTags]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/encrypt/filter\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/encrypt/filter}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/encrypt/filter}} template=\"$:/plugins/danielo515/encryptTiddler/ui/listItemTemplate\"/>\n</div>\n</$set>\n</$reveal>"
},
"$:/plugins/danielo515/encryptTiddler/control-panel": {
"title": "$:/plugins/danielo515/encryptTiddler/control-panel",
"tags": "$:/tags/ControlPanel",
"caption": "Encrypt Tiddlers",
"text": "\\define prefix(name) $:/plugins/danielo515/encryptTiddler/control-panel/$name$\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]prefix[$:/plugins/danielo515/encryptTiddler/control-panel/]]\" default=<<prefix \"batch-encrypt\">> state=\"$:/state/encryptTiddler/control-panel/tabs\">>"
},
"$:/plugins/danielo515/encryptTiddler/crypt-batch-button": {
"title": "$:/plugins/danielo515/encryptTiddler/crypt-batch-button",
"creator": "Danielo",
"text": "<span title=\"Encrypt/Decrypt tiddler\" class=\"pc-batch-controls\">\n <$reveal state=<<qualify \"$:/state/encrypt\">> type=\"nomatch\" text={{!!title}} animate=\"no\"><$button set=<<qualify \"$:/state/encrypt\">> setTo={{!!title}} class=\"tc-btn-invisible\">{{$:/plugins/danielo515/encryptTiddler/unlocked}}</$button></$reveal><$reveal state=<<qualify \"$:/state/encrypt\">> type=\"match\" text={{!!title}} animate=\"no\"><$button set=<<qualify \"$:/state/encrypt\">> setTo=\"\" class=\"tc-btn-invisible\">{{$:/plugins/danielo515/encryptTiddler/unlocked}}</$button></$reveal>\n <$encryptTiddler passwordTiddler1=\"$:/temp/password1\" passwordTiddler2=\"$:/temp/password2\" filter={{$:/temp/encrypt/filter}}><$reveal state=<<qualify \"$:/state/encrypt\">> type=\"match\" text={{!!title}} animate=\"yes\">\n <div class=\"tc-block-dropdown tw-crypt-dropdown\">\n <span class=\"tw-password-field\"><$edit-text tiddler=\"$:/temp/password1\" tag=\"input\" type=\"password\" default=\"\" placeholder=\"password\" class=\"tc-edit-texteditor\"/></span>\n <span class=\"tw-password-field\"><$edit-text tiddler=\"$:/temp/password2\" tag=\"input\" type=\"password\" default=\"\" placeholder=\"repeat\" class=\"tc-edit-texteditor\"/></span>\n <span class=\"tw-crypt-button\"> <$button message=\"tw-encrypt-tiddler\" set=<<qualify \"$:/state/encrypt\">> setTo=\"\" >Encrypt</$button> <$button message=\"tw-decrypt-tiddler\" set=<<qualify \"$:/state/encrypt\">> setTo=\"\" >Decrypt</$button></span>\n </div>\n </$reveal></$encryptTiddler>\n</span>\n"
},
"$:/plugins/danielo515/encryptTiddler/crypt-button": {
"title": "$:/plugins/danielo515/encryptTiddler/crypt-button",
"created": "20140405233000477",
"creator": "Danielo",
"modified": "20200422065835622",
"tags": "$:/tags/ViewToolbar button encrypt export",
"type": "text/vnd.tiddlywiki",
"text": "<span title=\"Encrypt/Decrypt tiddler\"><$transclude tiddler=\"$:/plugins/danielo515/encryptTiddler/openPopup\"/>\n</span><$encryptTiddler passwordTiddler1=\"$:/temp/password1\" passwordTiddler2=\"$:/temp/password2\"><$reveal state=\"$:/state/encrypt\" type=\"match\" text={{!!title}} animate=\"yes\">\n<div class=\"tc-block-dropdown tw-crypt-dropdown\">\n<div>\n <div class=\"tw-password-field\"><$edit-text tiddler=\"$:/temp/password1\" tag=\"input\" type=\"password\" default=\"\" placeholder=\"password\" class=\"tc-edit-texteditor\"/></div>\n <$list filter=\"[all[current]!has[encrypted]]\"><div class=\"tw-password-field\"><$edit-text tiddler=\"$:/temp/password2\" tag=\"input\" type=\"password\" default=\"\" placeholder=\"repeat\" class=\"tc-edit-texteditor\"/></div></$list>\n</div>\n <span class=\"tw-crypt-button\"> <$list filter=\"[all[current]!has[encrypted]]\"> <$button message=\"tw-encrypt-tiddler\" set=\"$:/state/encrypt\" setTo=\"\" >Encrypt</$button></$list><$list filter=\"[is[current]has[encrypted]]\"> <$button message=\"tw-decrypt-tiddler\" set=\"$:/state/encrypt\" setTo=\"\" >Decrypt</$button></$list></span>\n</div>\n</$reveal></$encryptTiddler>\n"
},
"$:/plugins/danielo515/encryptTiddler/encrypttiddler.js": {
"title": "$:/plugins/danielo515/encryptTiddler/encrypttiddler.js",
"text": "/*\\\ntitle: $:/plugins/danielo515/encryptTiddler/encrypttiddler.js\ntype: application/javascript\nmodule-type: widget\n\nencrypttiddler widget\n\n\n\\*/\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar encryptTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t\t{type: \"tw-encrypt-tiddler\", handler: \"handleEncryptevent\"},\n\t\t\t{type: \"tw-decrypt-tiddler\", handler: \"handleDecryptevent\"},\n\t\t\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nencryptTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nencryptTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tconsole.log(\"Render\");\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nencryptTiddlerWidget.prototype.execute = function() {\n\t// Get attributes\n\t this.tiddlerTitle=this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t this.filter=this.getAttribute(\"filter\",undefined);\n \t this.passwordTiddler1=this.getAttribute(\"passwordTiddler1\");\n \t this.passwordTiddler2=this.getAttribute(\"passwordTiddler2\");\n\t// Construct the child widgets\n\tconsole.log(this.targetTiddler);\n\t\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nencryptTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.filter) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nencryptTiddlerWidget.prototype.getTiddlersToProcess = function () {\n if (this.filter) {\n //we have a filter to work with\n return this.wiki.filterTiddlers(this.filter);\n }\n //single tiddler case\n var tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n return tiddler ? [tiddler.fields.title] : [];\n};\n\nencryptTiddlerWidget.prototype.handleEncryptevent = function (event) {\n var password = this.getPassword(true);\n var tiddlers = this.getTiddlersToProcess();\n\n if (tiddlers.length > 0 && password) {\n var self = this;\n $tw.utils.each(tiddlers, function (title) {\n var tiddler = self.wiki.getTiddler(title);\n var fields = {\n text: \"!This is an encrypted Tiddler\",\n encrypted: self.encryptFields(title, password),\n };\n self.saveTiddler(tiddler, fields);\n });\n } else {\n console.log(\n \"We did not find any tiddler to encrypt or password not set!\"\n );\n }\n};\n\nencryptTiddlerWidget.prototype.handleDecryptevent = function(event){\n\tvar password =this.getPassword(false);\n\tvar tiddlers = this.getTiddlersToProcess();\n\n\tif(tiddlers.length > 0 && password){\n\t\tvar self = this;\n\t\t$tw.utils.each(tiddlers, function(title){\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tvar fields = self.decryptFields(tiddler,password);\n\t\t\tif(fields)self.saveTiddler(tiddler,fields);\n\t\t});\n\t}\n};\n\nencryptTiddlerWidget.prototype.saveTiddler=function(tiddler,fields){\n\tthis.wiki.addTiddler( new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,this.clearNonStandardFields(tiddler), fields ) )\n}\n\nencryptTiddlerWidget.prototype.encryptFields = function (title,password){\n\tvar jsonData=this.wiki.getTiddlerAsJson(title);\n\treturn $tw.crypto.encrypt(jsonData,password);\n\n};\n\nencryptTiddlerWidget.prototype.decryptFields = function (tiddler, password) {\n var JSONfields = $tw.crypto.decrypt(tiddler.fields.encrypted, password);\n if (JSONfields !== null) {\n return JSON.parse(JSONfields);\n }\n console.log(\n \"Error decrypting \" + tiddler.fields.title + \". Probably bad password\"\n );\n return false;\n};\n\nencryptTiddlerWidget.prototype.getPasswordFromTiddler = function(title){\n\tvar tiddler=this.wiki.getTiddler(title);\n\tif(tiddler){\n\t\tvar password=tiddler.fields.text;\n\t\tthis.saveTiddler(tiddler); //reset password tiddler\n\t\treturn password;\n\t}\n\n\treturn false\n}\n\nencryptTiddlerWidget.prototype.getPassword = function(confirm){\n\tvar password1 = this.getPasswordFromTiddler(this.passwordTiddler1);\n\tif(!confirm) return password1\n var password2 = this.getPasswordFromTiddler(this.passwordTiddler2);\n\n if (password1 === password2) {\n return password1;\n }\n\n return null;\n}\n\n// This function erases every field of a tiddler that is not standard and also\n// the text field\nencryptTiddlerWidget.prototype.clearNonStandardFields =function(tiddler) {\n\tvar standardFieldNames = \"title tags modified modifier created creator\".split(\" \");\n\t\tvar clearFields = {};\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(standardFieldNames.indexOf(fieldName) === -1) {\n\t\t\t\tclearFields[fieldName] = undefined;\n\t\t\t}\n\t\t}\n\t\tconsole.log(\"Cleared fields \"+JSON.stringify(clearFields));\n\t\treturn clearFields;\n};\n\nexports.encryptTiddler = encryptTiddlerWidget;",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/danielo515/encryptTiddler/Filters/encrypted-tiddlers": {
"title": "$:/plugins/danielo515/encryptTiddler/Filters/encrypted-tiddlers",
"description": "All encrypted tiddlers",
"filter": "[has[encrypted]]",
"tags": "$:/tags/Filter"
},
"$:/plugins/danielo515/encryptTiddler/Filters/normal-unencrypted-tiddlers": {
"title": "$:/plugins/danielo515/encryptTiddler/Filters/normal-unencrypted-tiddlers",
"filter": "[!is[system]!has[encrypted]]",
"description": "Non-encrypted normal tiddlers",
"tags": "$:/tags/Filter"
},
"$:/plugins/danielo515/encryptTiddler/language/batch": {
"title": "$:/plugins/danielo515/encryptTiddler/language/batch",
"text": "Use below controls to encrypt or decrypt a bunch of tiddlers. Encryption ''controls are hidden'' until you type something in the search box. All listed tiddlers will be affected. The presence of a small padlock (<span class=\"pc-listItem-lock\">{{$:/core/images/locked-padlock}}</span>) next to the tiddler title indicates that particular tiddler is already encrypted."
},
"$:/plugins/danielo515/encryptTiddler/ui/listItemTemplate": {
"title": "$:/plugins/danielo515/encryptTiddler/ui/listItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n<$list filter=\"[all[current]has[encrypted]]\">\n<span class=\"pc-listItem-lock\">{{$:/core/images/locked-padlock}}</span>\n</$list>\n</$link>\n</div>"
},
"$:/plugins/danielo515/encryptTiddler/openPopup": {
"title": "$:/plugins/danielo515/encryptTiddler/openPopup",
"created": "20140406151910358",
"creator": "Danielo",
"modified": "20140608121417975",
"modifier": "Danielo515",
"tags": "button encrypt export",
"type": "text/vnd.tiddlywiki",
"text": "<$reveal state=\"$:/state/encrypt\" type=\"nomatch\" text={{!!title}} animate=\"no\"><$button set=\"$:/state/encrypt\" setTo={{!!title}} class=\"tc-btn-invisible\">{{$:/plugins/danielo515/encryptTiddler/unlocked}}</$button></$reveal><$reveal state=\"$:/state/encrypt\" type=\"match\" text={{!!title}} animate=\"no\"><$button set=\"$:/state/encrypt\" setTo=\"\" class=\"tc-btn-invisible\">{{$:/plugins/danielo515/encryptTiddler/unlocked}}</$button></$reveal>"
},
"$:/plugins/danielo515/encryptTiddler/styles": {
"title": "$:/plugins/danielo515/encryptTiddler/styles",
"created": "20140406110705085",
"creator": "danielo",
"tags": "$:/tags/Stylesheet encrypt export",
"type": "text/plain",
"text": ".tw-password-field {\n\tdisplay: block;\n\tfont-size:1em;\n\tline-height:0;\n\tmargin: 0;\n}\n\n/*It is for use in combination with tc-block-dropdown */\n.tw-crypt-dropdown{\n\tline-height:0;\n\tpadding: 8px;\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.pc-batch-controls .tw-crypt-dropdown{\n\tright: 0px;\n}\n\n.pc-batch-controls{\n\tposition:relative;\n}\n\n.pc-listItem-lock svg{\n\theight: 1em;\n\twidth: 1em;\n\tfill: #aaaaaa;\n}\n\n.tw-password-field input{\n\tfont-size:0.5em;\n}\n\n.tw-crypt-button {\n\tdisplay: inline-block;\n\tpadding: 8px;\n}\n\n.tw-crypt-button button{\n\tfont-size:0.5em;\n\ttext-transform: uppercase;\n\tborder-radius: 4px;\n}\n"
},
"$:/plugins/danielo515/encryptTiddler/unlocked": {
"title": "$:/plugins/danielo515/encryptTiddler/unlocked",
"created": "20140406101339943",
"creator": "danielo515",
"modified": "20140608121532690",
"modifier": "danielo515",
"tags": "encrypt export",
"type": "text/vnd.tiddlywiki",
"text": "<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" class=\"tc-image-button\"\n\t viewBox=\"0 0 100 100\" style=\"enable-background:new 0 0 100 100;\" xml:space=\"preserve\">\n<g>\n\t<path d=\"M77.555,50H35.304V31.63c0-4.057,1.435-7.521,4.305-10.391c2.87-2.87,6.333-4.305,10.391-4.305\n\t\tc4.056,0,7.52,1.435,10.39,4.305s4.305,6.335,4.305,10.391c0,0.996,0.363,1.857,1.091,2.583c0.727,0.729,1.588,1.09,2.583,1.09\n\t\th3.674c0.995,0,1.856-0.361,2.583-1.09c0.727-0.727,1.091-1.588,1.091-2.583c0-7.079-2.517-13.136-7.549-18.17\n\t\tC63.136,8.428,57.08,5.912,50,5.912c-7.081,0-13.137,2.516-18.169,7.548c-5.033,5.034-7.549,11.091-7.549,18.17V50h-1.837\n\t\tc-1.531,0-2.833,0.536-3.904,1.608c-1.072,1.072-1.607,2.372-1.607,3.902v33.067c0,1.532,0.535,2.832,1.607,3.904\n\t\tc1.071,1.072,2.372,1.608,3.904,1.608h55.11c1.53,0,2.832-0.536,3.904-1.608c1.071-1.072,1.607-2.372,1.607-3.904V55.51\n\t\tc0-1.529-0.536-2.83-1.607-3.902C80.387,50.536,79.085,50,77.555,50z M54.315,72.937V83.72c0,2.173-1.762,3.935-3.935,3.935H49.62\n\t\tc-2.173,0-3.935-1.762-3.935-3.935V72.937c-2.31-1.443-3.852-4.001-3.852-6.925c0-4.511,3.657-8.167,8.167-8.167\n\t\ts8.167,3.657,8.167,8.167C58.167,68.937,56.625,71.495,54.315,72.937z\"/>\n</g>\n</svg>\n"
}
}
}
{
"tiddlers": {
"$:/plugins/flibbles/relink/js/bulkops.js": {
"text": "/*\\\nmodule-type: startup\n\nReplaces the relinkTiddler defined in $:/core/modules/wiki-bulkops.js\n\nThis is a startup instead of a wikimethods module-type because it's the only\nway to ensure this runs after the old relinkTiddler method is applied.\n\n\\*/\n(function(){\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nexports.name = \"redefine-relinkTiddler\";\nexports.synchronous = true;\n// load-modules is when wikimethods are applied in\n// ``$:/core/modules/startup/load-modules.js``\nexports.after = ['load-modules'];\n\nexports.startup = function() {\n\t$tw.Wiki.prototype.relinkTiddler = relinkTiddler;\n};\n\n/** Walks through all relinkable tiddlers and relinks them.\n * This replaces the existing function in core Tiddlywiki.\n */\nfunction relinkTiddler(fromTitle, toTitle, options) {\n\tvar self = this;\n\tvar failures = [];\n\tvar records = this.getRelinkReport(fromTitle, toTitle, options);\n\tfor (var title in records) {\n\t\tvar entries = records[title];\n\t\tvar changes = Object.create(null);\n\t\tvar update = false;\n\t\tfor (var field in entries) {\n\t\t\tvar entry = entries[field];\n\t\t\tlanguage.eachImpossible(entry, function() {\n\t\t\t\tfailures.push(title);\n\t\t\t});\n\t\t\tlanguage.logAll(entry, title, fromTitle, toTitle, options);\n\t\t\tif (entry && entry.output) {\n\t\t\t\tchanges[field] = entry.output;\n\t\t\t\tupdate = true;\n\t\t\t}\n\t\t}\n\t\t// If any fields changed, update tiddler\n\t\tif (update) {\n\t\t\tvar tiddler = this.getTiddler(title);\n\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,changes,self.getModificationFields())\n\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\tself.addTiddler(newTiddler);\n\t\t}\n\t};\n\tif (failures.length > 0) {\n\t\tvar options = $tw.utils.extend(\n\t\t\t{ variables: {to: toTitle, from: fromTitle},\n\t\t\t wiki: this},\n\t\t\toptions );\n\t\tlanguage.reportFailures(failures, options);\n\t}\n};\n\n})();\n",
"module-type": "startup",
"title": "$:/plugins/flibbles/relink/js/bulkops.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/language.js": {
"text": "/*\\\nmodule-type: library\n\nThis handles all logging and alerts Relink emits.\n\n\\*/\n\nvar prettylink = require(\"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js\");\nvar Placeholder = require(\"$:/plugins/flibbles/relink/js/utils/placeholder.js\");\n\nexports.eachImpossible = function(rootEntry, method) {\n\tif (rootEntry.eachChild) {\n\t\trootEntry.eachChild(function(child) {\n\t\t\texports.eachImpossible.call(this, child, method);\n\t\t});\n\t}\n\tif (rootEntry.impossible) {\n\t\tmethod(rootEntry);\n\t}\n};\n\nexports.logAll = function(entry, title, from, to, options) {\n\tvar raw = exports.log[entry.name];\n\tif (entry.impossible) {\n\t\treturn;\n\t}\n\tif (raw) {\n\t\texports.logRelink(raw, entry, title, from, to, options);\n\t\treturn;\n\t}\n\tif (entry.eachChild) {\n\t\tentry.eachChild(function(child) {\n\t\t\texports.logAll(child, title, from, to, options);\n\t\t});\n\t}\n};\n\nexports.logRelink = function(raw, args, title, from, to, options) {\n\traw = \"Renaming '\"+from+\"' to '\"+to+\"' in \" + raw + \" of tiddler '\"+title+\"'\";\n\t// This is cheap, but whatevs. To do a proper\n\t// rendering would require working through a wiki\n\t// object. Too heavy weight for log messages.\n\tvar msg = raw.replace(/<<([^<>]+)>>/g, function(match, key) {\n\t\tvar value = args[key];\n\t\tif (key === \"field\") {\n\t\t\tvalue = descriptor(value);\n\t\t};\n\t\treturn value || (\"<<\"+key+\">>\");\n\t});\n\tconsole.log(msg);\n};\n\n// This wraps alert so it can be monkeypatched during testing.\nexports.alert = function(message) {\n\talert(message);\n};\n\nexports.getString = function(title, options) {\n\ttitle = \"$:/plugins/flibbles/relink/language/\" + title;\n\treturn options.wiki.renderTiddler(\"text/plain\", title, options);\n};\n\nvar logger;\n\nexports.reportFailures = function(failureList, options) {\n\tif (!logger) {\n\t\tlogger = new $tw.utils.Logger(\"Relinker\");\n\t}\n\tvar alertString = this.getString(\"Error/ReportFailedRelinks\", options)\n\tvar placeholder = new Placeholder(options);\n\tvar phOptions = $tw.utils.extend({placeholder: placeholder}, options);\n\tvar alreadyReported = Object.create(null);\n\tvar reportList = [];\n\t$tw.utils.each(failureList, function(f) {\n\t\tif (!alreadyReported[f]) {\n\t\t\tif ($tw.browser) {\n\t\t\t\treportList.push(\"\\n* \" + prettylink.makeLink(f, undefined, phOptions));\n\t\t\t} else {\n\t\t\t\treportList.push(\"\\n* \" + f);\n\t\t\t}\n\t\t\talreadyReported[f] = true;\n\t\t}\n\t});\n\tlogger.alert(placeholder.getPreamble() + alertString + \"\\n\" + reportList.join(\"\"));\n};\n\nexports.log = {\n\t\"html\": \"<<<element>> /> element\",\n\t\"field\": \"<<field>>\",\n\t\"filteredtransclude\": \"filtered transclusion\",\n\t\"image\": \"image\",\n\t\"import\": \"\\\\import filter\",\n\t\"macrodef\": \"<<macro>> definition\",\n\t\"prettylink\": \"prettylink\",\n\t\"syslink\": \"syslink\",\n\t\"transclude\": \"transclusion\",\n\t\"wikilink\": \"CamelCase link\",\n};\n\nfunction descriptor(field) {\n\tif (field === \"tags\") {\n\t\treturn \"tags\";\n\t} else {\n\t\treturn field + \" field\" ;\n\t}\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/language.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/mangler.js": {
"text": "/*\\\nmodule-type: widget\n\nCreates a mangler widget for field validation. This isn't meant to be used\nby the user. It's only used in Relink configuration.\n\n\\*/\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\n\nvar RelinkManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"relink-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"relink-add-operator\", handler: \"handleAddOperatorEvent\"},\n\t\t{type: \"relink-add-parameter\", handler: \"handleAddParameterEvent\"},\n\t\t{type: \"relink-add-attribute\", handler: \"handleAddAttributeEvent\"}\n\t]);\n};\n\nexports.relinkmangler = RelinkManglerWidget;\n\nRelinkManglerWidget.prototype = new Widget();\n\nRelinkManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (typeof param !== \"object\" || !param.field) {\n\t\t// Can't handle it.\n\t\treturn true;\n\t}\n\tvar trimmedName = param.field.toLowerCase().trim();\n\tif (!trimmedName) {\n\t\t// Still can't handle it, but don't warn.\n\t\treturn true;\n\t}\n\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\tlanguage.alert($tw.language.getString(\n\t\t\t\"InvalidFieldName\",\n\t\t\t{variables:\n\t\t\t\t{fieldName: trimmedName}\n\t\t\t}\n\t\t));\n\t} else {\n\t\tadd(this.wiki, \"fields\", trimmedName);\n\t}\n\treturn true;\n};\n\n/**Not much validation, even though there are definitely illegal\n * operator names. If you input on, Relink won't relink it, but it\n * won't choke on it either. Tiddlywiki will...\n */\nRelinkManglerWidget.prototype.handleAddOperatorEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (param) {\n\t\tadd(this.wiki, \"operators\", param.operator);\n\t}\n\treturn true;\n};\n\nRelinkManglerWidget.prototype.handleAddParameterEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (param && param.macro && param.parameter) {\n\t\tif (/\\s/.test(param.macro.trim())) {\n\t\t\tlanguage.alert(language.getString(\n\t\t\t\t\"Error/InvalidMacroName\",\n\t\t\t\t{ variables: {macroName: param.macro},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else if (/[ \\/]/.test(param.parameter.trim())) {\n\t\t\tlanguage.alert(language.getString(\n\t\t\t\t\"Error/InvalidParameterName\",\n\t\t\t\t{ variables: {parameterName: param.parameter},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else {\n\t\t\tadd(this.wiki, \"macros\", param.macro, param.parameter);\n\t\t}\n\t}\n\treturn true;\n};\n\nRelinkManglerWidget.prototype.handleAddAttributeEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (param && param.element && param.attribute) {\n\t\tif (/[ \\/]/.test(param.element.trim())) {\n\t\t\tlanguage.alert(language.getString(\n\t\t\t\t\"Error/InvalidElementName\",\n\t\t\t\t{ variables: {elementName: param.element},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else if (/[ \\/]/.test(param.attribute.trim())) {\n\t\t\tlanguage.alert(language.getString(\n\t\t\t\t\"Error/InvalidAttributeName\",\n\t\t\t\t{ variables: {attributeName: param.attribute},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else {\n\t\t\tadd(this.wiki, \"attributes\", param.element, param.attribute);\n\t\t}\n\t}\n\treturn true;\n};\n\nfunction add(wiki, category/*, path parts*/) {\n\tvar path = \"$:/config/flibbles/relink/\" + category;\n\tfor (var x = 2; x < arguments.length; x++) {\n\t\tvar part = arguments[x];\n\t\t// Abort if it's falsy, or only whitespace. Also, trim spaces\n\t\tif (!part || !(part = part.trim())) {\n\t\t\treturn;\n\t\t}\n\t\tpath = path + \"/\" + part;\n\t}\n\tvar def = settings.getDefaultType(wiki);\n\twiki.addTiddler({title: path, text: def});\n};\n",
"module-type": "widget",
"title": "$:/plugins/flibbles/relink/js/mangler.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/settings.js": {
"text": "/*\\\nmodule-type: library\n\nThis handles the fetching and distribution of relink settings.\n\n\\*/\n\nvar fieldTypes = Object.create(null);\nvar surveyors = [];\nvar prefix = \"$:/config/flibbles/relink/\";\n\n$tw.modules.forEachModuleOfType(\"relinkfieldtype\", function(title, exports) {\n\tfunction NewType() {};\n\tNewType.prototype = exports;\n\tNewType.typeName = exports.name;\n\tfieldTypes[exports.name] = NewType;\n\t// For legacy reasons, some of the field types can go by other names\n\tif (exports.aliases) {\n\t\t$tw.utils.each(exports.aliases, function(alias) {\n\t\t\tfieldTypes[alias] = NewType;\n\t\t});\n\t}\n});\n\n$tw.modules.forEachModuleOfType(\"relinksurveyor\", function(title, exports) {\n\tsurveyors.push(exports);\n});\n\nfunction Settings(wiki) {\n\tthis.settings = compileSettings(wiki);\n\tthis.wiki = wiki;\n};\n\nmodule.exports = Settings;\n\n/**Returns a specific relinker.\n * This is useful for wikitext rules which need to parse a filter or a list\n */\nSettings.getType = function(name) {\n\tvar Handler = fieldTypes[name];\n\treturn Handler ? new Handler() : undefined;\n};\n\nSettings.getTypes = function() {\n\t// We don't return fieldTypes, because we don't want it modified,\n\t// and we need to filter out legacy names.\n\tvar rtn = Object.create(null);\n\tfor (var type in fieldTypes) {\n\t\tvar typeObject = fieldTypes[type];\n\t\trtn[typeObject.typeName] = typeObject;\n\t}\n\treturn rtn;\n};\n\nSettings.getDefaultType = function(wiki) {\n\tvar tiddler = wiki.getTiddler(\"$:/config/flibbles/relink/settings/default-type\");\n\tvar defaultType = tiddler && tiddler.fields.text;\n\t// make sure the default actually exists, otherwise default\n\treturn fieldTypes[defaultType] ? defaultType : \"title\";\n};\n\nSettings.prototype.survey = function(text, fromTitle, options) {\n\tif (text) {\n\t\tfor (var i = 0; i < surveyors.length; i++) {\n\t\t\tif (surveyors[i].survey(text, fromTitle, options)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nSettings.prototype.getAttribute = function(elementName) {\n\treturn this.settings.attributes[elementName];\n};\n\nSettings.prototype.getAttributes = function() {\n\treturn flatten(this.settings.attributes);\n};\n\n\nSettings.prototype.getFields = function() {\n\treturn this.settings.fields;\n};\n\nSettings.prototype.getOperators = function() {\n\treturn this.settings.operators;\n};\n\nSettings.prototype.getMacro = function(macroName) {\n\treturn this.settings.macros[macroName];\n};\n\nSettings.prototype.getMacros = function() {\n\treturn flatten(this.settings.macros);\n};\n\nSettings.prototype.refresh = function(changes) {\n\tfor (var title in changes) {\n\t\tif (title.substr(0, prefix.length) === prefix) {\n\t\t\tthis.settings = compileSettings(this.wiki);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/**Factories define methods that create settings given config tiddlers.\n * for factory method 'example', it will be called once for each:\n * \"$:/config/flibbles/relink/example/...\" tiddler that exists.\n * the argument \"key\" will be set to the contents of \"...\"\n *\n * The reason I build relink settings in this convoluted way is to minimize\n * the number of times tiddlywiki has to run through EVERY tiddler looking\n * for relink config tiddlers.\n *\n * Also, by exporting \"factories\", anyone who extends relink can patch in\n * their own factory methods to create settings that are generated exactly\n * once per rename.\n */\nexports.factories = {\n\tattributes: function(attributes, data, key) {\n\t\tvar elem = root(key);\n\t\tvar attr = key.substr(elem.length+1);\n\t\tattributes[elem] = attributes[elem] || Object.create(null);\n\t\tattributes[elem][attr] = data;\n\t},\n\tfields: function(fields, data, name) {\n\t\tfields[name] = data;\n\t},\n\tmacros: function(macros, data, key) {\n\t\t// We take the last index, not the first, because macro\n\t\t// parameters can't have slashes, but macroNames can.\n\t\tvar name = dir(key);\n\t\tvar arg = key.substr(name.length+1);\n\t\tmacros[name] = macros[name] || Object.create(null);\n\t\tmacros[name][arg] = data;\n\t},\n\toperators: function(operators, data, name) {\n\t\toperators[name] = data;\n\t}\n};\n\nfunction compileSettings(wiki) {\n\tvar settings = Object.create(null);\n\tfor (var name in exports.factories) {\n\t\tsettings[name] = Object.create(null);\n\t}\n\twiki.eachShadowPlusTiddlers(function(tiddler, title) {\n\t\tif (title.substr(0, prefix.length) === prefix) {\n\t\t\tvar remainder = title.substr(prefix.length);\n\t\t\tvar category = root(remainder);\n\t\t\tvar factory = exports.factories[category];\n\t\t\tif (factory) {\n\t\t\t\tvar name = remainder.substr(category.length+1);\n\t\t\t\tvar Handler = fieldTypes[tiddler.fields.text];\n\t\t\t\tif (Handler) {\n\t\t\t\t\tvar data = new Handler();\n\t\t\t\t\tdata.source = title;\n\t\t\t\t\t// Secret feature. You can access a config tiddler's\n\t\t\t\t\t// fields from inside the fieldtype handler. Cool\n\t\t\t\t\t// tricks can be done with this.\n\t\t\t\t\tdata.fields = tiddler.fields;\n\t\t\t\t\tfactory(settings[category], data, name);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn settings;\n};\n\n/* Returns first bit of a path. path/to/tiddler -> path\n */\nfunction root(string) {\n\tvar index = string.indexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n};\n\n/* Returns all but the last bit of a path. path/to/tiddler -> path/to\n */\nfunction dir(string) {\n\tvar index = string.lastIndexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n}\n\nfunction flatten(set) {\n\tvar signatures = Object.create(null);\n\tfor (var outerName in set) {\n\t\tvar setItem = set[outerName];\n\t\tfor (var innerName in setItem) {\n\t\t\tsignatures[outerName + \"/\" + innerName] = setItem[innerName];\n\t\t}\n\t}\n\treturn signatures;\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/settings.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/wikimethods.js": {
"text": "/*\\\nmodule-type: wikimethod\n\nIntroduces some utility methods used by Relink.\n\n\\*/\n\nvar MacroSettings = require('$:/plugins/flibbles/relink/js/utils/macroConfig.js');\nvar Settings = require(\"$:/plugins/flibbles/relink/js/settings.js\");\n\nvar relinkOperations = Object.create(null);\n$tw.modules.applyMethods('relinkoperator', relinkOperations);\n\n/** Returns a pair like this,\n * { title: {field: entry, ... }, ... }\n */\nexports.getRelinkReport = function(fromTitle, toTitle, options) {\n\tvar cache = this.getGlobalCache(\"relink-\"+fromTitle, function() {\n\t\treturn Object.create(null);\n\t});\n\tif (!cache[toTitle]) {\n\t\tcache[toTitle] = getFreshRelinkReport(this, fromTitle, toTitle, options);\n\t}\n\treturn cache[toTitle];\n};\n\nfunction getFreshRelinkReport(wiki, fromTitle, toTitle, options) {\n\toptions = options || {};\n\toptions.wiki = options.wiki || wiki;\n\toptions.settings = wiki.getRelinkConfig();\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\tvar changeList = Object.create(null);\n\tif(fromTitle && toTitle) {\n\t\tvar tiddlerList = wiki.getRelinkableTitles();\n\t\tfor (var i = 0; i < tiddlerList.length; i++) {\n\t\t\tvar title = tiddlerList[i];\n\t\t\tvar tiddler = wiki.getTiddler(title);\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(tiddler\n\t\t\t&& !tiddler.fields[\"plugin-type\"]\n\t\t\t&& tiddler.fields.type !== \"application/javascript\") {\n\t\t\t\ttry {\n\t\t\t\t\tvar entries = Object.create(null);\n\t\t\t\t\tfor (var operation in relinkOperations) {\n\t\t\t\t\t\trelinkOperations[operation](tiddler, fromTitle, toTitle, entries, options);\n\t\t\t\t\t}\n\t\t\t\t\tfor (var field in entries) {\n\t\t\t\t\t\t// So long as there is one key,\n\t\t\t\t\t\t// add it to the change list.\n\t\t\t\t\t\tchangeList[title] = entries;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Should we test for instanceof Error instead?: yes\n\t\t\t\t\t// Does that work in the testing environment?: no\n\t\t\t\t\tif (e.message) {\n\t\t\t\t\t\te.message = e.message + \"\\nWhen relinking '\" + title + \"'\";\n\t\t\t\t\t}\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn changeList;\n};\n\nexports.getRelinkableTitles = function() {\n\tvar toUpdate = \"$:/config/flibbles/relink/to-update\";\n\tvar self = this;\n\treturn this.getCacheForTiddler(toUpdate, \"relink-toUpdate\", function() {\n\t\tvar tiddler = self.getTiddler(toUpdate);\n\t\tif (tiddler) {\n\t\t\treturn self.compileFilter(tiddler.fields.text);\n\t\t} else {\n\t\t\treturn self.allTitles;\n\t\t}\n\t})();\n};\n\n\nexports.getRelinkConfig = function() {\n\tif (this._relinkConfig === undefined) {\n\t\tvar settings = new Settings(this);\n\t\tvar config = new MacroSettings(this, settings);\n\t\tconfig.import( \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\");\n\t\t// All this below is just wiki.addEventListener, only it\n\t\t// puts the event in front, because we need to refresh our\n\t\t// relink settings before updating tiddlers.\n\t\tthis.eventListeners = this.eventListeners || {};\n\t\tthis.eventListeners.change = this.eventListeners.change || [];\n\t\tthis.eventListeners.change.unshift(function(changes) {\n\t\t\tconfig.refresh(changes);\n\t\t});\n\t\tthis._relinkConfig = config;\n\t}\n\treturn this._relinkConfig;\n};\n",
"module-type": "wikimethod",
"title": "$:/plugins/flibbles/relink/js/wikimethods.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/all_relinkable.js": {
"text": "/*\\\nmodule-type: allfilteroperator\n\nFilter function for [all[relinkable]].\nReturns all tiddlers subject to relinking.\n\n\\*/\n\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.relinkable = function(source,prefix,options) {\n\treturn options.wiki.getRelinkableTitles();\n};\n\n})();\n",
"module-type": "allfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/all_relinkable.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/impossible.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nThis filter is meant for internal Relink use only, thus it's\nundocumented and subject to change. Also, it's really not great.\n\nGiven an input of targets, (possibly just one), outputs all the tiddlers in\nwhich Relink would fail to update <<currentTiddler>> to the operand in ALL\ncases.\n\n`[all[tiddlers+system]relink:impossible<toTiddler>]`\n\n\\*/\n\nvar language = require(\"$:/plugins/flibbles/relink/js/language.js\");\n\nexports.impossible = function(source,operator,options) {\n\tvar from = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tvar to = operator.operand,\n\t\tresults = [];\n\tif (from) {\n\t\tvar records = options.wiki.getRelinkReport(\n\t\t\tfrom, to, options);\n\t\tsource(function(tiddler, title) {\n\t\t\tvar fields = records[title];\n\t\t\tif (fields) {\n\t\t\t\tvar impossible = false;\n\t\t\t\tfor (var field in fields) {\n\t\t\t\t\tlanguage.eachImpossible(fields[field], function() {\n\t\t\t\t\t\timpossible = true;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (impossible) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/impossible.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/references.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nGiven a title as an operand, returns all non-shadow tiddlers that have any\nsort of updatable reference to it.\n\n\n`relink:references[fromTiddler]]`\n\nReturns all tiddlers that reference `fromTiddler` somewhere inside them.\n\nInput is ignored. Maybe it shouldn't do this.\nAlso, maybe it should properly recon, instead of fake replacing the title with\n`__relink_dummy__`\n\\*/\n\nexports.references = function(source,operator,options) {\n\tvar fromTitle = operator.operand,\n\t\tresults = [];\n\tif (fromTitle) {\n\t\tvar records = options.wiki.getRelinkReport(\n\t\t\tfromTitle, \"$:/plugins/flibbles/relink/dummy\", options);\n\t\tfor (var title in records) {\n\t\t\tresults.push(title);\n\t\t}\n\t}\n\treturn results;\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/references.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/relink.js": {
"text": "/*\\\nmodule-type: filteroperator\n\nThis filter acts as a namespace for several small, simple filters, such as\n\n`[relink:impossible[]]`\n\n\\*/\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nvar relinkFilterOperators;\n\nfunction getRelinkFilterOperators() {\n\tif(!relinkFilterOperators) {\n\t\trelinkFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"relinkfilteroperator\",\n\t\t relinkFilterOperators);\n\t}\n\treturn relinkFilterOperators;\n}\n\nexports.relink = function(source,operator,options) {\n\tvar suffixPair = parseSuffix(operator.suffix);\n\tvar relinkFilterOperator = getRelinkFilterOperators()[suffixPair[0]];\n\tif (relinkFilterOperator) {\n\t\tvar newOperator = $tw.utils.extend({}, operator);\n\t\tnewOperator.suffix = suffixPair[1];\n\t\treturn relinkFilterOperator(source, newOperator, options);\n\t} else {\n\t\treturn [language.getString(\"Error/RelinkFilterOperator\", options)];\n\t}\n};\n\nfunction parseSuffix(suffix) {\n\tvar index = suffix? suffix.indexOf(\":\"): -1;\n\tif (index >= 0) {\n\t\treturn [suffix.substr(0, index), suffix.substr(index+1)];\n\t} else {\n\t\treturn [suffix];\n\t}\n}\n",
"module-type": "filteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/relink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/report.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nGiven a title as an operand, returns a string for each occurrence of that title\nwithin each input title.\n\n[[title]] +[relink:report[fromTiddler]]`\n\nReturns string representation of fromTiddler occurrences in title.\n\\*/\n\nexports.report = function(source,operator,options) {\n\tvar fromTitle = operator.operand,\n\t\tresults = [],\n\t\trecords = options.wiki.getRelinkReport(\n\t\t\tfromTitle, fromTitle, options);\n\tif (fromTitle) {\n\t\tsource(function(tiddler, title) {\n\t\t\tvar affectedFields = records[title];\n\t\t\tif (affectedFields) {\n\t\t\t\tfor (var field in affectedFields) {\n\t\t\t\t\tvar entry = affectedFields[field];\n\t\t\t\t\tvar signatures = entry.report();\n\t\t\t\t\tresults = results.concat(signatures);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/report.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/signatures.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nThis filter returns all input tiddlers which are a source of\nrelink configuration.\n\n`[all[tiddlers+system]relink:source[macros]]`\n\n\\*/\n\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\n\nexports.signatures = function(source,operator,options) {\n\tvar plugin = operator.operand || null;\n\tvar set = getSet(options);\n\tif (plugin === \"$:/core\") {\n\t\t// Core doesn't actually have any settings. We mean Relink\n\t\tplugin = \"$:/plugins/flibbles/relink\";\n\t}\n\tvar signatures = [];\n\tfor (var signature in set) {\n\t\tvar source = set[signature].source;\n\t\tif (options.wiki.getShadowSource(source) === plugin) {\n\t\t\tsignatures.push(signature);\n\t\t}\n\t}\n\treturn signatures;\n};\n\nexports.type = function(source,operator,options) {\n\tvar results = [];\n\tvar set = getSet(options);\n\tsource(function(tiddler, signature) {\n\t\tif (set[signature]) {\n\t\t\tresults.push(set[signature].name);\n\t\t}\n\t});\n\treturn results;\n};\n\nexports.types = function(source,operator,options) {\n\tvar def = settings.getDefaultType(options.wiki);\n\tvar types = Object.keys(settings.getTypes());\n\ttypes.sort();\n\t// move default to front\n\ttypes.sort(function(x,y) { return x === def ? -1 : y === def ? 1 : 0; });\n\treturn types;\n};\n\nexports.source = function(source,operator,options) {\n\tvar results = [];\n\tvar category = operator.suffix;\n\tvar set = getSet(options);\n\tsource(function(tiddler, signature) {\n\t\tif (set[signature]) {\n\t\t\tresults.push(set[signature].source);\n\t\t}\n\t});\n\treturn results;\n};\n\nfunction getSet(options) {\n\treturn options.wiki.getGlobalCache(\"relink-signatures\", function() {\n\t\tvar config = options.wiki.getRelinkConfig();\n\t\tvar set = Object.create(null);\n\t\tvar categories = {\n\t\t\tattributes: config.getAttributes(),\n\t\t\tfields: config.getFields(),\n\t\t\tmacros: config.getMacros(),\n\t\t\toperators: config.getOperators()};\n\t\t$tw.utils.each(categories, function(list, category) {\n\t\t\t$tw.utils.each(list, function(item, key) {\n\t\t\t\tset[category + \"/\" + key] = item;\n\t\t\t});\n\t\t});\n\t\treturn set;\n\t});\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/signatures.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/splitafter.js": {
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: relinkfilteroperator\n\nFilter operator that splits each result on the last occurance of the specified separator and returns the last bit.\n\nWhat does this have to do with relink? Nothing. I need this so I can render\nthe configuration menu. I //could// use [splitregexp[]], but then I'd be\nlimited to Tiddlywiki v5.1.20 or later.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitafter = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar index = title.lastIndexOf(operator.operand);\n\t\tif(index < 0) {\n\t\t\t$tw.utils.pushTop(results,title);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,title.substr(index+1));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n\n",
"title": "$:/plugins/flibbles/relink/js/filteroperators/splitafter.js",
"type": "application/javascript",
"module-type": "relinkfilteroperator"
},
"$:/plugins/flibbles/relink/js/fieldtypes/filter.js": {
"text": "/*\\\nThis specifies logic for updating filters to reflect title changes.\n\\*/\n\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar EntryNode = require('$:/plugins/flibbles/relink/js/utils/entry');\n\nexports.name = \"filter\";\n\nvar FilterEntry = EntryNode.newType(\"filter\");\n\nFilterEntry.prototype.report = function() {\n\treturn this.children.map(function(child) {\n\t\tif (!child.report) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn child.report();\n\t});\n};\n\nfunction OperatorEntry(operandEntry) { this.entry = operandEntry; };\nOperatorEntry.prototype.name = \"operator\";\n\nOperatorEntry.prototype.eachChild = function(method) { method(this.entry); }\n\nOperatorEntry.prototype.report = function() {\n\tvar operand = \"\";\n\tif (this.entry.report) {\n\t\toperand = this.entry.report();\n\t}\n\tvar op = this.operator;\n\tvar brackets = '[]';\n\tif (this.type === \"indirect\") {\n\t\toperand = \"{\" + operand + \"}\";\n\t} else {\n\t\toperand = \"[\" + operand + \"]\";\n\t}\n\tvar suffix = '';\n\tif (op.suffix) {\n\t\tsuffix = \":\" + op.suffix;\n\t}\n\treturn \"[\" + (op.prefix || '') + op.operator + suffix + operand + \"]\";\n};\n\n/**Returns undefined if no change was made.\n */\nexports.relink = function(filter, fromTitle, toTitle, options) {\n\tif (!options.settings.survey(filter, fromTitle, options)) {\n\t\treturn undefined;\n\t}\n\tvar filterEntry = new FilterEntry();\n\tvar relinker = new Rebuilder(filter);\n\tvar whitelist = options.settings.getOperators();\n\tvar p = 0, // Current position in the filter string\n\t\tmatch, noPrecedingWordBarrier,\n\t\twordBarrierRequired=false;\n\tvar whitespaceRegExp = /\\s+/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filter.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filter);\n\t\tnoPrecedingWordBarrier = false;\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t} else if (p != 0) {\n\t\t\tif (wordBarrierRequired) {\n\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\twordBarrierRequired = false;\n\t\t\t} else {\n\t\t\t\tnoPrecedingWordBarrier = true;\n\t\t\t}\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filter.length) {\n\t\t\tvar val;\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filter);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\t// It's a bad filter\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif(match[1]) { // prefix\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\t// We check if this is a standalone title,\n\t\t\t\t// like `[[MyTitle]]`. We treat those like\n\t\t\t\t// `\"MyTitle\"` or `MyTitle`. Not like a run.\n\t\t\t\tvar standaloneTitle = /\\[\\[([^\\]]+)\\]\\]/g;\n\t\t\t\tstandaloneTitle.lastIndex = p;\n\t\t\t\tvar alone = standaloneTitle.exec(filter);\n\t\t\t\tif (!alone || alone.index != p) {\n\t\t\t\t\t// It's a legit run\n\t\t\t\t\tp =parseFilterOperation(relinker,fromTitle,toTitle,filterEntry,filter,p,whitelist,options);\n\t\t\t\t\tif (p === undefined) {\n\t\t\t\t\t\t// The filter is malformed\n\t\t\t\t\t\t// We do nothing.\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbracketTitle = alone[1];\n\t\t\t\toperandRegExp.lastIndex = standaloneTitle.lastIndex;\n\t\t\t\tval = alone[1];\n\t\t\t} else {\n\t\t\t\t// standalone Double quoted string, single\n\t\t\t\t// quoted string, or noquote ahead.\n\t\t\t\tval = match[3] || match[4] || match[5];\n\t\t\t}\n\t\t\t// From here on, we're dealing with a standalone title\n\t\t\t// expression. like `\"MyTitle\"` or `[[MyTitle]]`\n\t\t\t// We're much more flexible about relinking these.\n\t\t\tvar preference = undefined;\n\t\t\tif (match[3]) {\n\t\t\t\tpreference = '\"';\n\t\t\t} else if (match[4]) {\n\t\t\t\tpreference = \"'\";\n\t\t\t} else if (match[5]) {\n\t\t\t\tpreference = '';\n\t\t\t}\n\t\t\tif (val === fromTitle) {\n\t\t\t\tvar entry = {name: \"title\"};\n\t\t\t\tvar newVal = wrapTitle(toTitle, preference);\n\t\t\t\tif (newVal === undefined) {\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\tentry.impossible = true;\n\t\t\t\t\t\tfilterEntry.add(entry);\n\t\t\t\t\t\tp = operandRegExp.lastIndex;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVal = \"[<\"+options.placeholder.getPlaceholderFor(toTitle,undefined,options)+\">]\";\n\t\t\t\t}\n\t\t\t\tif (newVal[0] != '[') {\n\t\t\t\t\t// not bracket enclosed\n\t\t\t\t\t// this requires whitespace\n\t\t\t\t\t// arnound it\n\t\t\t\t\tif (noPrecedingWordBarrier && !match[1]) {\n\t\t\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\t\t}\n\t\t\t\t\twordBarrierRequired = true;\n\t\t\t\t}\n\t\t\t\tentry.output = toTitle;\n\t\t\t\tentry.operator = {operator: \"title\"};\n\t\t\t\tentry.quotation = preference;\n\t\t\t\tfilterEntry.add(entry);\n\t\t\t\trelinker.add(newVal,p,operandRegExp.lastIndex);\n\t\t\t}\n\t\t\tp = operandRegExp.lastIndex;\n\t\t}\n\t}\n\tif (filterEntry.children.length > 0) {\n\t\tfilterEntry.output = relinker.results();\n\t\treturn filterEntry;\n\t}\n\treturn undefined;\n};\n\n/* Same as this.relink, except this has the added constraint that the return\n * value must be able to be wrapped in curly braces. (i.e. '{{{...}}}')\n */\nexports.relinkInBraces = function(filter, fromTitle, toTitle, options) {\n\tvar entry = this.relink(filter, fromTitle, toTitle, options);\n\tif (entry && entry.output && !canBeInBraces(entry.output)) {\n\t\t// Although I think we can actually do this one.\n\t\tdelete entry.output;\n\t\tentry.impossible = true;\n\t}\n\treturn entry;\n};\n\nfunction wrapTitle(value, preference) {\n\tvar choices = {\n\t\t\"\": function(v) {return !/[\\s\\[\\]]/.test(v); },\n\t\t\"[\": canBePrettyOperand,\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; }\n\t};\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"[\": function(v) {return \"[[\"+v+\"]]\"; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; }\n\t};\n\tif (choices[preference]) {\n\t\tif (choices[preference](value)) {\n\t\t\treturn wrappers[preference](value);\n\t\t}\n\t}\n\tfor (var quote in choices) {\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrappers[quote](value);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n}\n\nfunction parseFilterOperation(relinker, fromTitle, toTitle, logger, filterString, p, whitelist, options) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\t// Missing [ in filter expression\n\t\treturn undefined;\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = \"!\";\n\t\t\tp++;\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\t// Missing [ in filter expression\n\t\t\treturn undefined;\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tvar entry, type;\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\ttype = \"indirect\";\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tvar operand = filterString.substring(p,nextBracketPos);\n\t\t\t\tentry = refHandler.relinkInBraces(operand, fromTitle, toTitle, options);\n\t\t\t\tif (entry && entry.output) {\n\t\t\t\t\t// We don't check the whitelist.\n\t\t\t\t\t// All indirect operands convert.\n\t\t\t\t\trelinker.add(entry.output,p,nextBracketPos);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\ttype = \"string\";\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tvar operand = filterString.substring(p,nextBracketPos);\n\t\t\t\t// Check if this is a relevant operator\n\t\t\t\tvar handler = fieldType(whitelist, operator);\n\t\t\t\tif (!handler) {\n\t\t\t\t\t// This operator isn't managed. Bye.\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tentry = handler.relink(operand, fromTitle, toTitle, options);\n\t\t\t\tif (!entry) {\n\t\t\t\t\t// The fromTitle wasn't in the operand.\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!entry.output) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tvar wrapped;\n\t\t\t\tif (!canBePrettyOperand(entry.output)) {\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\tdelete entry.output;\n\t\t\t\t\t\tentry.impossible = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tvar ph = options.placeholder.getPlaceholderFor(entry.output, handler.name, options);\n\t\t\t\t\twrapped = \"<\"+ph+\">\";\n\t\t\t\t} else {\n\t\t\t\t\twrapped = \"[\"+entry.output+\"]\";\n\t\t\t\t}\n\t\t\t\trelinker.add(wrapped, p-1, nextBracketPos+1);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Unterminated regular expression\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\tif (entry) {\n\t\t\tvar operatorEntry = new OperatorEntry(entry);\n\t\t\toperatorEntry.operator = operator;\n\t\t\toperatorEntry.type = type;\n\t\t\tlogger.add(operatorEntry);\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\t// Missing closing bracket in filter expression\n\t\t\t// return undefined;\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\t// Missing ] in filter expression\n\t\treturn undefined;\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n// Returns the relinker needed for a given operator, or returns undefined.\nfunction fieldType(whitelist, operator) {\n\treturn (operator.suffix &&\n\t whitelist[operator.operator + \":\" + operator.suffix]) ||\n\t whitelist[operator.operator];\n};\n\nfunction canBePrettyOperand(value) {\n\treturn value.indexOf(']') < 0;\n};\n\nfunction canBeInBraces(value) {\n\treturn value.indexOf(\"}}}\") < 0 && value.substr(value.length-2) !== '}}';\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/filter.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/list.js": {
"text": "/*\\\nThis manages replacing titles that occur within stringLists, like,\n\nTiddlerA [[Tiddler with spaces]] [[Another Title]]\n\\*/\n\nexports.name = \"list\";\n\n/**Returns undefined if no change was made.\n * Parameter: value can literally be a list. This can happen for builtin\n * types 'list' and 'tag'. In those cases, we also return list.\n */\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tvar isModified = false,\n\t\tactualList = false,\n\t\tlist;\n\tif (typeof value !== \"string\") {\n\t\t// Not a string. Must be a list.\n\t\t// clone it, since we may make changes to this possibly\n\t\t// frozen list.\n\t\tlist = (value || []).slice(0);\n\t\tactualList = true;\n\t} else {\n\t\tlist = $tw.utils.parseStringArray(value || \"\");\n\t}\n\t$tw.utils.each(list,function (title,index) {\n\t\tif(title === fromTitle) {\n\t\t\tlist[index] = toTitle;\n\t\t\tisModified = true;\n\t\t}\n\t});\n\tif (isModified) {\n\t\tvar entry = {name: \"list\"};\n\t\t// It doesn't parse correctly alone, it won't\n\t\t// parse correctly in any list.\n\t\tif (!canBeListItem(toTitle)) {\n\t\t\tentry.impossible = true;\n\t\t} else if (actualList) {\n\t\t\tentry.output = list;\n\t\t} else {\n\t\t\tentry.output = $tw.utils.stringifyList(list);\n\t\t}\n\t\treturn entry;\n\t}\n\treturn undefined;\n};\n\nfunction canBeListItem(value) {\n\tvar regexp = /\\]\\][^\\S\\xA0]/m;\n\treturn !regexp.test(value);\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/list.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/reference.js": {
"text": "/*\\\nThis manages replacing titles that occur inside text references,\n\ntiddlerTitle\ntiddlerTitle!!field\n!!field\ntiddlerTitle##propertyIndex\n\\*/\n\nexports.name = \"reference\";\n\nfunction ReferenceEntry(reference) {\n\tthis.reference = reference;\n};\nReferenceEntry.prototype.name = \"reference\";\n\nReferenceEntry.prototype.report = function() {\n\tif (this.reference.field) {\n\t\treturn [\"!!\" + this.reference.field];\n\t}\n\tif (this.reference.index) {\n\t\treturn [\"##\" + this.reference.index];\n\t}\n\treturn [\"\"];\n};\n\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tvar entry;\n\tif (value) {\n\t\tvar reference = $tw.utils.parseTextReference(value);\n\t\tif (reference.title === fromTitle) {\n\t\t\tentry = new ReferenceEntry(reference);\n\t\t\tif (!exports.canBePretty(toTitle)) {\n\t\t\t\tentry.impossible = true;\n\t\t\t} else {\n\t\t\t\treference.title = toTitle;\n\t\t\t\tentry.output = exports.toString(reference);\n\t\t\t}\n\t\t}\n\t}\n\treturn entry;\n};\n\n/* Same as this.relink, except this has the added constraint that the return\n * value must be able to be wrapped in curly braces.\n */\nexports.relinkInBraces = function(value, fromTitle, toTitle, options) {\n\tvar log = this.relink(value, fromTitle, toTitle, options);\n\tif (log && log.output && toTitle.indexOf(\"}\") >= 0) {\n\t\tdelete log.output;\n\t\tlog.impossible = true;\n\t}\n\treturn log;\n};\n\nexports.toString = function(textReference) {\n\tvar title = textReference.title || '';\n\tif (textReference.field) {\n\t\treturn title + \"!!\" + textReference.field;\n\t} else if (textReference.index) {\n\t\treturn title + \"##\" + textReference.index;\n\t}\n\treturn title;\n};\n\nexports.canBePretty = function(title) {\n\treturn !title || (title.indexOf(\"!!\") < 0 && title.indexOf(\"##\") < 0);\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/reference.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/title.js": {
"text": "/*\\\nThis specifies logic for replacing a single-tiddler field. This is the\nsimplest kind of field type. One title swaps out for the other.\n\\*/\n\n// NOTE TO MODDERS: If you're making your own field types, the name must be\n// alpha characters only.\nexports.name = 'title';\n\n/**Returns undefined if no change was made.\n */\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tif (value === fromTitle) {\n\t\treturn {name: \"title\", output: toTitle};\n\t}\n\treturn undefined;\n};\n\n// This is legacy support for when 'title' was known as 'field'\nexports.aliases = ['field', 'yes'];\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/title.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/wikitext.js": {
"text": "/*\\\nThis specifies logic for updating filters to reflect title changes.\n\\*/\n\nexports.name = \"wikitext\";\n\nvar type = 'text/vnd.tiddlywiki';\n\nvar WikiParser = require(\"$:/core/modules/parsers/wikiparser/wikiparser.js\")[type];\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder.js\");\nvar EntryNode = require('$:/plugins/flibbles/relink/js/utils/entry');\n\nvar WikitextEntry = EntryNode.newType(\"wikitext\");\n\nWikitextEntry.prototype.report = function() {\n\tvar output = [];\n\t$tw.utils.each(this.children, function(child) {\n\t\t// All wikitext children should be able to report\n\t\t$tw.utils.each(child.report(), function(report) {\n\t\t\toutput.push(report);\n\t\t});\n\t});\n\treturn output;\n};\n\n\nfunction collectRules() {\n\tvar rules = Object.create(null);\n\t$tw.modules.forEachModuleOfType(\"relinkwikitextrule\", function(title, exports) {\n\t\tvar names = exports.name;\n\t\tif (typeof names === \"string\") {\n\t\t\tnames = [names];\n\t\t}\n\t\tfor (var i = 0; i < names.length; i++) {\n\t\t\trules[names[i]] = exports;\n\t\t}\n\t});\n\treturn rules;\n}\n\nfunction WikiRelinker(text, title, toTitle, options) {\n\tWikiParser.call(this, null, text, options);\n\tif (!this.relinkMethodsInjected) {\n\t\tvar rules = collectRules();\n\t\t$tw.utils.each([this.pragmaRuleClasses, this.blockRuleClasses, this.inlineRuleClasses], function(classList) {\n\t\t\tfor (var name in classList) {\n\t\t\t\tif (rules[name]) {\n\t\t\t\t\tdelete rules[name].name;\n\t\t\t\t\t$tw.utils.extend(classList[name].prototype, rules[name]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tWikiRelinker.prototype.relinkMethodsInjected = true;\n\t}\n\tthis.title = title;\n\tthis.toTitle = toTitle;\n\tthis.inlineRules = this.inlineRules.concat(this.pragmaRules, this.blockRules);\n\t// We work through relinkRules so we can change it later.\n\t// relinkRules is inlineRules so it gets touched up by amendRules().\n\tthis.relinkRules = this.inlineRules;\n};\n\nWikiRelinker.prototype = Object.create(WikiParser.prototype);\nWikiRelinker.prototype.parsePragmas = function() {return []; };\nWikiRelinker.prototype.parseInlineRun = function() {};\nWikiRelinker.prototype.parseBlocks = function() {};\n\nexports.relink = function(wikitext, fromTitle, toTitle, options) {\n\t// fromTitle doesn't even show up plaintext. No relinking to do.\n\tif (!options.settings.survey(wikitext, fromTitle, options)) {\n\t\treturn undefined;\n\t}\n\tvar builder = new Rebuilder(wikitext),\n\t\tparser = new WikiRelinker(wikitext, options.currentTiddler, toTitle, options),\n\t\tmatchingRule,\n\t\tentry = new WikitextEntry(),\n\t\tnewOptions = $tw.utils.extend({}, options);\n\tnewOptions.settings = options.settings.createChildLibrary(options.currentTiddler);\n\twhile (matchingRule = parser.findNextMatch(parser.relinkRules, parser.pos)) {\n\t\tif (matchingRule.rule.relink) {\n\t\t\tvar newEntry = matchingRule.rule.relink(wikitext, fromTitle, toTitle, newOptions);\n\t\t\tif (newEntry !== undefined) {\n\t\t\t\tentry.add(newEntry);\n\t\t\t\tif (newEntry.output) {\n\t\t\t\t\tbuilder.add(newEntry.output, matchingRule.matchIndex, parser.pos);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (matchingRule.rule.matchRegExp !== undefined) {\n\t\t\t\tparser.pos = matchingRule.rule.matchRegExp.lastIndex;\n\t\t\t} else {\n\t\t\t\t// We can't easily determine the end of this\n\t\t\t\t// rule match. We'll \"parse\" it so that\n\t\t\t\t// parser.pos gets updated, but we throw away\n\t\t\t\t// the results.\n\t\t\t\tmatchingRule.rule.parse();\n\t\t\t}\n\t\t}\n\t}\n\tif (entry.children.length > 0) {\n\t\tentry.output = builder.results();\n\t\treturn entry;\n\t}\n\treturn undefined;\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/wikitext.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/fields.js": {
"text": "/*\\\n\nHandles all fields specified in the plugin configuration. Currently, this\nonly supports single-value fields.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar EntryNode = require('$:/plugins/flibbles/relink/js/utils/entry');\n\nvar FieldEntry = EntryNode.newType(\"field\");\n\nFieldEntry.prototype.report = function() {\n\tvar self = this;\n\tvar output = [];\n\t$tw.utils.each(this.children, function(child) {\n\t\tif (child.report) {\n\t\t\t$tw.utils.each(child.report(), function(report) {\n\t\t\t\tif (report) {\n\t\t\t\t\toutput.push(self.field + \": \" + report);\n\t\t\t\t} else {\n\t\t\t\t\toutput.push(self.field);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\toutput.push(self.field);\n\t\t}\n\t});\n\treturn output;\n};\n\nexports['fields'] = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar fields = options.settings.getFields();\n\t$tw.utils.each(fields, function(handler, field) {\n\t\tvar input = tiddler.fields[field];\n\t\tvar entry = handler.relink(input, fromTitle, toTitle, options);\n\t\tif (entry !== undefined) {\n\t\t\tvar fieldEntry = new FieldEntry();\n\t\t\tfieldEntry.field = field;\n\t\t\tfieldEntry.output = entry.output;\n\t\t\tfieldEntry.add(entry);\n\t\t\tchanges[field] = fieldEntry;\n\t\t}\n\t});\n};\n",
"module-type": "relinkoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/fields.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text.js": {
"text": "/*\\\n\nDepending on the tiddler type, this will apply textOperators which may\nrelink titles within the body.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar defaultOperator = \"text/vnd.tiddlywiki\";\n\nvar textOperators = Object.create(null);\n$tw.modules.applyMethods('relinktextoperator', textOperators);\n\n// $:/DefaultTiddlers is a tiddler which has type \"text/vnd.tiddlywiki\",\n// but it lies. It doesn't contain wikitext. It contains a filter, so\n// we pretend it has a filter type.\n// If you want to be able to add more exceptions for your plugin, let me know.\nvar exceptions = {\n\t\"$:/DefaultTiddlers\": \"text/x-tiddler-filter\"\n};\n\nexports['text'] = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar fields = tiddler.fields;\n\tif (fields.text) {\n\t\tvar type = exceptions[fields.title] || fields.type || defaultOperator;\n\t\tif (textOperators[type]) {\n\t\t\tvar entry = textOperators[type].call(this, tiddler, fromTitle, toTitle, options);\n\t\t\tif (entry) {\n\t\t\t\tchanges.text = entry;\n\t\t\t}\n\t\t}\n\t}\n};\n",
"module-type": "relinkoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/filtertext.js": {
"text": "/*\\\n\nThis relinks tiddlers which contain filters in their body, as oppose to\nwikitext.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/settings\").getType('filter');\n\nexports['text/x-tiddler-filter'] = function(tiddler, fromTitle, toTitle, options) {\n\treturn filterHandler.relink(tiddler.fields.text, fromTitle, toTitle, options)\n};\n",
"module-type": "relinktextoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/filtertext.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext.js": {
"text": "/*\\\n\nChecks for fromTitle in a tiddler's text. If found, sees if it's relevant,\nand tries to swap it out if it is.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar type = 'text/vnd.tiddlywiki';\nvar Placeholder = require(\"$:/plugins/flibbles/relink/js/utils/placeholder.js\");\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar wikitextHandler = settings.getType('wikitext');\n\nexports[type] = function(tiddler, fromTitle, toTitle, options) {\n\tvar placeholder = new Placeholder();\n\tvar currentOptions = $tw.utils.extend(\n\t\t{\n\t\t\tcurrentTiddler: tiddler.fields.title,\n\t\t\tplaceholder: placeholder\n\t\t}, options);\n\tvar entry = wikitextHandler.relink(tiddler.fields.text, fromTitle, toTitle, currentOptions);\n\tif (entry && entry.output) {\n\t\t// If there's output, we've also got to prepend any macros\n\t\t// that the placeholder defined.\n\t\tvar preamble = placeholder.getPreamble();\n\t\tentry.output = preamble + entry.output;\n\t}\n\treturn entry;\n}\n",
"module-type": "relinktextoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/code.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles code blocks. Or rather //doesn't// handle them, since we should\nignore their contents.\n\n\"`` [[Renamed Title]] ``\" will remain unchanged.\n\n\\*/\n\nexports.name = [\"codeinline\", \"codeblock\"];\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar reEnd;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// I'm lazy. This relink method works for both codeblock and codeinline\n\tif (this.match[0].length > 2) {\n\t\t// Must be a codeblock\n\t\treEnd = /\\r?\\n```$/mg;\n\t} else {\n\t\t// Must be a codeinline\n\t\treEnd = new RegExp(this.match[1], \"mg\");\n\t}\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(text);\n\tif (match) {\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn undefined;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/code.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/comment.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles comment blocks. Or rather //doesn't// handle them, since we should\nignore their contents.\n\n\"<!-- [[Renamed Title]] -->\" will remain unchanged.\n\n\\*/\n\nexports.name = [\"commentinline\", \"commentblock\"];\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\treturn undefined;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/comment.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/filteredtransclude.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement of filtered transclusions in wiki text like,\n\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n\nThis renames both the list and the template field.\n\n\\*/\n\nexports.name = ['filteredtranscludeinline', 'filteredtranscludeblock'];\n\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/settings\").getType('filter');\nvar utils = require(\"./utils.js\");\nvar EntryNode = require('$:/plugins/flibbles/relink/js/utils/entry');\n\nvar FilteredTranscludeEntry = EntryNode.newType(\"filteredtransclude\");\n\nFilteredTranscludeEntry.prototype.report = function() {\n\tvar output = [];\n\tvar self = this;\n\t$tw.utils.each(this.children, function(child) {\n\t\tif (child.name === \"filter\") {\n\t\t\tvar append = \"}}}\";\n\t\t\tif (self.template) {\n\t\t\t\tappend = \"||\" + self.template + append;\n\t\t\t}\n\t\t\t$tw.utils.each(child.report(), function(report) {\n\t\t\t\toutput.push(\"{{{\" + report + append);\n\t\t\t});\n\t\t} else {\n\t\t\t// Must be the template\n\t\t\toutput.push(\"{{{\" + self.filter + \"||}}}\");\n\t\t}\n\t});\n\treturn output;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar m = this.match;\n\t\tfilter = m[1],\n\t\ttooltip = m[2],\n\t\ttemplate = m[3],\n\t\tstyle = m[4],\n\t\tclasses = m[5],\n\t\tparser = this.parser,\n\t\tentry = new FilteredTranscludeEntry();\n\tparser.pos = this.matchRegExp.lastIndex;\n\tvar modified = false;\n\n\tvar filterEntry = filterHandler.relink(filter, fromTitle, toTitle, options);\n\tif (filterEntry !== undefined) {\n\t\tentry.add(filterEntry);\n\t\tif (filterEntry.output) {\n\t\t\tmodified = true;\n\t\t\tfilter = filterEntry.output;\n\t\t}\n\t}\n\n\tif ($tw.utils.trim(template) === fromTitle) {\n\t\t// preserves user-inputted whitespace\n\t\ttemplate = template.replace(fromTitle, toTitle);\n\t\tentry.add({name: \"title\", output: template});\n\t\tmodified = true;\n\t}\n\tif (!modified) {\n\t\tif (entry.children.length <= 0) {\n\t\t\treturn undefined;\n\t\t}\n\t} else {\n\t\tvar output = this.makeFilteredtransclude(filter, tooltip, template, style, classes, options);\n\t\tif (output === undefined) {\n\t\t\tentry.impossible = true;\n\t\t} else {\n\t\t\t// By copying over the ending newline of the original\n\t\t\t// text if present, thisrelink method thus works for\n\t\t\t// both the inline and block rule\n\t\t\tentry.output = output + utils.getEndingNewline(m[0]);\n\t\t}\n\t\tentry.filter = filter;\n\t}\n\tentry.template = template;\n\treturn entry;\n};\n\nexports.makeFilteredtransclude = function(filter, tooltip, template, style, classes, options) {\n\tif (canBePretty(filter) && canBePrettyTemplate(template)) {\n\t\treturn prettyList(filter, tooltip, template, style, classes);\n\t} else {\n\t\treturn widget(filter, tooltip, template, style, classes, options);\n\t}\n};\n\nfunction prettyList(filter, tooltip, template, style, classes) {\n\tif (tooltip === undefined) {\n\t\ttooltip = '';\n\t} else {\n\t\ttooltip = \"|\" + tooltip;\n\t}\n\tif (template === undefined) {\n\t\ttemplate = '';\n\t} else {\n\t\ttemplate = \"||\" + template;\n\t}\n\tif (classes === undefined) {\n\t\tclasses = '';\n\t} else {\n\t\tclasses = \".\" + classes;\n\t}\n\tstyle = style || '';\n\treturn \"{{{\"+filter+tooltip+template+\"}}\"+style+\"}\"+classes;\n};\n\n/** Returns a filtered transclude as a string of a widget.\n */\nfunction widget(filter, tooltip, template, style, classes, options) {\n\tvar cannotDo = false;\n\tif (classes !== undefined) {\n\t\tclasses = classes.split('.').join(' ');\n\t}\n\tfunction wrap(name, value, treatAsTitle) {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\t\tvar wrappedValue = utils.wrapAttributeValue(value);\n\t\tif (wrappedValue === undefined) {\n\t\t\tif (!options.placeholder) {\n\t\t\t\tcannotDo = true;\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tvar category = treatAsTitle ? undefined : name;\n\t\t\twrappedValue = \"<<\"+options.placeholder.getPlaceholderFor(value,category,options)+\">>\";\n\t\t}\n\t\treturn \" \"+name+\"=\"+wrappedValue;\n\t};\n\tvar widget = [\n\t\t\"<$list\",\n\t\twrap(\"filter\", filter),\n\t\twrap(\"tooltip\", tooltip),\n\t\twrap(\"template\", template, true),\n\t\twrap(\"style\", style),\n\t\twrap(\"itemClass\", classes),\n\t\t\"/>\"\n\t];\n\tif (cannotDo) {\n\t\treturn undefined;\n\t}\n\treturn widget.join('');\n};\n\nfunction canBePretty(filter) {\n\treturn filter.indexOf('|') < 0 && filter.indexOf('}}') < 0;\n};\n\nfunction canBePrettyTemplate(template) {\n\treturn !template || (\n\t\ttemplate.indexOf('|') < 0\n\t\t&& template.indexOf('{') < 0\n\t\t&& template.indexOf('}') < 0);\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/filteredtransclude.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in attributes of widgets and html elements\nThis is configurable to select exactly which attributes of which elements\nshould be changed.\n\n<$link to=\"TiddlerTitle\" />\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar refHandler = settings.getType('reference');\nvar filterHandler = settings.getType('filter');\nvar macrocall = require(\"./macrocall.js\");\nvar EntryNode = require('$:/plugins/flibbles/relink/js/utils/entry');\n\nexports.name = \"html\";\n\nvar HtmlEntry = EntryNode.newCollection(\"html\");\n\nHtmlEntry.prototype.forEachChildReport = function(report, attribute, type) {\n\tvar rtn = attribute;\n\tif (type === \"filtered\") {\n\t\trtn += \"={{{\" + report + \"}}}\";\n\t} else if (type === \"indirect\") {\n\t\trtn += \"={{\" + report + \"}}\";\n\t} else if (type === \"macro\") {\n\t\trtn += \"=\"+report;\n\t} else{\n\t\t// must be string.\n\t\tif (report.length > 0) {\n\t\t\trtn += '=\"' + report + '\"';\n\t\t}\n\t}\n\treturn \"<\" + this.element + \" \" + rtn + \" />\";\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar managedElement = options.settings.getAttribute(this.nextTag.tag),\n\t\tbuilder = new Rebuilder(text, this.nextTag.start);\n\tvar importFilterAttr;\n\tvar widgetEntry = new HtmlEntry();\n\twidgetEntry.attributes = Object.create(null);\n\twidgetEntry.element = this.nextTag.tag;\n\tfor (var attributeName in this.nextTag.attributes) {\n\t\tvar attr = this.nextTag.attributes[attributeName];\n\t\tvar nextEql = text.indexOf('=', attr.start);\n\t\t// This is the rare case of changing tiddler\n\t\t// \"true\" to something else when \"true\" is\n\t\t// implicit, like <$link to /> We ignore those.\n\t\tif (nextEql < 0 || nextEql > attr.end) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (this.nextTag.tag === \"$importvariables\" && attributeName === \"filter\") {\n\t\t\timportFilterAttr = attr;\n\t\t}\n\t\tvar oldLength, quotedValue, entry;\n\t\tif (attr.type === \"string\") {\n\t\t\tvar handler = getAttributeHandler(this.nextTag, attributeName, options);\n\t\t\tif (!handler) {\n\t\t\t\t// We don't manage this attribute. Bye.\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tentry = handler.relink(attr.value, fromTitle, toTitle, options);\n\t\t\tif (entry === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (entry.output) {\n\t\t\t\tvar quote = utils.determineQuote(text, attr);\n\t\t\t\toldLength = attr.value.length + (quote.length * 2);\n\t\t\t\tquotedValue = utils.wrapAttributeValue(entry.output,quote);\n\t\t\t\tif (quotedValue === undefined) {\n\t\t\t\t\t// The value was unquotable. We need to make\n\t\t\t\t\t// a macro in order to replace it.\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\t// but we can't...\n\t\t\t\t\t\tentry.impossible = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar value = options.placeholder.getPlaceholderFor(entry.output,handler.name,options)\n\t\t\t\t\t\tquotedValue = \"<<\"+value+\">>\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (attr.type === \"indirect\") {\n\t\t\tentry = refHandler.relinkInBraces(attr.textReference, fromTitle, toTitle, options);\n\t\t\tif (entry === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!entry.impossible) {\n\t\t\t\t// +4 for '{{' and '}}'\n\t\t\t\toldLength = attr.textReference.length + 4;\n\t\t\t\tquotedValue = \"{{\"+entry.output+\"}}\";\n\t\t\t}\n\t\t} else if (attr.type === \"filtered\") {\n\t\t\tentry = filterHandler.relinkInBraces(attr.filter, fromTitle, toTitle, options);\n\t\t\tif (entry === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!entry.impossible) {\n\t\t\t\t// +6 for '{{{' and '}}}'\n\t\t\t\toldLength = attr.filter.length + 6;\n\t\t\t\tquotedValue = \"{{{\"+ entry.output +\"}}}\";\n\t\t\t}\n\t\t} else if (attr.type === \"macro\") {\n\t\t\tvar macro = attr.value;\n\t\t\tentry = macrocall.relinkAttribute(macro, text, fromTitle, toTitle, options);\n\t\t\tif (entry === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!entry.impossible) {\n\t\t\t\t// already includes '<<' and '>>'\n\t\t\t\toldLength = macro.end-macro.start;\n\t\t\t\tquotedValue = entry.output;\n\t\t\t}\n\t\t}\n\t\twidgetEntry.addChild(entry, attributeName, attr.type);\n\t\tif (quotedValue === undefined) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (this.nextTag.tag === \"$importvariables\" && attributeName === \"filter\") {\n\t\t\t// If this is an import variable filter, we gotta\n\t\t\t// remember this new value when we import lower down.\n\t\t\timportFilterAttr = quotedValue;\n\t\t}\n\t\t// We count backwards from the end to preserve whitespace\n\t\tvar valueStart = attr.end - oldLength;\n\t\tbuilder.add(quotedValue, valueStart, attr.end);\n\t}\n\tif (importFilterAttr) {\n\t\tprocessImportFilter(importFilterAttr, options);\n\t}\n\tthis.parser.pos = this.nextTag.end;\n\tif (widgetEntry.hasChildren()) {\n\t\twidgetEntry.output = builder.results(this.nextTag.end);\n\t\treturn widgetEntry;\n\t}\n\treturn undefined;\n};\n\n/** Returns the field handler for the given attribute of the given widget.\n * If this returns undefined, it means we don't handle it. So skip.\n */\nfunction getAttributeHandler(widget, attributeName, options) {\n\tif (widget.tag === \"$macrocall\") {\n\t\tvar nameAttr = widget.attributes[\"$name\"];\n\t\tif (nameAttr) {\n\t\t\tvar macro = options.settings.getMacro(nameAttr.value);\n\t\t\tif (macro) {\n\t\t\t\treturn macro[attributeName];\n\t\t\t}\n\t\t}\n\t} else {\n\t\tvar element = options.settings.getAttribute(widget.tag);\n\t\tif (element) {\n\t\t\treturn element[attributeName];\n\t\t}\n\t}\n\treturn undefined;\n};\n\nfunction computeAttribute(attribute, options) {\n\tvar value;\n\tif(attribute.type === \"filtered\") {\n\t\tvar parentWidget = options.settings.getVariableWidget();\n\t\tvalue = options.wiki.filterTiddlers(attribute.filter,parentWidget)[0] || \"\";\n\t} else if(attribute.type === \"indirect\") {\n\t\tvar parentWidget = options.settings.getVariableWidget();\n\t\tvalue = options.wiki.getTextReference(attribute.textReference,\"\",parentWidget.variables.currentTiddler.value);\n\t} else if(attribute.type === \"macro\") {\n\t\tvar parentWidget = options.settings.getVariableWidget();\n\t\tvalue = parentWidget.getVariable(attribute.value.name,{params: attribute.value.params});\n\t} else { // String attribute\n\t\tvalue = attribute.value;\n\t}\n\treturn value;\n};\n\n// This processes a <$importvariables> filter attribute and adds any new\n// variables to our parser.\nfunction processImportFilter(importAttribute, options) {\n\tif (typeof importAttribute === \"string\") {\n\t\t// It was changed. Reparse it. It'll be a quoted\n\t\t// attribute value. Add a dummy attribute name.\n\t\timportAttribute = $tw.utils.parseAttribute(\"p=\"+importAttribute, 0)\n\t}\n\tvar importFilter = computeAttribute(importAttribute, options);\n\toptions.settings.import(importFilter);\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/image.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in wiki text inline rules, like,\n\n[img[tiddler.jpg]]\n\n[img width=23 height=24 [Description|tiddler.jpg]]\n\n\\*/\n\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/settings\").getType('filter');\nvar macrocall = require(\"./macrocall.js\");\nvar utils = require(\"./utils.js\");\nvar EntryNode = require('$:/plugins/flibbles/relink/js/utils/entry');\n\nexports.name = \"image\";\n\nvar ImageEntry = EntryNode.newCollection(\"image\");\n\nImageEntry.prototype.forEachChildReport = function(report, attribute, type) {\n\tvar value;\n\tif (attribute === \"source\") {\n\t\tif (this.tooltip) {\n\t\t\tvalue = \"[img[\" + this.tooltip.value + \"]]\";\n\t\t} else {\n\t\t\tvalue = \"[img[]]\";\n\t\t}\n\t} else {\n\t\tif (type === \"indirect\") {\n\t\t\tvalue = \"{{\" + report + \"}}\";\n\t\t} else if (type === \"filtered\") {\n\t\t\tvalue = \"{{{\" + report + \"}}}\";\n\t\t} else if (type === \"macro\") {\n\t\t\t// angle brackets already added...\n\t\t\tvalue = report;\n\t\t}\n\t\tvalue = \"[img \" + attribute + \"=\"+ value + \"]\";\n\t}\n\treturn value;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar ptr = this.nextImage.start;\n\tvar builder = new Rebuilder(text, ptr);\n\tvar makeWidget = false;\n\tvar skipSource = false;\n\tvar imageEntry = new ImageEntry();\n\timageEntry.attributes = Object.create(null);\n\tif (this.nextImage.attributes.source.value === fromTitle && !canBePretty(toTitle, this.nextImage.attributes.tooltip)) {\n\t\tif (utils.wrapAttributeValue(toTitle) || options.placeholder) {\n\t\t\tmakeWidget = true;\n\t\t\tbuilder.add(\"<$image\", ptr, ptr+4);\n\t\t} else {\n\t\t\t// We won't be able to make a placeholder to replace\n\t\t\t// the source attribute. We check now so we don't\n\t\t\t// prematurely convert into a widget.\n\t\t\t// Keep going in case other attributes need replacing.\n\t\t\tskipSource = true;\n\t\t}\n\t}\n\tptr += 4; //[img\n\tvar inSource = false;\n\tfor (var attributeName in this.nextImage.attributes) {\n\t\tvar attr = this.nextImage.attributes[attributeName];\n\t\tif (attributeName === \"source\" || attributeName === \"tooltip\") {\n\t\t\tif (inSource) {\n\t\t\t\tptr = text.indexOf('|', ptr);\n\t\t\t} else {\n\t\t\t\tptr = text.indexOf('[', ptr);\n\t\t\t\tinSource = true;\n\t\t\t}\n\t\t\tif (makeWidget) {\n\t\t\t\tif (\" \\t\\n\".indexOf(text[ptr-1]) >= 0) {\n\t\t\t\t\tbuilder.add('', ptr, ptr+1);\n\t\t\t\t} else {\n\t\t\t\t\tbuilder.add(' ', ptr, ptr+1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tptr += 1;\n\t\t}\n\t\tif (attributeName === \"source\") {\n\t\t\tptr = text.indexOf(attr.value, ptr);\n\t\t\tif (attr.value === fromTitle) {\n\t\t\t\tvar entry = {name: \"title\"};\n\t\t\t\tif (makeWidget) {\n\t\t\t\t\tvar quotedValue = utils.wrapAttributeValue(toTitle);\n\t\t\t\t\tif (quotedValue === undefined) {\n\t\t\t\t\t\tvar key = options.placeholder.getPlaceholderFor(toTitle, undefined, options);\n\t\t\t\t\t\tbuilder.add(\"source=<<\"+key+\">>\", ptr, ptr+fromTitle.length);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbuilder.add(\"source=\"+quotedValue, ptr, ptr+fromTitle.length);\n\t\t\t\t\t}\n\t\t\t\t} else if (!skipSource) {\n\t\t\t\t\tbuilder.add(toTitle, ptr, ptr+fromTitle.length);\n\t\t\t\t} else {\n\t\t\t\t\tentry.impossible = true;\n\t\t\t\t}\n\t\t\t\timageEntry.addChild(entry, attributeName, \"string\");\n\t\t\t}\n\t\t\tptr = text.indexOf(']]', ptr);\n\t\t\tif (makeWidget) {\n\t\t\t\tbuilder.add(\"/>\", ptr, ptr+2);\n\t\t\t}\n\t\t\tptr += 2;\n\t\t} else if (attributeName === \"tooltip\") {\n\t\t\tif (makeWidget) {\n\t\t\t\tptr = text.indexOf(attr.value, ptr);\n\t\t\t\tvar quotedValue = utils.wrapAttributeValue(attr.value);\n\t\t\t\tbuilder.add(\"tooltip=\"+quotedValue, ptr, ptr+attr.value.length);\n\t\t\t}\n\t\t\timageEntry.tooltip = this.nextImage.attributes.tooltip;\n\t\t} else {\n\t\t\tptr = relinkAttribute(attr, builder, fromTitle, toTitle, imageEntry, options);\n\t\t}\n\t}\n\tthis.parser.pos = ptr;\n\tif (imageEntry.hasChildren()) {\n\t\timageEntry.output = builder.results(ptr);\n\t\treturn imageEntry;\n\t}\n\treturn undefined;\n};\n\nfunction relinkAttribute(attribute, builder, fromTitle, toTitle, entry, options) {\n\tvar text = builder.text;\n\tvar ptr = text.indexOf(attribute.name, attribute.start);\n\tvar end;\n\tptr += attribute.name.length;\n\tptr = text.indexOf('=', ptr);\n\tif (attribute.type === \"string\") {\n\t\tptr = text.indexOf(attribute.value, ptr)\n\t\tvar quote = utils.determineQuote(text, attribute);\n\t\t// ignore first quote. We already passed it\n\t\tend = ptr + quote.length + attribute.value.length;\n\t} else if (attribute.type === \"indirect\") {\n\t\tptr = text.indexOf('{{', ptr);\n\t\tvar end = ptr + attribute.textReference.length + 4;\n\t\tvar ref = refHandler.relinkInBraces(attribute.textReference, fromTitle, toTitle, options);\n\t\tif (ref) {\n\t\t\tentry.addChild(ref, attribute.name, \"indirect\");\n\t\t\tif (ref.output) {\n\t\t\t\tbuilder.add(\"{{\"+ref.output+\"}}\", ptr, end);\n\t\t\t}\n\t\t}\n\t} else if (attribute.type === \"filtered\") {\n\t\tptr = text.indexOf('{{{', ptr);\n\t\tvar end = ptr + attribute.filter.length + 6;\n\t\tvar filter = filterHandler.relinkInBraces(attribute.filter, fromTitle, toTitle, options);\n\t\tif (filter !== undefined) {\n\t\t\tentry.addChild(filter, attribute.name, \"filtered\");\n\t\t\tif (filter.output) {\n\t\t\t\tvar quoted = \"{{{\"+filter.output+\"}}}\";\n\t\t\t\tbuilder.add(quoted, ptr, end);\n\t\t\t}\n\t\t}\n\t} else if (attribute.type === \"macro\") {\n\t\tptr = text.indexOf(\"<<\", ptr);\n\t\tvar end = attribute.value.end;\n\t\tvar macro = attribute.value;\n\t\toldValue = attribute.value;\n\t\tvar macroEntry = macrocall.relinkAttribute(macro, text, fromTitle, toTitle, options);\n\t\tif (macroEntry !== undefined) {\n\t\t\tentry.addChild(macroEntry, attribute.name, \"macro\");\n\t\t\tif (macroEntry.output) {\n\t\t\t\tbuilder.add(macroEntry.output, ptr, end);\n\t\t\t}\n\t\t}\n\t}\n\treturn end;\n};\n\nfunction canBePretty(title, tooltip) {\n\treturn title.indexOf(']') < 0 && (tooltip || title.indexOf('|') < 0);\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/image.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/import.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles import pragmas\n\n\\import [tag[MyTiddler]]\n\\*/\n\nvar settings = require(\"$:/plugins/flibbles/relink/js/settings.js\");\nvar filterRelinker = settings.getType('filter');\n\nexports.name = \"import\";\n\nfunction ImportEntry(filterEntry) {\n\tthis.filter = filterEntry;\n};\nImportEntry.prototype.name = \"import\";\nImportEntry.prototype.eachChild = function(block) { return block(this.filter);};\nImportEntry.prototype.report = function() {\n\treturn this.filter.report().map(function(report) {\n\t\tif (report.length > 0) {\n\t\t\treturn \"\\\\import \" + report;\n\t\t} else {\n\t\t\treturn \"\\\\import\";\n\t\t}\n\t});\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\t// In this one case, I'll let the parser parse out the filter and move\n\t// the ptr.\n\tvar start = this.matchRegExp.lastIndex;\n\tvar parseTree = this.parse();\n\tvar filter = parseTree[0].attributes.filter.value;\n\tvar entry = undefined;\n\tvar filterEntry = filterRelinker.relink(filter, fromTitle, toTitle, options);\n\tif (filterEntry !== undefined) {\n\t\tentry = new ImportEntry(filterEntry);\n\t\tvar newline = text.substring(start+filter.length, this.parser.pos);\n\t\tif (filterEntry.output) {\n\t\t\tfilter = filterEntry.output;\n\t\t\tentry.output = \"\\\\import \" + filter + newline;\n\t\t}\n\t}\n\n\t// Before we go, we need to actually import the variables\n\t// it's calling for, and any /relink pragma\n\toptions.settings.import(filter);\n\n\treturn entry;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/import.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrocall.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles macro calls.\n\n<<myMacro '[[MyFilter]]' 'myTitle'>>\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar EntryNode = require('$:/plugins/flibbles/relink/js/utils/entry');\n\nexports.name = [\"macrocallinline\", \"macrocallblock\"];\n\n// Error thrown when a macro's definition is needed, but can't be found.\nfunction CannotFindMacroDef() {};\nCannotFindMacroDef.prototype.impossible = true;\nCannotFindMacroDef.prototype.name = \"macroparam\";\n// Failed relinks due to missing definitions aren't reported for now.\n// I may want to do something special later on.\nCannotFindMacroDef.prototype.report = function() { return []; };\n\nvar MacrocallEntry = EntryNode.newCollection(\"macrocall\");\n\nMacrocallEntry.prototype.forEachChildReport = function(report, parameter, type) {\n\tvar rtn;\n\tif (report.length > 0) {\n\t\trtn = parameter + ': \"' + report + '\"';\n\t} else {\n\t\trtn = parameter;\n\t}\n\treturn \"<<\" + this.macro + \" \" + rtn + \">>\";\n};\n\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2],\n\t\tmacroText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (!options.settings.survey(macroText, fromTitle, options)) {\n\t\treturn undefined;\n\t}\n\tvar start = this.matchRegExp.lastIndex - this.match[0].length;\n\tvar managedMacro = options.settings.getMacro(macroName);\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tvar offset = macroName.length+2;\n\toffset = $tw.utils.skipWhiteSpace(macroText, offset);\n\tvar params = parseParams(paramString, offset+start);\n\tvar macroInfo = {\n\t\tname: macroName,\n\t\tstart: start,\n\t\tend: this.matchRegExp.lastIndex,\n\t\tparams: params\n\t};\n\tvar mayBeWidget = true;\n\tvar names = getParamNames(macroInfo.name, macroInfo.params, options);\n\tif (names === undefined) {\n\t\t// Needed the definition, and couldn't find it. So if a single\n\t\t// parameter needs to placeholder, just fail.\n\t\tmayBeWidget = false;\n\t}\n\tvar entry = relinkMacroInvocation(macroInfo, text, fromTitle, toTitle, mayBeWidget, options);\n\tif (entry && entry.output) {\n\t\tentry.output =macroToString(entry.output, text, names, options);\n\t}\n\treturn entry;\n};\n\n/** Relinks macros that occur as attributes, like <$element attr=<<...>> />\n * Processes the same, except it can't downgrade into a widget if the title\n * is complicated.\n */\nexports.relinkAttribute = function(macro, text, fromTitle, toTitle, options) {\n\tvar entry = relinkMacroInvocation(macro, text, fromTitle, toTitle, false, options);\n\tif (entry && entry.output) {\n\t\tentry.output = macroToStringMacro(entry.output, text, options);\n\t}\n\treturn entry;\n};\n\n/**Processes the given macro,\n * macro: {name:, params:, start:, end:}\n * each parameters: {name:, end:, value:}\n * Macro invocation returned is the same, but relinked, and may have new keys:\n * parameters: {type: macro, start:, newValue: (quoted replacement value)}\n * Output of the returned entry isn't a string, but a macro object. It needs\n * to be converted.\n */\nfunction relinkMacroInvocation(macro, text, fromTitle, toTitle, mayBeWidget, options) {\n\tvar managedMacro = options.settings.getMacro(macro.name);\n\tvar modified = false;\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tif (macro.params.every(function(p) {\n\t\treturn !options.settings.survey(p.value, fromTitle, options);\n\t})) {\n\t\t// We cut early if the fromTitle doesn't even appear\n\t\t// anywhere in the title. This is to avoid any headache\n\t\t// about finding macro definitions (and any resulting\n\t\t// exceptions if there isn't even a title to replace.\n\t\treturn undefined;\n\t}\n\tvar outMacro = $tw.utils.extend({}, macro);\n\tvar macroEntry = new MacrocallEntry();\n\tmacroEntry.parameters = Object.create(null);\n\toutMacro.params = macro.params.slice();\n\tfor (var managedArg in managedMacro) {\n\t\tvar index;\n\t\ttry {\n\t\t\tindex = getParamIndexWithinMacrocall(macro.name, managedArg, macro.params, options);\n\t\t} catch (e) {\n\t\t\tif (e instanceof CannotFindMacroDef) {\n\t\t\t\tmacroEntry.addChild(e);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (index < 0) {\n\t\t\t// this arg either was not supplied, or we can't find\n\t\t\t// the definition, so we can't tie it to an anonymous\n\t\t\t// argument. Either way, move on to the next.\n\t\t\tcontinue;\n\t\t}\n\t\tvar param = macro.params[index];\n\t\tvar handler = managedMacro[managedArg];\n\t\tvar entry = handler.relink(param.value, fromTitle, toTitle, options);\n\t\tif (entry === undefined) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Macro parameters can only be string parameters, not\n\t\t// indirect, or macro, or filtered\n\t\tmacroEntry.addChild(entry, managedArg, \"string\");\n\t\tif (!entry.output) {\n\t\t\tcontinue;\n\t\t}\n\t\tvar quote = utils.determineQuote(text, param);\n\t\tvar quoted = utils.wrapParameterValue(entry.output, quote);\n\t\tvar newParam = $tw.utils.extend({}, param);\n\t\tif (quoted === undefined) {\n\t\t\tif (!mayBeWidget || !options.placeholder) {\n\t\t\t\tentry.impossible = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar ph = options.placeholder.getPlaceholderFor(entry.output,handler.name, options);\n\t\t\tnewParam.newValue = \"<<\"+ph+\">>\";\n\t\t\tnewParam.type = \"macro\";\n\t\t} else {\n\t\t\tnewParam.start = newParam.end - (newParam.value.length + (quote.length*2));\n\t\t\tnewParam.value = entry.output;\n\t\t\tnewParam.newValue = quoted;\n\t\t}\n\t\toutMacro.params[index] = newParam;\n\t\tmodified = true;\n\t}\n\tif (macroEntry.hasChildren()) {\n\t\tmacroEntry.macro = macro.name;\n\t\tif (modified) {\n\t\t\tmacroEntry.output = outMacro;\n\t\t}\n\t\treturn macroEntry;\n\t}\n\treturn undefined;\n};\n\nfunction mustBeAWidget(macro) {\n\tfor (var i = 0; i < macro.params.length; i++) {\n\t\tif (macro.params[i].type === \"macro\") {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false\n};\n\n/**Given a macro object ({name:, params:, start: end:}), and the text where\n * it was parsed from, returns a new macro that maintains any syntactic\n * structuring.\n */\nfunction macroToString(macro, text, names, options) {\n\tif (mustBeAWidget(macro)) {\n\t\tvar attrs = [];\n\t\tfor (var i = 0; i < macro.params.length; i++) {\n\t\t\tvar p = macro.params[i];\n\t\t\tvar val;\n\t\t\tif (p.newValue) {\n\t\t\t\tval = p.newValue;\n\t\t\t} else {\n\t\t\t\tval = utils.wrapAttributeValue(p.value);\n\t\t\t}\n\t\t\tattrs.push(\" \"+names[i]+\"=\"+val);\n\t\t}\n\t\treturn \"<$macrocall $name=\"+utils.wrapAttributeValue(macro.name)+attrs.join('')+\"/>\";\n\t} else {\n\t\treturn macroToStringMacro(macro, text, options);\n\t}\n};\n\nfunction macroToStringMacro(macro, text, options) {\n\tvar builder = new Rebuilder(text, macro.start);\n\tfor (var i = 0; i < macro.params.length; i++) {\n\t\tvar param = macro.params[i];\n\t\tif (param.newValue) {\n\t\t\tbuilder.add(param.newValue, param.start, param.end);\n\t\t}\n\t}\n\treturn builder.results(macro.end);\n};\n\n/** Returns -1 if param definitely isn't in macrocall.\n */\nfunction getParamIndexWithinMacrocall(macroName, param, params, options) {\n\tvar index, i, anonsExist = false;\n\tfor (i = 0; i < params.length; i++) {\n\t\tvar name = params[i].name;\n\t\tif (name === param) {\n\t\t\treturn i;\n\t\t}\n\t\tif (name === undefined) {\n\t\t\tanonsExist = true;\n\t\t}\n\t}\n\tif (!anonsExist) {\n\t\t// If no anonymous parameters are present, and we didn't find\n\t\t// it among the named ones, it must not be there.\n\t\treturn -1;\n\t}\n\tvar expectedIndex = indexOfParameterDef(macroName, param, options);\n\t// We've got to skip over all the named parameter instances.\n\tif (expectedIndex >= 0) {\n\t\tvar anonI = 0;\n\t\tfor (i = 0; i < params.length; i++) {\n\t\t\tif (params[i].name === undefined) {\n\t\t\t\tif (anonI === expectedIndex) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t\tanonI++;\n\t\t\t} else {\n\t\t\t\tvar indexOfOther = indexOfParameterDef(macroName, params[i].name, options);\n\t\t\t\tif (indexOfOther < expectedIndex) {\n\t\t\t\t\tanonI++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn -1;\n};\n\n// Looks up the definition of a macro, and figures out what the expected index\n// is for the given parameter.\nfunction indexOfParameterDef(macroName, paramName, options) {\n\tvar def = options.settings.getMacroDefinition(macroName);\n\tif (def === undefined) {\n\t\tthrow new CannotFindMacroDef();\n\t}\n\tvar params = def.params || [];\n\tfor (var i = 0; i < params.length; i++) {\n\t\tif (params[i].name === paramName) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\nfunction getParamNames(macroName, params, options) {\n\tvar used = Object.create(null);\n\tvar rtn = new Array(params.length);\n\tvar anonsExist = false;\n\tvar i;\n\tfor (i = 0; i < params.length; i++) {\n\t\tvar name = params[i].name;\n\t\tif (name) {\n\t\t\trtn[i] = name;\n\t\t\tused[name] = true;\n\t\t} else {\n\t\t\tanonsExist = true;\n\t\t}\n\t}\n\tif (anonsExist) {\n\t\tvar def = options.settings.getMacroDefinition(macroName);\n\t\tif (def === undefined) {\n\t\t\t// If there are anonymous parameters, and we can't\n\t\t\t// find the definition, then we can't hope to create\n\t\t\t// a widget.\n\t\t\treturn undefined;\n\t\t}\n\t\tvar defParams = def.params || [];\n\t\tvar defPtr = 0;\n\t\tfor (i = 0; i < params.length; i++) {\n\t\t\tif (rtn[i] === undefined) {\n\t\t\t\twhile(defPtr < defParams.length && used[defParams[defPtr].name]) {\n\t\t\t\t\tdefPtr++;\n\t\t\t\t}\n\t\t\t\tif (defPtr >= defParams.length) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\trtn[i] = defParams[defPtr].name;\n\t\t\t\tused[defParams[defPtr].name] = true;\n\t\t\t}\n\t\t}\n\t}\n\treturn rtn;\n};\n\nfunction parseParams(paramString, pos) {\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\t//paramInfo.start = pos;\n\t\tparamInfo.end = reParam.lastIndex + pos;\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn params;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrocall.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrodef.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles pragma macro definitions. Except we only update placeholder macros\nthat we may have previously install.\n\n\\define relink-?() Tough title\n\n\\*/\n\nvar settings = require(\"$:/plugins/flibbles/relink/js/settings\");\n\nexports.name = \"macrodef\";\n\nfunction MacrodefEntry(macroName, bodyEntry) {\n\tthis.macro = macroName;\n\tthis.body = bodyEntry;\n};\nMacrodefEntry.prototype.name = \"macrodef\";\nMacrodefEntry.prototype.eachChild = function(block) { return block(this.body);};\nMacrodefEntry.prototype.report = function() {\n\tvar macroStr = \"\\\\define \" + this.macro + \"()\";\n\tif (this.body.report) {\n\t\treturn this.body.report().map(function(report) {\n\t\t\treturn macroStr + \" \" + report;\n\t\t});\n\t} else {\n\t\treturn [macroStr];\n\t}\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar setParseTreeNode = this.parse(),\n\t\tmacroEntry,\n\t\tm = this.match,\n\t\tplaceholder = /^relink-(?:(\\w+)-)?(\\d+)$/.exec(m[1]),\n\t\twhitespace;\n\toptions.settings.addMacroDefinition(setParseTreeNode[0]);\n\t// Parse set the pos pointer, but we don't want to skip the macro body.\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (placeholder && m[2] === '') {\n\t\tvar valueRegExp;\n\t\t// m[3] means it's a multiline macrodef\n\t\tif (m[3]) {\n\t\t\tvalueRegExp = /\\r?\\n\\\\end[^\\S\\n\\r]*(?:\\r?\\n|$)/mg;\n\t\t\twhitespace = m[3];\n\t\t} else {\n\t\t\tvar newPos = $tw.utils.skipWhiteSpace(text, this.parser.pos);\n\t\t\tvalueRegExp = /(?:\\r?\\n|$)/mg;\n\t\t\twhitespace = text.substring(this.parser.pos, newPos);\n\t\t\tthis.parser.pos = newPos;\n\t\t}\n\t\tvalueRegExp.lastIndex = this.parser.pos;\n\t\tvar match = valueRegExp.exec(text);\n\t\tif (match) {\n\t\t\tvar handler = settings.getType(placeholder[1] || 'title');\n\t\t\tif (handler) {\n\t\t\t\tvar value = text.substring(this.parser.pos, match.index);\n\t\t\t\tvar entry = handler.relink(value, fromTitle, toTitle, options);\n\t\t\t\tif (entry !== undefined) {\n\t\t\t\t\tmacroEntry = new MacrodefEntry(m[1], entry);\n\t\t\t\t\tif (entry.output) {\n\t\t\t\t\t\tmacroEntry.output = this.makePlaceholder(m[1], whitespace+entry.output+match[0]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.parser.pos = match.index + match[0].length;\n\t\t}\n\t}\n\treturn macroEntry;\n};\n\nexports.makePlaceholder = function(name, content) {\n\treturn \"\\\\define \" + name + \"()\" + content;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrodef.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in wiki text inline rules, like,\n\n[[Introduction]]\n\n[[link description|TiddlerTitle]]\n\n\\*/\n\nvar utils = require(\"./utils.js\");\n\nfunction PrettyLinkEntry() {};\nPrettyLinkEntry.prototype.name = \"prettylink\";\nPrettyLinkEntry.prototype.report = function() {\n\treturn [\"[[\" + (this.caption || this.link) + \"]]\"];\n};\n\nexports.name = \"prettylink\";\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar caption, m = this.match;\n\tif (m[2] === fromTitle) {\n\t\t// format is [[caption|MyTiddler]]\n\t\tcaption = m[1];\n\t} else if (m[2] !== undefined || m[1] !== fromTitle) {\n\t\t// format is [[MyTiddler]], and it doesn't match\n\t\treturn undefined;\n\t}\n\tvar entry = new PrettyLinkEntry();\n\tentry.caption = caption;\n\tentry.link = toTitle;\n\tentry.output = this.makeLink(toTitle, caption, options);\n\tif (entry.output === undefined) {\n\t\tentry.impossible = true;\n\t}\n\treturn entry;\n};\n\nexports.makeLink = function(tiddler, caption, options) {\n\tvar output, quoted;\n\tif (this.canBePretty(tiddler)) {\n\t\toutput = prettyLink(tiddler, caption);\n\t} else if (caption === undefined) {\n\t\tif (exports.shorthandSupported(options)) {\n\t\t\tquoted = utils.wrapAttributeValue(tiddler);\n\t\t\tif (!quoted) {\n\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tquoted = \"<<\" + options.placeholder.getPlaceholderFor(tiddler,undefined,options) + \">>\";\n\t\t\t}\n\t\t\toutput = \"<$link to=\"+quoted+\"/>\";\n\t\t} else {\n\t\t\t// If we don't have a caption, we must resort to\n\t\t\t// placeholders anyway to prevent link/caption desync\n\t\t\t// from later relinks.\n\t\t\t// It doesn't matter whether the tiddler is quotable.\n\t\t\tif (options.placeholder) {\n\t\t\t\tvar ph = options.placeholder.getPlaceholderFor(tiddler, undefined, options);\n\t\t\t\toutput = \"<$link to=<<\"+ph+\">>><$text text=<<\"+ph+\">>/></$link>\";\n\t\t\t}\n\t\t}\n\t} else if (quoted = utils.wrapAttributeValue(tiddler)) {\n\t\tvar safeCaption = sanitizeCaption(caption, options);\n\t\tif (safeCaption !== undefined) {\n\t\t\toutput = \"<$link to=\"+quoted+\">\"+safeCaption+\"</$link>\";\n\t\t}\n\t} else if (options.placeholder) {\n\t\tvar ph = options.placeholder.getPlaceholderFor(tiddler, undefined, options);\n\t\t// We don't test if caption is undefined here, because it\n\t\t// never will be. options.placeholder exists.\n\t\tvar safeCaption = sanitizeCaption(caption, options);\n\t\toutput = \"<$link to=<<\"+ph+\">>>\"+safeCaption+\"</$link>\";\n\t}\n\treturn output;\n};\n\n/**Return true if value can be used inside a prettylink.\n */\nexports.canBePretty = function(value) {\n\treturn value.indexOf(\"]]\") < 0 && value[value.length-1] !== ']';\n};\n\n/**In version 5.1.20, Tiddlywiki made it so <$link to\"something\" /> would\n * use \"something\" as a caption. This is preferable. However, Relink works\n * going back to 5.1.14, so we need to have different handling for both\n * cases.\n */\nvar _supported;\nexports.shorthandSupported = function(options) {\n\tif (_supported === undefined) {\n\t\tvar test = options.wiki.renderText(\"text/plain\", \"text/vnd.tiddlywiki\", \"<$link to=test/>\");\n\t\t_supported = (test === \"test\");\n\t}\n\treturn _supported;\n};\n\nfunction sanitizeCaption(caption, options) {\n\tvar plaintext = options.wiki.renderText(\"text/plain\", \"text/vnd.tiddlywiki\", caption);\n\tif (plaintext === caption && caption.indexOf(\"</$link>\") <= 0) {\n\t\treturn caption;\n\t} else {\n\t\tvar wrapped = utils.wrapAttributeValue(caption);\n\t\tif (wrapped) {\n\t\t\treturn \"<$text text=\"+wrapped+\"/>\";\n\t\t} else if (options.placeholder) {\n\t\t\tvar ph = options.placeholder.getPlaceholderFor(caption, \"caption\", options);\n\t\t\treturn \"<$text text=<<\"+ph+\">>/>\";\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t}\n};\n\nfunction prettyLink(title, caption) {\n\tif (caption) {\n\t\treturn \"[[\" + caption + \"|\" + title + \"]]\";\n\t} else {\n\t\treturn \"[[\" + title + \"]]\";\n\t}\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/relink.js": {
"text": "/*\\\nmodule-type: wikirule\n\nThis defines the \\relink inline pragma used to locally declare\nrelink rules for macros.\n\nIt takes care of providing its own relink and report rules.\n\n\\*/\n\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nexports.name = \"relink\";\nexports.types = {pragma: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /^\\\\relink[^\\S\\n]+([^(\\s]+)([^\\r\\n]*)(\\r?\\n)?/mg;\n};\n\n/**This makes the widget that the macro library will later parse to determine\n * new macro relink state.\n *\n * It's a <$set> widget so it can appear BEFORE \\define pragma and not\n * prevent that pragma from being scooped up by importvariables.\n * (importvariables stops scooping as soon as it sees something besides $set) */\nexports.parse = function() {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar macroName;\n\tvar macroParams = Object.create(null);\n\tvar error = undefined;\n\tvar rtn = [];\n\tvar self = this;\n\tthis.interpretSettings(function(macro, parameter, type) {\n\t\tmacroName = macro;\n\t\tif (type && !settings.getType(type)) {\n\t\t\terror = language.getString(\"Error/UnrecognizedType\",\n\t\t\t\t{variables: {type: type}, wiki: self.parser.wiki});\n\t\t}\n\t\tmacroParams[parameter] = type;\n\t});\n\t// If no macroname. Return nothing, this rule will be ignored by parsers\n\tif (macroName) {\n\t\tvar relink = Object.create(null);\n\t\trelink[macroName] = macroParams;\n\t\trtn.push({\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: \"\"}\n\t\t\t},\n\t\t\tchildren: [],\n\t\t\tisMacroDefinition: true,\n\t\t\trelink: relink});\n\t}\n\tif (error) {\n\t\trtn.push({\n\t\t\ttype: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tc-error tc-relink-error\"\n\t\t\t\t}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: error}\n\t\t\t]});\n\t}\n\treturn rtn;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar self = this;\n\tthis.interpretSettings(function(macro, parameter, type) {\n\t\toptions.settings.addSetting(macro, parameter, type, options.currentTiddler);\n\t});\n\t// Return nothing, because this rule is ignored by the parser\n\treturn undefined;\n};\n\nexports.interpretSettings = function(block) {\n\tvar paramString = this.match[2];\n\tif (paramString !== \"\") {\n\t\tvar macro = this.match[1];\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*([^\\s]+))?/mg;\n\t\tvar paramMatch = reParam.exec(paramString);\n\t\twhile (paramMatch) {\n\t\t\tvar parameter = paramMatch[1];\n\t\t\tvar type = paramMatch[2];\n\t\t\tblock(macro, parameter, type);\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n};\n",
"module-type": "wikirule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/relink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/rules.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nParses and acknowledges any pragma rules a tiddler has.\n\n\\rules except html wikilink\n\n\\*/\n\nexports.name = \"rules\";\n\n/**This is all we have to do. The rules rule doesn't parse. It just amends\n * the rules, which is exactly what I want it to do too.\n * It also takes care of moving the pos pointer forward.\n */\nexports.relink = function() {\n\tthis.parse();\n\treturn undefined;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/rules.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/syslink.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles sys links\n\n$:/sys/link\n\nbut not:\n\n~$:/sys/link\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar prettylink = require('$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js');\n\nexports.name = \"syslink\";\n\nfunction SyslinkEntry() {};\nSyslinkEntry.prototype.name = \"syslink\";\nSyslinkEntry.prototype.report = function() {\n\treturn [\"~\" + this.link];\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar entry = undefined;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (this.match[0] === fromTitle && this.match[0][0] !== \"~\") {\n\t\tentry = new SyslinkEntry();\n\t\tentry.link = fromTitle;\n\t\tentry.output = this.makeSyslink(toTitle, options);\n\t\tif (entry.output === undefined) {\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\treturn entry;\n};\n\nexports.makeSyslink = function(title, options) {\n\tvar match = title.match(this.matchRegExp);\n\tif (match && match[0] === title && title[0] !== \"~\") {\n\t\treturn title;\n\t} else {\n\t\treturn prettylink.makeLink(title, undefined, options);\n\t}\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/syslink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/transclude.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement of transclusions in wiki text like,\n\n{{RenamedTiddler}}\n{{RenamedTiddler||TemplateTitle}}\n\nThis renames both the tiddler and the template field.\n\n\\*/\n\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar utils = require(\"./utils.js\");\n\nexports.name = ['transcludeinline', 'transcludeblock'];\n\nvar TranscludeEntry = function() {};\nTranscludeEntry.prototype.name = \"transclude\";\nTranscludeEntry.prototype.report = function() {\n\tvar ref = this.reference || {};\n\tvar output = [];\n\tif (this.referenceChanged) {\n\t\tvar suffix = \"\";\n\t\tif (ref.field) {\n\t\t\tsuffix = \"!!\" + ref.field;\n\t\t}\n\t\tif (ref.index) {\n\t\t\tsuffix = \"##\" + ref.index;\n\t\t}\n\t\tif (this.template) {\n\t\t\tsuffix = suffix + \"||\" + this.template;\n\t\t}\n\t\toutput.push(\"{{\" + suffix + \"}}\");\n\t}\n\tif (this.templateChanged) {\n\t\t// Must be template\n\t\tvar refString = refHandler.toString(ref);\n\t\toutput.push(\"{{\" + refString + \"||}}\");\n\t}\n\treturn output;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar m = this.match,\n\t\treference = $tw.utils.parseTextReference(m[1]),\n\t\ttemplate = m[2],\n\t\tentry = new TranscludeEntry(),\n\t\tmodified = false;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif ($tw.utils.trim(reference.title) === fromTitle) {\n\t\t// preserve user's whitespace\n\t\treference.title = reference.title.replace(fromTitle, toTitle);\n\t\tmodified = true;\n\t\tentry.referenceChanged = true;\n\t}\n\tif ($tw.utils.trim(template) === fromTitle) {\n\t\ttemplate = template.replace(fromTitle, toTitle);\n\t\tmodified = true;\n\t\tentry.templateChanged = true;\n\t}\n\tif (modified) {\n\t\tentry.reference = reference;\n\t\tentry.template = template;\n\t\tvar output = this.makeTransclude(reference, template, options);\n\t\tif (output) {\n\t\t\t// Adding any newline that might have existed is\n\t\t\t// what allows this relink method to work for both\n\t\t\t// the block and inline filter wikitext rule.\n\t\t\toutput = output + utils.getEndingNewline(m[0]);\n\t\t\tentry.output = output;\n\t\t} else {\n\t\t\tentry.impossible = true;\n\t\t}\n\t\treturn entry;\n\t}\n\treturn undefined;\n};\n\n/** This converts a reference and a template into a string representation\n * of a transclude.\n */\nexports.makeTransclude = function(reference, template, options) {\n\tvar rtn;\n\tif (!canBePrettyTemplate(template)) {\n\t\tvar resultTemplate = wrap(template, options);\n\t\tif (resultTemplate !== undefined) {\n\t\t\tif (reference.title) {\n\t\t\t\tvar resultTitle = wrap(reference.title, options);\n\t\t\t\tvar attrs = transcludeAttributes(reference.field, reference.index, options);\n\t\t\t\tif (resultTitle !== undefined && attrs !== undefined) {\n\t\t\t\t\trtn = \"<$tiddler tiddler=\"+resultTitle+\"><$transclude tiddler=\"+resultTemplate+attrs+\"/></$tiddler>\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trtn = \"<$transclude tiddler=\"+resultTemplate+\"/>\";\n\t\t\t}\n\t\t}\n\t} else if (!canBePrettyTitle(reference.title)) {\n\t\t// This block and the next account for the 1%...\n\t\tvar resultTitle = wrap(reference.title, options);\n\t\tif (resultTitle !== undefined) {\n\t\t\tvar reducedRef = {field: reference.field, index: reference.index};\n\t\t\trtn = \"<$tiddler tiddler=\"+resultTitle+\">\"+prettyTransclude(reducedRef, template)+\"</$tiddler>\";\n\t\t}\n\t} else {\n\t\t// This block takes care of 99% of all cases\n\t\trtn = prettyTransclude(reference, template);\n\t}\n\treturn rtn;\n};\n\nfunction wrap(tiddler, options) {\n\ttiddler = $tw.utils.trim(tiddler);\n\tvar result = utils.wrapAttributeValue(tiddler);\n\tif (result === undefined) {\n\t\tif (options.placeholder) {\n\t\t\tresult = \"<<\" + options.placeholder.getPlaceholderFor(tiddler, undefined, options) + \">>\";\n\t\t}\n\t}\n\treturn result;\n};\n\nfunction canBePrettyTitle(value) {\n\treturn refHandler.canBePretty(value) && canBePrettyTemplate(value);\n};\n\nfunction canBePrettyTemplate(value) {\n\treturn !value || (value.indexOf('}') < 0 && value.indexOf('{') < 0 && value.indexOf('|') < 0);\n};\n\n/**Returns attributes for a transclude widget.\n * only field or index should be used, not both, but both will return\n * the intuitive (albeit useless) result.\n */\nfunction transcludeAttributes(field, index, options) {\n\tvar rtn = [\n\t\twrapAttribute(\"field\", field, options),\n\t\twrapAttribute(\"index\", index, options)\n\t];\n\tif (rtn[0] === undefined || rtn[1] === undefined) {\n\t\t// This can only happen if the transclude is using an\n\t\t// illegal key.\n\t\treturn undefined;\n\t}\n\treturn rtn.join('');\n};\n\nfunction wrapAttribute(name, value, options) {\n\tif (value) {\n\t\tvar wrappedValue = utils.wrapAttributeValue(value);\n\t\tif (wrappedValue === undefined) {\n\t\t\tif (!options.placeholder) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\twrappedValue = \"<<\"+options.placeholder.getPlaceholderFor(value, name, options)+\">>\";\n\t\t}\n\t\treturn \" \"+name+\"=\"+wrappedValue;\n\t}\n\treturn '';\n};\n\nfunction prettyTransclude(textReference, template) {\n\tif (typeof textReference !== \"string\") {\n\t\ttextReference = refHandler.toString(textReference);\n\t}\n\tif (!textReference) {\n\t\ttextReference = '';\n\t}\n\tif (template !== undefined) {\n\t\treturn \"{{\"+textReference+\"||\"+template+\"}}\";\n\t} else {\n\t\treturn \"{{\"+textReference+\"}}\";\n\t}\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/transclude.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/utils.js": {
"text": "/*\\\nmodule-type: library\n\nUtility methods for the wikitext relink rules.\n\n\\*/\n\n/**Finds an appropriate quote mark for a given value.\n *\n *Tiddlywiki doesn't have escape characters for attribute values. Instead,\n * we just have to find the type of quotes that'll work for the given title.\n * There exist titles that simply can't be quoted.\n * If it can stick with the preference, it will.\n *\n * return: Returns the wrapped value, or undefined if it's impossible to wrap\n */\nexports.wrapAttributeValue = function(value, preference) {\n\tvar whitelist = [\"\", \"'\", '\"', '\"\"\"'];\n\tvar choices = {\n\t\t\"\": function(v) {return !/([\\/\\s<>\"'=])/.test(v); },\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; },\n\t\t'\"\"\"': function(v) {return v.indexOf('\"\"\"') < 0 && v[v.length-1] != '\"';}\n\t};\n\tif (choices[preference] && choices[preference](value)) {\n\t\treturn wrap(value, preference);\n\t}\n\tfor (var i = 0; i < whitelist.length; i++) {\n\t\tvar quote = whitelist[i];\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrap(value, quote);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n};\n\n/**Like wrapAttribute value, except for macro parameters, not attributes.\n *\n * These are more permissive. Allows brackets,\n * and slashes and '<' in unquoted values.\n */\nexports.wrapParameterValue = function(value, preference) {\n\tvar whitelist = [\"\", \"'\", '\"', '[[', '\"\"\"'];\n\tvar choices = {\n\t\t\"\": function(v) {return !/([\\s>\"'=])/.test(v); },\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; },\n\t\t\"[[\": exports.canBePrettyOperand,\n\t\t'\"\"\"': function(v) {return v.indexOf('\"\"\"') < 0 && v[v.length-1] != '\"';}\n\t};\n\tif (choices[preference] && choices[preference](value)) {\n\t\treturn wrap(value, preference);\n\t}\n\tfor (var i = 0; i < whitelist.length; i++) {\n\t\tvar quote = whitelist[i];\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrap(value, quote);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n};\n\nfunction wrap(value, wrapper) {\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; },\n\t\t'\"\"\"': function(v) {return '\"\"\"'+v+'\"\"\"'; },\n\t\t\"[[\": function(v) {return \"[[\"+v+\"]]\"; }\n\t};\n\tvar chosen = wrappers[wrapper];\n\tif (chosen) {\n\t\treturn chosen(value);\n\t} else {\n\t\treturn undefined;\n\t}\n};\n\nexports.canBePrettyOperand = function(value) {\n\treturn value.indexOf(']') < 0;\n};\n\n/**Given some text, and a param or attribute within that text, this returns\n * what type of quotation that attribute is using.\n *\n * param: An object in the form {end:, ...}\n */\nexports.determineQuote = function(text, param) {\n\tvar pos = param.end-1;\n\tif (text[pos] === \"'\") {\n\t\treturn \"'\";\n\t}\n\tif (text[pos] === '\"') {\n\t\tif (text.substr(pos-2, 3) === '\"\"\"') {\n\t\t\treturn '\"\"\"';\n\t\t} else {\n\t\t\treturn '\"';\n\t\t}\n\t}\n\tif (text.substr(pos-1,2) === ']]' && text.substr((pos-param.value.length)-3, 2) === '[[') {\n\t\treturn \"[[\";\n\t}\n\treturn '';\n};\n\n// Finds the newline at the end of a string and returns it. Empty string if\n// none exists.\nexports.getEndingNewline = function(string) {\n\tvar l = string.length;\n\tif (string[l-1] === '\\n') {\n\t\treturn (string[l-2] === '\\r') ? \"\\r\\n\" : \"\\n\";\n\t}\n\treturn \"\";\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/utils.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/wikilink.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles CamelCase links\n\nWikiLink\n\nbut not:\n\n~WikiLink\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar prettylink = require('$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js');\n\nexports.name = \"wikilink\";\n\nfunction WikilinkEntry() {};\nWikilinkEntry.prototype.name = \"wikilink\";\nWikilinkEntry.prototype.report = function() {\n\treturn [$tw.config.textPrimitives.unWikiLink + this.link];\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar entry = undefined;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (this.match[0] === fromTitle && this.match[0][0] !== $tw.config.textPrimitives.unWikiLink) {\n\t\tentry = new WikilinkEntry();\n\t\tentry.link = fromTitle;\n\t\tentry.output = this.makeWikilink(toTitle, options);\n\t\tif (entry.output === undefined) {\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\treturn entry;\n};\n\nexports.makeWikilink = function(title, options) {\n\tif (title.match(this.matchRegExp) && title[0] !== $tw.config.textPrimitives.unWikiLink) {\n\t\treturn title;\n\t} else {\n\t\treturn prettylink.makeLink(title, undefined, options);\n\t}\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/wikilink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/surveyors/raw.js": {
"text": "/*\\\n\nThis looks at text and sees if fromTitle is inside of it. That's all.\n\nSURVEYORS\n\nSurveyors are an optimization. They are way of quick-discarding text so it\ndoesn't have to be interpreted by the wikitext parser, the filter parser,\netc...\n\nThe reason I split this off into a module type is in case anyone wants to\nrelink patterns which might NOT contain the fromTitle in raw text.\n\nThey return false for \"no\", and true for \"maybe\". If any surveyor returns\n\"maybe\", the text in question is fully parsed.\n\nSee the documentation for more details.\n\n\\*/\n\nexports.survey = function(text, fromTitle, options) {\n\treturn text.indexOf(fromTitle) >= 0;\n};\n",
"module-type": "relinksurveyor",
"title": "$:/plugins/flibbles/relink/js/surveyors/raw.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils/entry.js": {
"text": "function EntryNode() {\n\tthis.children = [];\n};\n\nmodule.exports = EntryNode;\n\n/** PURE VIRTUAL\n * EntryNode.prototype.report = function() -> [\"string\", ...]\n */\n\nEntryNode.newType = function(name) {\n\tfunction NewEntry() {\n\t\tEntryNode.apply(this, arguments);\n\t};\n\tNewEntry.prototype = Object.create(EntryNode.prototype);\n\tNewEntry.prototype.name = name;\n\treturn NewEntry;\n};\n\nEntryNode.prototype.eachChild = function(method) {\n\tif (this.children) {\n\t\tfor (var i = 0; i < this.children.length; i++) {\n\t\t\tmethod(this.children[i]);\n\t\t}\n\t}\n};\n\nEntryNode.prototype.add = function(entry) {\n\tthis.children.push(entry);\n};\n\nfunction EntryCollection() {\n\tthis.children = Object.create(null);\n\tthis.types = Object.create(null);\n};\n\nEntryNode.newCollection = function(name) {\n\tfunction NewCollection() {\n\t\tEntryCollection.apply(this, arguments);\n\t};\n\tNewCollection.prototype = Object.create(EntryCollection.prototype);\n\tNewCollection.prototype.name = name;\n\treturn NewCollection;\n};\n\nEntryCollection.prototype.eachChild = function(method) {\n\tfor (var child in this.children) {\n\t\tmethod(this.children[child]);\n\t}\n};\n\nEntryCollection.prototype.addChild = function(child, name, type) {\n\tthis.children[name] = child;\n\tthis.types[name] = type;\n};\n\nEntryCollection.prototype.report = function() {\n\tvar output = [];\n\tfor (var name in this.children) {\n\t\tvar child = this.children[name];\n\t\tvar type = this.types[name];\n\t\tif (child.report) {\n\t\t\tvar reports = child.report();\n\t\t\tfor (var i = 0; i < reports.length; i++) {\n\t\t\t\toutput.push(this.forEachChildReport(reports[i], name, type));\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(this.forEachChildReport('', name, type));\n\n\t\t}\n\t}\n\treturn output;\n};\n\nEntryCollection.prototype.hasChildren = function() {\n\treturn Object.keys(this.children).length > 0;\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils/entry.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils/macroConfig.js": {
"text": "/*\\\nmodule-type: library\n\nThis handles the fetching and distribution of relink settings.\n\n\\*/\n\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction MacroConfig(wiki, parent, title) {\n\tthis.macros = Object.create(null);\n\tthis.parent = parent;\n\tthis.title = title;\n\tthis.wiki = wiki;\n\tthis.widgetList = [];\n\tthis.reservedmacroNames = Object.create(null);\n};\n\nmodule.exports = MacroConfig;\n\nMacroConfig.prototype.import = function(filter) {\n\tvar parentWidget;\n\tif (this.parent) {\n\t\tparentWidget = this.getVariableWidget();\n\t}\n\tvar importWidget = createImportWidget(filter, this.wiki, parentWidget);\n\tthis._compileList(importWidget.tiddlerList);\n\tthis.widgetList.push(importWidget);\n\t// This only works if only one filter is imported\n\tthis.addWidget(importWidget);\n};\n\nMacroConfig.prototype.refresh = function(changes) {\n\tthis.parent.refresh(changes);\n\tif (this.widget.refresh(changes)) {\n\t\tthis.macros = Object.create(null);\n\t\t// Recompile all our widgets in the same order\n\t\tfor (var i = 0; i < this.widgetList.length; i++) {\n\t\t\tthis._compileList(this.widgetList[i].tiddlerList );\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n// This class does no special handling of fields, operators, or attributes.\n// we pass it along to the parent.\nMacroConfig.prototype.getFields = function() {\n\treturn this.parent.getFields();\n};\n\nMacroConfig.prototype.getOperators = function() {\n\treturn this.parent.getOperators();\n};\n\nMacroConfig.prototype.getAttributes = function() {\n\treturn this.parent.getAttributes();\n};\n\nMacroConfig.prototype.survey = function(text, fromTitle, options) {\n\treturn this.parent.survey(text, fromTitle, options);\n};\n\nMacroConfig.prototype.getAttribute = function(elementName) {\n\treturn this.parent.getAttribute(elementName);\n};\n\nMacroConfig.prototype.getMacros = function() {\n\tvar signatures = this.parent.getMacros();\n\tfor (var macroName in this.macros) {\n\t\tvar macro = this.macros[macroName];\n\t\tfor (var param in macro) {\n\t\t\tsignatures[macroName + \"/\" + param] = macro[param];\n\t\t}\n\t}\n\treturn signatures;\n};\n\n// But macro we handle differently.\nMacroConfig.prototype.getMacro = function(macroName) {\n\tvar theseSettings = this.macros[macroName];\n\tvar parentSettings;\n\tif (this.parent) {\n\t\tparentSettings = this.parent.getMacro(macroName);\n\t}\n\tif (theseSettings && parentSettings) {\n\t\t// gotta merge them without changing either. This is expensive,\n\t\t// but it'll happen rarely.\n\t\tvar rtnSettings = $tw.utils.extend(Object.create(null), theseSettings, parentSettings);\n\t\treturn rtnSettings;\n\t}\n\treturn theseSettings || parentSettings;\n};\n\nMacroConfig.prototype.addSetting = function(macroName, parameter, type, sourceTitle) {\n\tvar macro = this.macros[macroName];\n\ttype = type || settings.getDefaultType(this.wiki);\n\tif (macro === undefined) {\n\t\tmacro = this.macros[macroName] = Object.create(null);\n\t}\n\tvar handler = settings.getType(type);\n\tif (handler) {\n\t\thandler.source = sourceTitle;\n\t\t// We attach the fields of the defining tiddler for the benefit\n\t\t// of any 3rd party field types that want access to them.\n\t\tvar tiddler = this.wiki.getTiddler(sourceTitle);\n\t\thandler.fields = tiddler.fields;\n\t\tmacro[parameter] = handler;\n\t}\n};\n\nMacroConfig.prototype.createChildLibrary = function(title) {\n\treturn new MacroConfig(this.wiki, this, title);\n};\n\nMacroConfig.prototype.addWidget = function(widget) {\n\tthis.widget = widget;\n\twhile (this.widget.children.length > 0) {\n\t\tthis.widget = this.widget.children[0];\n\t}\n};\n\nMacroConfig.prototype.getVariableWidget = function() {\n\tif (!this.widget) {\n\t\tvar varWidget = this.parent && this.parent.widget;\n\t\tvar parentWidget = new Widget({}, {parentWidget: varWidget});\n\t\tparentWidget.setVariable(\"currentTiddler\", this.title);\n\t\tvar widget = new Widget({}, {parentWidget: parentWidget});\n\t\tthis.addWidget(widget);\n\t}\n\treturn this.widget;\n};\n\n/**This takes macros, specifically relink placeholders, and remembers them\n * It creates a dummy object for them, since we'll never need the definition\n */\nMacroConfig.prototype.reserveMacroName = function(variableName) {\n\tthis.reservedmacroNames[variableName] = {\n\t\tvalue: \"\",\n\t\tparams: []};\n};\n\nMacroConfig.prototype.addMacroDefinition = function(setParseTreeNode) {\n\tvar bottomWidget = this.getVariableWidget();\n\tvar setWidget = bottomWidget.makeChildWidget(setParseTreeNode);\n\tsetWidget.computeAttributes();\n\tsetWidget.execute();\n\tthis.addWidget(setWidget);\n};\n\nMacroConfig.prototype.getMacroDefinition = function(variableName) {\n\treturn this.getVariableWidget().variables[variableName] || $tw.macros[variableName] || this.reservedmacroNames[variableName];\n};\n\nfunction createImportWidget(filter, wiki, parent) {\n\tvar widget = wiki.makeWidget( { tree: [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\t\"filter\": {\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: filter\n\t\t\t}\n\t\t}\n\t}] }, { parentWidget: parent} );\n\twidget.execute();\n\twidget.renderChildren();\n\tvar importWidget = widget.children[0];\n\treturn importWidget;\n};\n\nMacroConfig.prototype._compileList = function(titleList) {\n\tfor (var i = 0; i < titleList.length; i++) {\n\t\tvar parser = this.wiki.parseTiddler(titleList[i]);\n\t\tif (parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile (parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tif (parseTreeNode.relink) {\n\t\t\t\t\tfor (var macroName in parseTreeNode.relink) {\n\t\t\t\t\t\tvar parameters = parseTreeNode.relink[macroName];\n\t\t\t\t\t\tfor (paramName in parameters) {\n\t\t\t\t\t\t\tthis.addSetting(macroName, paramName, parameters[paramName], titleList[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t}\n\t}\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils/macroConfig.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils/placeholder.js": {
"text": "/*\\\n\nA method which doles out placeholders when requested, and constructs\nthe necessary supporting pragma when requested.\n\n\\*/\n\nfunction Placeholder() {\n\tthis.placeholders = Object.create(null);\n\tthis.reverseMap = Object.create(null);\n};\n\nmodule.exports = Placeholder;\n\nPlaceholder.prototype.getPlaceholderFor = function(value, category, options) {\n\tvar placeholder = this.reverseMap[value];\n\tvar config = options.settings || options.wiki.getRelinkConfig();\n\tif (placeholder) {\n\t\treturn placeholder;\n\t}\n\tvar number = 0;\n\tvar prefix = \"relink-\"\n\tif (category && category !== \"title\") {\n\t\t// I don't like \"relink-title-1\". \"relink-1\" should be for\n\t\t// titles. lists, and filters can have descriptors though.\n\t\tprefix += category + \"-\";\n\t}\n\tdo {\n\t\tnumber += 1;\n\t\tplaceholder = prefix + number;\n\t} while (config.getMacroDefinition(placeholder));\n\tconfig.reserveMacroName(placeholder);\n\tthis.placeholders[placeholder] = value;\n\tthis.reverseMap[value] = placeholder;\n\treturn placeholder;\n};\n\nPlaceholder.prototype.getPreamble = function() {\n\tvar results = [];\n\tfor (var name in this.placeholders) {\n\t\tvar val = this.placeholders[name];\n\t\tresults.push(\"\\\\define \"+name+\"() \"+val+\"\\n\");\n\t}\n\treturn results.join('');\n};\n\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils/placeholder.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils/rebuilder.js": {
"text": "/*\\\n\nThis helper class aids in reconstructing an existing string with new parts.\n\n\\*/\n\nfunction Rebuilder(text, start) {\n\tthis.text = text;\n\tthis.index = start || 0;\n\tthis.pieces = [];\n};\n\nmodule.exports = Rebuilder;\n\n/**Pieces must be added consecutively.\n * Start and end are the indices in the old string specifying where to graft\n * in the new piece.\n */\nRebuilder.prototype.add = function(value, start, end) {\n\tthis.pieces.push(this.text.substring(this.index, start), value);\n\tthis.index = end;\n};\n\nRebuilder.prototype.changed = function() {\n\treturn this.pieces.length > 0;\n};\n\nRebuilder.prototype.results = function(end) {\n\tif (this.changed()) {\n\t\tthis.pieces.push(this.text.substring(this.index, end));\n\t\treturn this.pieces.join('');\n\t}\n\treturn undefined;\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils/rebuilder.js",
"type": "application/javascript"
},
"$:/config/flibbles/relink/attributes/$button/set": {
"title": "$:/config/flibbles/relink/attributes/$button/set",
"text": "reference"
},
"$:/config/flibbles/relink/attributes/$button/setTo": {
"title": "$:/config/flibbles/relink/attributes/$button/setTo",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$button/to": {
"title": "$:/config/flibbles/relink/attributes/$button/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$checkbox/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$checkbox/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$checkbox/tag": {
"title": "$:/config/flibbles/relink/attributes/$checkbox/tag",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$count/filter": {
"title": "$:/config/flibbles/relink/attributes/$count/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$draggable/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$draggable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$draggable/filter": {
"title": "$:/config/flibbles/relink/attributes/$draggable/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$edit-bitmap/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit-bitmap/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$edit-text/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit-text/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$edit/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$encrypt/filter": {
"title": "$:/config/flibbles/relink/attributes/$encrypt/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$fieldmangler/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$fieldmangler/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$fields/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$fields/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$image/source": {
"title": "$:/config/flibbles/relink/attributes/$image/source",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$importvariables/filter": {
"title": "$:/config/flibbles/relink/attributes/$importvariables/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$linkcatcher/to": {
"title": "$:/config/flibbles/relink/attributes/$linkcatcher/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$linkcatcher/set": {
"title": "$:/config/flibbles/relink/attributes/$linkcatcher/set",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$link/to": {
"title": "$:/config/flibbles/relink/attributes/$link/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/filter": {
"title": "$:/config/flibbles/relink/attributes/$list/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$list/template": {
"title": "$:/config/flibbles/relink/attributes/$list/template",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/editTemplate": {
"title": "$:/config/flibbles/relink/attributes/$list/editTemplate",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/history": {
"title": "$:/config/flibbles/relink/attributes/$list/history",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$navigator/story": {
"title": "$:/config/flibbles/relink/attributes/$navigator/story",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$navigator/history": {
"title": "$:/config/flibbles/relink/attributes/$navigator/history",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$radio/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$radio/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$range/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$range/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$reveal/stateTitle": {
"title": "$:/config/flibbles/relink/attributes/$reveal/stateTitle",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$select/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$select/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/filter": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$set/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$set/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$set/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$set/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$set/filter": {
"title": "$:/config/flibbles/relink/attributes/$set/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$tiddler/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$tiddler/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$transclude/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$transclude/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$transclude/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$transclude/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$view/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$view/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$view/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$view/subtiddler",
"text": "title"
},
"$:/plugins/flibbles/relink/configuration": {
"title": "$:/plugins/flibbles/relink/configuration",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/flibbles/relink/Configuration]!has[draft.of]]\" \"$:/plugins/flibbles/relink/ui/configuration/Fields\">>\n</div>\n"
},
"$:/config/flibbles/relink/fields/filter": {
"title": "$:/config/flibbles/relink/fields/filter",
"text": "filter"
},
"$:/config/flibbles/relink/fields/list": {
"title": "$:/config/flibbles/relink/fields/list",
"text": "list"
},
"$:/config/flibbles/relink/fields/list-after": {
"title": "$:/config/flibbles/relink/fields/list-after",
"text": "title"
},
"$:/config/flibbles/relink/fields/list-before": {
"title": "$:/config/flibbles/relink/fields/list-before",
"text": "title"
},
"$:/config/flibbles/relink/fields/tags": {
"title": "$:/config/flibbles/relink/fields/tags",
"text": "list"
},
"$:/plugins/flibbles/relink/language/Buttons/Delete/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/Delete/Hint",
"text": "delete"
},
"$:/plugins/flibbles/relink/language/Buttons/LinkToInline/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/LinkToInline/Hint",
"text": "go to defining tiddler"
},
"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Hint",
"text": "Specify a new widget/element attribute to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewField/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewField/Hint",
"text": "Specify a new field to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewField/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewField/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewOperator/Hint",
"text": "Specify a new filter operator to be considered whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewOperator/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewParameter/Hint",
"text": "Specify a new macro parameter to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewParameter/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Error/InvalidAttributeName": {
"title": "$:/plugins/flibbles/relink/language/Error/InvalidAttributeName",
"text": "Illegal characters in attribute name \"<$text text=<<attributeName>>/>\". Attributes cannot contain slashes ('/'), closing angle or square brackets ('>' or ']'), quotes or apostrophes ('\"' or \"'\"), equals ('='), or whitespace"
},
"$:/plugins/flibbles/relink/language/Error/InvalidElementName": {
"title": "$:/plugins/flibbles/relink/language/Error/InvalidElementName",
"text": "Illegal characters in element/widget name \"<$text text=<<elementName>>/>\". Element tags can only contain letters and the characters hyphen (`-`) and dollar sign (`$`)"
},
"$:/plugins/flibbles/relink/language/Error/InvalidMacroName": {
"title": "$:/plugins/flibbles/relink/language/Error/InvalidMacroName",
"text": "Illegal characters in macro name \"<$text text=<<macroName>>/>\". Macros cannot contain whitespace"
},
"$:/plugins/flibbles/relink/language/Error/InvalidParameterName": {
"title": "$:/plugins/flibbles/relink/language/Error/InvalidParameterName",
"text": "Illegal characters in parameter name \"<$text text=<<parameterName>>/>\". Parameters can only contain letters, digits, and the characters underscore (`_`) and hyphen (`-`)"
},
"$:/plugins/flibbles/relink/language/Error/RelinkFilterOperator": {
"title": "$:/plugins/flibbles/relink/language/Error/RelinkFilterOperator",
"text": "Filter Error: Unknown suffix for the 'relink' filter operator"
},
"$:/plugins/flibbles/relink/language/Error/ReportFailedRelinks": {
"title": "$:/plugins/flibbles/relink/language/Error/ReportFailedRelinks",
"text": "Relink could not update '<<from>>' to '<<to>>' inside the following tiddlers:"
},
"$:/plugins/flibbles/relink/language/Error/UnrecognizedType": {
"title": "$:/plugins/flibbles/relink/language/Error/UnrecognizedType",
"text": "Relink parse error: Unrecognized field type '<<type>>'"
},
"$:/plugins/flibbles/relink/language/Help/Attributes": {
"title": "$:/plugins/flibbles/relink/language/Help/Attributes",
"text": "See the [[Attributes documentation page|https://flibbles.github.io/tw5-relink/#Attributes]] for details."
},
"$:/plugins/flibbles/relink/language/Help/Fields": {
"title": "$:/plugins/flibbles/relink/language/Help/Fields",
"text": "See the [[Fields documentation page|https://flibbles.github.io/tw5-relink/#Fields]] for details."
},
"$:/plugins/flibbles/relink/language/Help/Macros": {
"title": "$:/plugins/flibbles/relink/language/Help/Macros",
"text": "See the [[Macros documentation page|https://flibbles.github.io/tw5-relink/#Macros]] for details."
},
"$:/plugins/flibbles/relink/language/Help/Operators": {
"title": "$:/plugins/flibbles/relink/language/Help/Operators",
"text": "See the [[Operators documentation page|https://flibbles.github.io/tw5-relink/#Operators]] for details."
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Empty": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Empty",
"text": "No tiddlers contain any fields, links, macros, transclusions, or widgets referencing this one"
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Description": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Description",
"text": "The following tiddlers contain fields, links, macros, transclusions, or widgets referencing this one:"
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption",
"text": "//Relink// References"
},
"$:/plugins/flibbles/relink/language/ui/Attributes/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Attributes/Caption",
"text": "Attributes"
},
"$:/plugins/flibbles/relink/language/ui/Fields/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Fields/Caption",
"text": "Fields"
},
"$:/plugins/flibbles/relink/language/ui/Macros/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Macros/Caption",
"text": "Macros"
},
"$:/plugins/flibbles/relink/language/ui/Operators/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Operators/Caption",
"text": "Operators"
},
"$:/config/flibbles/relink/macros/csvtiddlers/filter": {
"title": "$:/config/flibbles/relink/macros/csvtiddlers/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/datauri/title": {
"title": "$:/config/flibbles/relink/macros/datauri/title",
"text": "title"
},
"$:/config/flibbles/relink/macros/jsontiddler/title": {
"title": "$:/config/flibbles/relink/macros/jsontiddler/title",
"text": "title"
},
"$:/config/flibbles/relink/macros/jsontiddlers/filter": {
"title": "$:/config/flibbles/relink/macros/jsontiddlers/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/list-links/filter": {
"title": "$:/config/flibbles/relink/macros/list-links/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/list-links-draggable/tiddler": {
"title": "$:/config/flibbles/relink/macros/list-links-draggable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-links-draggable/itemTemplate": {
"title": "$:/config/flibbles/relink/macros/list-links-draggable/itemTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-tagged-draggable/tag": {
"title": "$:/config/flibbles/relink/macros/list-tagged-draggable/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-tagged-draggable/itemTemplate": {
"title": "$:/config/flibbles/relink/macros/list-tagged-draggable/itemTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc/tag": {
"title": "$:/config/flibbles/relink/macros/toc/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc/selectedTiddler": {
"title": "$:/config/flibbles/relink/macros/toc/selectedTiddler",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc/template": {
"title": "$:/config/flibbles/relink/macros/toc/template",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/buttonTemplate": {
"title": "$:/config/flibbles/relink/macros/tabs/buttonTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/default": {
"title": "$:/config/flibbles/relink/macros/tabs/default",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/tabsList": {
"title": "$:/config/flibbles/relink/macros/tabs/tabsList",
"text": "filter"
},
"$:/config/flibbles/relink/macros/tabs/template": {
"title": "$:/config/flibbles/relink/macros/tabs/template",
"text": "title"
},
"$:/config/flibbles/relink/macros/tag/tag": {
"title": "$:/config/flibbles/relink/macros/tag/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/tag-pill/tag": {
"title": "$:/config/flibbles/relink/macros/tag-pill/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/timeline/subfilter": {
"title": "$:/config/flibbles/relink/macros/timeline/subfilter",
"text": "filter"
},
"$:/config/flibbles/relink/operators/list": {
"title": "$:/config/flibbles/relink/operators/list",
"text": "reference"
},
"$:/config/flibbles/relink/operators/tag": {
"title": "$:/config/flibbles/relink/operators/tag",
"text": "title"
},
"$:/config/flibbles/relink/operators/title": {
"title": "$:/config/flibbles/relink/operators/title",
"text": "title"
},
"$:/config/flibbles/relink/operators/field:title": {
"title": "$:/config/flibbles/relink/operators/field:title",
"text": "title"
},
"$:/language/EditTemplate/Title/Impossibles/Prompt": {
"title": "$:/language/EditTemplate/Title/Impossibles/Prompt",
"text": "''Warning:'' Not all references in the following tiddlers can be updated by //Relink// due to the complexity of the new title:"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following tiddlers will be updated if relinking:"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Use //Relink// to update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' across all other tiddlers"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\" tabindex={{$:/config/EditTabIndex}}/>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[all[relinkable]relink:references<fromTitle>limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$tiddler tiddler=<<fromTitle>> >\n\n<$set\n\tname=\"prompt\"\n\tfilter=\"[all[relinkable]relink:impossible<toTitle>]\"\n\tvalue=\"EditTemplate/Title/Impossibles/Prompt\"\n\temptyValue=\"EditTemplate/Title/References/Prompt\" >\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}}\n<$macrocall $name=lingo title=<<prompt>> />\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}}\n<$macrocall $name=lingo title=<<prompt>> />\n</$button>\n</$reveal>\n</$set>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$list variable=\"listItem\" filter=\"[all[relinkable]!title[$:/StoryList]relink:references<fromTitle>sort[title]]\" template=\"$:/plugins/flibbles/relink/ui/ListItemTemplate\">\n</$list>\n</$reveal>\n</$tiddler>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/plugins/flibbles/relink/readme": {
"title": "$:/plugins/flibbles/relink/readme",
"type": "text/vnd.tiddlywiki",
"text": "When renaming a tiddler, Relink can update the fields, filters, and widgets\nof all other tiddlers. However, it works through whitelisting.\n\nIt's already configured to update tiddler titles for all core widgets, filters,\nand fields, but the whitelists can be customized for each of this in the\nconfiguration panel.\n\nSee [[the tw5-relink website|https://github.com/flibbles/tw5-relink]] for\nmore details and examples.\n"
},
"$:/config/flibbles/relink/settings/default-type": {
"title": "$:/config/flibbles/relink/settings/default-type",
"text": "title"
},
"$:/plugins/flibbles/relink/ui/ListItemTemplate": {
"title": "$:/plugins/flibbles/relink/ui/ListItemTemplate",
"text": "<$set\n\tname=\"classes\"\n\tfilter=\"[<listItem>relink:impossible<toTitle>]\"\n\tvalue=\"tc-menu-list-item tc-relink-impossible\"\n\temptyValue=\"tc-menu-list-item\">\n<div class=<<classes>>>\n<$link to=<<listItem>>><$text text=<<listItem>> /></$link>\n</div>\n</$set>\n"
},
"$:/plugins/flibbles/relink/ui/TiddlerInfo/References": {
"title": "$:/plugins/flibbles/relink/ui/TiddlerInfo/References",
"caption": "{{$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption}}",
"tags": "$:/tags/TiddlerInfo",
"text": "\\define lingo-base() $:/plugins/flibbles/relink/language/TiddlerInfo/\n\\define filter() [relink:references<currentTiddler>!title[$:/StoryList]!prefix[$:/temp/]sort[title]]\n<$list filter=\"[subfilter<filter>first[]]\">\n\n<<lingo References/Description>>\n</$list>\n\n<table class=\"tc-relink-references-table\">\n<tbody>\n<$list filter=<<filter>> emptyMessage=<<lingo References/Empty>> variable=\"listItem\" template=\"$:/plugins/flibbles/relink/ui/TiddlerInfo/ReferencesTemplate\" />\n</tbody>\n</table>\n"
},
"$:/plugins/flibbles/relink/ui/TiddlerInfo/ReferencesTemplate": {
"title": "$:/plugins/flibbles/relink/ui/TiddlerInfo/ReferencesTemplate",
"text": "<tr class=\"tc-relink-references\">\n<td class=\"tc-relink-references-title\">\n<$link to=<<listItem>>/>\n</td>\n<td class=\"tc-relink-references-report\">\n<$list filter=\"[<listItem>relink:report<currentTiddler>]\">\n\n<$text text=<<currentTiddler>> />\n</$list>\n\n</td>\n</tr>\n"
},
"$:/plugins/flibbles/relink/ui/components/button-delete": {
"title": "$:/plugins/flibbles/relink/ui/components/button-delete",
"text": "\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define prefix() $:/config/flibbles/relink/\n\n<$list filter=\"[all[current]prefix<prefix>]\" >\n<$button class=\"tc-btn-invisible\" tooltip={{$:/plugins/flibbles/relink/language/Buttons/Delete/Hint}}><$list filter=\"[all[current]is[tiddler]]\">\n<$action-deletetiddler $tiddler=<<currentTiddler>> />\n</$list><$list filter=\"[all[current]is[shadow]]\">\n<$action-setfield $tiddler=<<tiddlerName>> text=\"\" />\n</$list>\n{{$:/core/images/delete-button}}\n</$button>\n</$list><$list filter=\"[all[current]!prefix<prefix>]\">\n<$link><$button class=\"tc-btn-invisible\" tooltip={{$:/plugins/flibbles/relink/language/Buttons/LinkToInline/Hint}}>{{$:/core/images/link}}</$button></$link>\n</$list>\n"
},
"$:/plugins/flibbles/relink/ui/components/select-fieldtype": {
"title": "$:/plugins/flibbles/relink/ui/components/select-fieldtype",
"text": "\\define prefix() $:/config/flibbles/relink/\n\n<$vars type={{{ [<signature>relink:type[]] }}} >\n<$list filter=\"[all[current]prefix<prefix>]\" >\n<$select tiddler=<<currentTiddler>> >\n<$list variable=\"option\" filter=\"[relink:types[]]\">\n<option><$text text=<<option>> /></option>\n</$list>\n</$select>\n</$list><$list filter=\"[all[current]!prefix<prefix>]\">\n<$text text=<<type>> />\n</$list>\n</$vars>\n"
},
"$:/plugins/flibbles/relink/ui/components/tables": {
"title": "$:/plugins/flibbles/relink/ui/components/tables",
"text": "\\define .make-table(title, plugin, default-table-state:yes)\n\n<$list variable=\"render\" filter=\"[relink:signatures<__plugin__>prefix<__category__>first[]]\">\n<$set name=\"table-state\" value=<<qualify \"\"\"$:/state/flibbles/relink/tables/$title$\"\"\">>>\n<tr><th class=\"tc-relink-header-plugin\" colspan=<<column-count>> >\n<$reveal type=\"nomatch\" state=<<table-state>> text=\"yes\" default=\"\"\"$default-table-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<table-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} ''$title$''\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<table-state>> text=\"yes\" default=\"\"\"$default-table-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<table-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}} ''$title$''\n</$button>\n</$reveal>\n</th></tr>\n<$list\n\tvariable=\"signature\"\n\tfilter=\"[relink:signatures<__plugin__>prefix<__category__>sort[]]\">\n<$vars key={{{ [<signature>removeprefix<__category__>removeprefix[/]] }}} >\n<$tiddler tiddler={{{[<signature>relink:source[]]}}} >\n<$reveal tag=\"tr\" type=\"match\" state=<<table-state>> text=\"yes\" default=\"\"\"$default-table-state$\"\"\">\n<$macrocall $name=<<__list-row-macro__>> signature=<<signature>> />\n<td class=\"tc-relink-column-type\">{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td class=\"tc-relink-column-delete\">{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</$reveal>\n</$tiddler>\n</$vars>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define tables(category, list-row-macro, header-list)\n<$vars\n\tcolumn-count={{{[enlist<__header-list__>] [[DeleteColumn]] +[count[]]}}}>\n\n<table class=\"tc-relink-whitelist\"><tbody>\n<tr>\n<$list variable=\"header\" filter=\"[enlist<__header-list__>butlast[]]\"><th><<header>></th></$list>\n<!-- We have the last column extend into the delete/link column, which is unlabeled. -->\n<th colspan=2><$text text={{{ [enlist<__header-list__>last[]] }}} /></th>\n</tr>\n\n<<.make-table Custom \"\" yes>>\n\n<<.make-table Core \"$:/plugins/flibbles/relink\">>\n\n<$list\n\tfilter=\"[plugin-type[plugin]![$:/core]![$:/plugins/flibbles/relink]]\">\n<$set name=\"subtitle\" value={{!!description}} emptyValue={{!!title}} >\n<$macrocall $name=\".make-table\" title=<<subtitle>> plugin=<<currentTiddler>> />\n</$set>\n</$list>\n\n</tbody></table>\n</$vars>\n\\end\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Attributes": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Attributes",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Attributes/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define prefix-attr() $:/config/flibbles/relink/attributes/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define element-name-tiddler() $:/state/flibbles/relink/element-name\n\\define attribute-name-tiddler() $:/state/flibbles/relink/attribute-name\n\n\\define row()\n<$set name=\"element\"\n filter=\"[<key>splitbefore[/]removesuffix[/]]\">\n<$set name=\"attribute\"\n filter=\"[<key>removeprefix<element>removeprefix[/]]\">\n<td><$text text=<<element>> /></td>\n<td><$text text=<<attribute>> /></td>\n</$set></$set>\n\\end\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Attributes}}\n\n<em class=\"tc-edit\">Add a new attribute:</em>\n<$edit-text\n\ttiddler=<<element-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"widget/element\" />\n<$edit-text\n\ttiddler=<<attribute-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"attribute\" />\n<$reveal type=\"nomatch\" text=\"\" state=<<element-name-tiddler>> >\n<$reveal type=\"nomatch\" text=\"\" state=<<attribute-name-tiddler>> >\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewAttribute/Hint}}\n\taria-label={{$(lingo-base)$NewAttribute/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-attribute\"\n\telement={{$(element-name-tiddler)$}}\n\tattribute={{$(attribute-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<attribute-name-tiddler>> />\n<$action-deletetiddler $tiddler=<<element-name-tiddler>> />\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<attribute-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<element-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n</$reveal>\n\n<$macrocall\n\t$name=tables\n\tcategory=\"attributes\"\n\theader-list=\"[[Widget/HTML Element]] Attribute Type\"\n\tlist-row-macro=\"row\" />\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Fields": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Fields",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Fields/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define field-name-tiddler() $:/state/flibbles/relink/field-name\n\n\\define row()\n<td><$text text=<<key>> /></td>\n\\end\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Fields}}\n\n<em class=\"tc-edit\">Add a new field:</em>\n<$edit-text\n\ttiddler=<<field-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"field name\" />\n<$reveal type=\"nomatch\" text=\"\" state=<<field-name-tiddler>> >\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewField/Hint}}\n\taria-label={{$(lingo-base)$NewField/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-field\"\n\tfield={{$(field-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<field-name-tiddler>> />\n<$text text={{$(lingo-base)$NewField/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<field-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewField/Caption}}/>\n</$button>\n</$reveal>\n\n\n<$macrocall\n\t$name=tables\n\tcategory=\"fields\"\n\theader-list=\"[[Field Name]] [[Field Type]]\"\n\tlist-row-macro=\"row\" />\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Macros": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Macros",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Macros/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define prefix-macro() $:/config/flibbles/relink/macros/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define macro-name-tiddler() $:/state/flibbles/relink/macro-name\n\\define parameter-name-tiddler() $:/state/flibbles/relink/parameter-name\n\n\\define row()\n<$set name=\"parameter\"\n filter=\"[<key>relink:splitafter[/]]\">\n<$set name=\"macro\"\n filter=\"[<key>removesuffix<parameter>removesuffix[/]]\">\n<td><$text text=<<macro>> /></td>\n<td><$text text=<<parameter>> /></td>\n</$set></$set>\n\\end\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Macros}}\n\n<em class=\"tc-edit\">Add a new macro parameter:</em>\n<$edit-text\n\ttiddler=<<macro-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"macro\" />\n<$edit-text\n\ttiddler=<<parameter-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"parameter\" />\n<$reveal type=\"nomatch\" text=\"\" state=<<macro-name-tiddler>> >\n<$reveal type=\"nomatch\" text=\"\" state=<<parameter-name-tiddler>> >\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewParameter/Hint}}\n\taria-label={{$(lingo-base)$NewParameter/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-parameter\"\n\tmacro={{$(macro-name-tiddler)$}}\n\tparameter={{$(parameter-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<parameter-name-tiddler>> />\n<$action-deletetiddler $tiddler=<<macro-name-tiddler>> />\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<parameter-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<macro-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n</$reveal>\n\n\n<$macrocall\n\t$name=tables\n\tcategory=\"macros\"\n\theader-list=\"Macro Parameter Type\"\n\tlist-row-macro=\"row\" />\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Operators": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Operators",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Operators/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define operator-name-tiddler() $:/state/flibbles/relink/operator-name\n\n\\define row()\n<td><$text text=<<key>> /></td>\n\\end\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Operators}}\n\n<em class=\"tc-edit\">Add a new filter operator:</em>\n<$edit-text\n\ttiddler=<<operator-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"operator name\" />\n<$reveal type=\"nomatch\" text=\"\" state=<<operator-name-tiddler>>>\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewOperator/Hint}}\n\taria-label={{$(lingo-base)$NewOperator/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-operator\"\n\toperator={{$(operator-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<operator-name-tiddler>> />\n<$text text={{$(lingo-base)$NewOperator/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<operator-name-tiddler>>>\n<$button>\n<$text text={{$(lingo-base)$NewOperator/Caption}}/>\n</$button>\n</$reveal>\n\n<$macrocall\n\t$name=tables\n\tcategory=\"operators\"\n\theader-list=\"[[Filter Operator]] [[Operand Type]]\"\n\tlist-row-macro=\"row\" />\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/stylesheet.css": {
"title": "$:/plugins/flibbles/relink/ui/stylesheet.css",
"text": ".tc-relink-references {\n}\n\n.tc-relink-references-table {\n\twidth: 100%;\n\tborder: none;\n}\n\n.tc-relink-references-table td {\n\tborder-left: none;\n}\n\n.tc-relink-references-table tr:first-child td {\n\tborder-top: none;\n}\n\n.tc-relink-references-title {\n\ttext-align: left;\n\tvertical-align: top;\n}\n\n.tc-relink-references-occurrence {\n\tfont-style: italic;\n\ttext-align: left;\n\tfont-weight: 200;\n\tpadding-left: 25px;\n\tvertical-align: top;\n}\n\n.tc-relink-header-plugin {\n\ttext-align: left;\n}\n\n.tc-relink-header-plugin button {\n\twidth: 100%\n}\n\n.tc-relink-column-type {\n\twidth: 8em;\n}\n\n.tc-relink-column-type select {\n\twidth: 100%;\n}\n\n.tc-relink-column-delete {\n\tborder-left: none;\n\ttext-align: left;\n}\n\n.tc-relink-column-delete button {\n\tpadding-left: 1em;\n}\n\n.tc-relink-impossible a.tc-tiddlylink {\n\tcolor: red;\n}\n",
"tags": "$:/tags/Stylesheet",
"type": "text/css"
}
}
}
{
"tiddlers": {
"$:/plugins/sendwheel/tw-receiver/tw-receiver-handler.js": {
"created": "20180905150947484",
"text": "/*\\\ntitle: $:/plugins/sendwheel/tw-receiver/tw-receiver-handler.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving wiki via POST to server storage\n\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// helper function returns a sha256 hex digest using the sjcl lib\nvar getSHA256 = function(data) {\n\tvar sjcl = $tw.node ? (global.sjcl || require(\"./sjcl.js\")) : window.sjcl;\n\treturn sjcl.codec.hex.fromBits(sjcl.hash.sha256.hash(data))\n}\n\n/*\nCreate a saver module\n*/\nvar ReceiverSaver = function(wiki) {\n};\n\nReceiverSaver.prototype.save = function(text,method,callback) {\n\t\n\t// if this module is not enabled by the user return false so that saver-handler can move on to next option\n\t// we do this here, instead of in canSave(), so that the saver can be enabled/disabled without a page refresh\n\tif(($tw.wiki.getTextReference(\"$:/tw-receiver-enabled\") || \"\").toLowerCase() !== \"yes\") {\n\t\treturn false;\n\t}\n\t\n\t// retrieve parameters from the ui form\n\t//var isEnabled = $tw.wiki.getTextReference(\"$:/tw-receiver-enabled\");\n\tvar seckey = $tw.utils.getPassword(\"tw-receiver-seckey\"); //reminder: this util uses html5.localStorage (secvio)\n\tvar wikiname = $tw.wiki.getTextReference(\"$:/tw-receiver-wikiname\");\n\tvar serverurl = $tw.wiki.getTextReference(\"$:/tw-receiver-serverurl\");\n\tvar cdauthentication = true; //challenge digest auth\n\tvar signdata = true; //integrity check\n\tvar stalecheck = false; //overwrite stale instance check \n\t\n\t// enable/disable based on ui setting\n\tif($tw.wiki.getTextReference(\"$:/tw-receiver-stalecheck\") == \"yes\") {\n\t\tstalecheck = true;\n\t}\n\t\n\tif($tw.wiki.getTextReference(\"$:/tw-receiver-signdata\") == \"no\") {\n\t\tsigndata = false;\n\t}\n\t\n\t// if we're not provided a filename, try to get the name of the wiki from the URL\n\tif(!wikiname) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\twikiname = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\t\n\tif(!wikiname) {\n\t\twikiname = \"tiddlywiki.html\";\n\t}\n\t\n\t// construct the server url if not provided\n\tif(!serverurl) {\n\t\tserverurl = \"tw-receiver-server.php\";\n\t}\n\t\n\t// fail to save if we're missing any critical parameters\n\tif(\n\t\t!seckey || seckey.toString().trim() === \"\" ||\n\t\t!wikiname || wikiname.toString().trim() === \"\" ||\n\t\t!serverurl || serverurl.toString().trim() === \"\" \n\t){\n\t\treturn callback(\"TW Receiver: \\n Missing some user input parameters. Save Failed\");\n\t\t// we don't return false because we want the user to fix the problem or disable this module\n\t\t//return false;\n\t}\n\t\n\t// everything seems in order, lets attempt the save\n\t// display the save starting notification\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\t\n\t// helper function returns a sha256 hex digest using the sjcl lib\n\tvar getSHA256 = function(data) {\n\t\tvar sjcl = $tw.node ? (global.sjcl || require(\"./sjcl.js\")) : window.sjcl;\n\t\treturn sjcl.codec.hex.fromBits(sjcl.hash.sha256.hash(data))\n\t}\n\t\n\t// helper function encapsulates the actual data post\n\t// modified version of the upload.js saver from TiddlyWiki core\n\tvar postToServer = function(){\n\t\t// text,seckey,filename,serverurl\n\t\tvar retResp = false;\n\t\t// assemble the header\n\t\tvar boundary = \"-------\" + \"81fd830c85363675edb98d2879916d8c\";\t\n\t\tvar header = [];\n\t\theader.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"twreceiverparams\\\"\\r\\n\");\n\t\theader.push(\"seckey=\" + seckey + \"&wikiname=\" + wikiname + \"&datasig=\" + datasig + \"&stalehash=\" + stalehash); \n\t\theader.push(\"\\r\\n\" + \"--\" + boundary);\n\t\theader.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + wikiname + \"\\\"\");\n\t\theader.push(\"Content-Type: text/html;charset=UTF-8\");\n\t\theader.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\t\theader.push(\"\");\n\t\t// assemble the tail and the data itself\n\t\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\";\n\t\tvar\tdata = header.join(\"\\r\\n\") + text + tail;\n\t\t// do the HTTP post\n\t\tvar http = new XMLHttpRequest();\n\t\thttp.open(\"POST\",serverurl,true);\n\t\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\t\thttp.onreadystatechange = function() {\n\t\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\t\tif(http.responseText.substr(0,8) === \"000 - ok\") {\n\t\t\t\t\tcallback(null);\n\t\t\t\t\tif(stalecheck) {\n\t\t\t\t\t\t// update stale hash to current\n\t\t\t\t\t\t$tw.wiki.setTextReference('$:/temp/tw-receiver-stalehash',getSHA256(text));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcallback(\"Error:\\n\" + http.responseText);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\ttry {\n\t\t\thttp.send(data);\n\t\t} catch(ex) {\n\t\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t\t}\n\t};\n\t\n\t// if signdata is enabled, create a data integrity signature\n\tvar datasig = \"\";\n\tif(signdata){\n\t\tdatasig = getSHA256(text+seckey);\n\t}\n\t\n\t// if stalecheck is enabled, grab the stale hash. Otherwise set to 0 for disabled\n\t// send this to the server for comparison\n\tvar stalehash = \"0\";\n\tif(stalecheck){\n\t\tstalehash = $tw.wiki.getTextReference(\"$:/temp/tw-receiver-stalehash\");\n\t}\n\t\n\t// cdauthentication mode check\n\tif(cdauthentication) {\n\t\tvar xhrequest = new XMLHttpRequest();\n\t\txhrequest.onreadystatechange = function() {\n\t\t\tif(xhrequest.readyState == 4 && xhrequest.status == 200) {\n\t\t\t\tvar challengetoken = xhrequest.responseText;\n\t\t\t\tseckey = getSHA256(seckey + challengetoken);\n\t\t\t\t// post helper\n\t\t\t\tpostToServer();\n\t\t\t}\n\t\t};\n\t\txhrequest.open(\"GET\", serverurl + \"?md=gct\", true);\n\t\ttry {\n\t\t\txhrequest.send(null);\n\t\t} catch(ex) {\n\t\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t\t}\n\t}\n\telse {\n\t\t// post helper\n\t\tpostToServer();\n\t}\n\t\n\t// we return true because the attempt was completed\n\t// either saved success or error reported via callback()\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nReceiverSaver.prototype.info = {\n\tname: \"tw-receiver\",\n\tpriority: 3000, // priority: higher # is first\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\nCalled onload (wiki start) to enable this saver, requires refresh to change\n*/\nexports.canSave = function(wiki) {\n\t// stale check calculation\n\t// we call this here because we want the value at startup\n\tvar data = wiki.wiki.renderTiddler(\"text/plain\",\"$:/core/save/all\"); \n\t$tw.wiki.setTextReference('$:/temp/tw-receiver-stalehash',getSHA256(data));\n\t\n\t// return true regardless\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ReceiverSaver(wiki);\n};\n\n})();",
"type": "application/javascript",
"title": "$:/plugins/sendwheel/tw-receiver/tw-receiver-handler.js",
"tags": "",
"module-type": "saver",
"modified": "20181012151713710"
},
"$:/plugins/sendwheel/tw-receiver/tw-receiver-ui": {
"created": "20180905150506405",
"text": "TW Receiver uploads this wiki to a web server, saving the current state\n<div style=\"width:160px;\">\n\n|''Enable'' |<$checkbox tiddler=\"$:/tw-receiver-enabled\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"/> |\n\n</div>\n<div style=\"width:60%\">\n\n|Secret Key |<$password name=\"tw-receiver-seckey\"/> |\n|Server URL |<$edit-text tiddler=\"$:/tw-receiver-serverurl\" default=\"tw-receiver-server.php\" tag=\"input\"/> |\n|Filename |<$edit-text tiddler=\"$:/tw-receiver-wikiname\" default=\"wiki.html\" tag=\"input\"/> |\n\n</div>\n\n<div style=\"width:60%\">\n<fieldset>\n <legend>Options:</legend>\n\n<$checkbox tiddler=\"$:/tw-receiver-stalecheck\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"/> Stale Overwrite Protection <br />\n<$checkbox tiddler=\"$:/tw-receiver-signdata\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"/> Signed Data Integrity <br />\n<$checkbox tiddler=\"$:/tw-receiver-cdauthentication\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"/> Challenge Digest Authentication <br />\n\n</fieldset>\n</div>\n\n\"\"\"\n\n''Tips:''\n- There is no secure way to transmit information over an HTTP connection. Anything transmitted this way is observable and can be manipulated. It is worthwhile to use an HTTPS (TLS) connection to the server.\n- Typically the tw-receiver-server.php file is in the same directory as the wiki html file. In that case the default \"Server URL: tw-receiver-server.php\" can be used.\n\"\"\"",
"title": "$:/plugins/sendwheel/tw-receiver/tw-receiver-ui",
"tags": "$:/tags/ControlPanel/Saving",
"modified": "20181012151618024",
"caption": "TW Receiver"
}
}
}
{
"tiddlers": {
"$:/plugins/snowgoon88/edit-comptext/config": {
"title": "$:/plugins/snowgoon88/edit-comptext/config",
"type": "application/json",
"text": "{\n \"configuration\": {\n \"caseSensitive\" : false,\n \"maxMatch\" : 8,\n \"minPatLength\" : 2,\n \"triggerKeyCombination\" : \"^ \"\n },\n \"template\": [{\n \"pattern\": \"[[\",\n \"filter\": \"[all[tiddlers]!is[system]]\",\n \"start\": \"[[\",\n \"end\": \"]]\"\n }\n ]\n}\n"
},
"$:/plugins/snowgoon88/edit-comptext/edit-comptext.js": {
"title": "$:/plugins/snowgoon88/edit-comptext/edit-comptext.js",
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/edit-comptext.js\ntype: application/javascript\nmodule-type: widget\n\nTaken from original Edit-text widget\nVersion 5.1.13 of TW5\nAdd link-to-tiddler completion in framed.js and simple.js\n\nTODO : CHECK usefull, and particularly save_changes after every input ??\nTODO : where should popupNode be created in the DOM ?\nTODO : check that options are valid (numeric ?)\nvar isNumeric = function(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedCompEngine = require(\"$:/plugins/snowgoon88/edit-comptext/framed.js\").FramedCompEngine,\n\tSimpleCompEngine = require(\"$:/plugins/snowgoon88/edit-comptext/simple.js\").SimpleCompEngine;\n\nexports[\"edit-comptext\"] = editTextWidgetFactory(FramedCompEngine,SimpleCompEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/snowgoon88/edit-comptext/examples": {
"title": "$:/plugins/snowgoon88/edit-comptext/examples",
"text": "The configuration file [[$:/plugins/snowgoon88/edit-comptext/config]] allow you to use the completion plugin for various usages. Here are some examples...\n\n!! Link Completion\nThe basic and default usage. Completion is triggered by `[[`, the search is among all non-system tiddlers. When selected, the `title` of the tiddler is inserted in the text, surrounded by `[[` and `]]`. This gives the following Completion Template.\n\n\n```\n{\n \"pattern\": \"[[\",\n \"title\": \"[all[tiddlers]!is[system]]\",\n \"start\": \"[[\",\n \"end\": \"]]\"\n}\t \n```\n\n\n!! Special macro completion\nI have a 'pnjin' macro that is invoked by `<<pnjin \"TiddlerPNJName\">>` where 'TiddlerPNJName is a tiddler that hold data about a PNJ. I use tiddlywiki to organise my Role Playing Games campaigns. So, I want `<p` to trigger the completion. The search is among all non-system tiddlers tagged `PNJ` and, once selected, the title of the tiddler must be inserted surrouned by `<<pnjin \\\"` and `\\\">>`. So...\n\n```\n{\n\t\"pattern\": \"<p\",\n \t\"title\": \"[tag[PNJ]!is[system]]\",\n \t\"start\": \"<<pnjin \\\"\",\n \t\"end\": \"\\\">>\"\n}\n```\n\n!! Insert some templates or stamp or snippets into text.\nI frequently use some text pattern and I want to insert them easily. So, I could create several tiddlers, tagged '$:stamp' and in their body are the piece of texte I want to insert. The titles of these tiddlers always start with `$:/config/stamp/` (i.e. $:/config/stamp/macro, $:/config/stamp/list1, $:/config/stamp/list2). I want to trigger the completion by using `<<`, then I only want to chose among the last part of the titles of tiddlers tagged `$:stamp` so I use a mask (`$:/config/stamp/`) to only display the last part of the tiddlers title. When selectected, the `body` of the tiddler is inserted, with no surrounding strings. As a results, the Completion Template is (notice the `body` field):\n\n```\n{\n \"pattern\": \"<<\",\n \"body\": \"[tag[$:stamp]]\",\n \"mask\" : \"$:/config/stamp/\",\n \"start\": \"\",\n \"end\": \"\"\n}\n```\n\n!! And you ?\nIf you have funny usages of completion, let me know. If you'd like to do something that is not yet possible, let me know...\n\nmail : snowgoon88(AT)gmail(DOT)com"
},
"$:/plugins/snowgoon88/edit-comptext/framed.js": {
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/framed.js\ntype: application/javascript\nmodule-type: library\n\nTaken from $:/core/modules/editor/engines/framed.js\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\n// Configuration tiddler\nvar COMPLETION_OPTIONS = \"$:/plugins/snowgoon88/edit-comptext/config\";\nvar Completion = require(\"$:/plugins/snowgoon88/edit-comptext/completion.js\").Completion;\n\t\nfunction FramedCompEngine(options) {\n //DEBUG console.log( \"==FramedCompEngine::creation\" );\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\n\t// Completion\n\t// Load Completion configuration as JSON\n this._configOptions = $tw.wiki.getTiddlerData( COMPLETION_OPTIONS, {} );\n\t\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create dummy popup for reading its styles\n\t//this._dummyCompletion = new Completion( this.widget, this.dummyTextArea, this._configOptions);\n\t//REMOVEthis._dummyCompletion.setAttribute(\"hidden\",\"true\");\n\t\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n\n\t// add Completion popup\n this._completion = new Completion( this.widget, this.domNode, this._configOptions, this.dummyTextArea, this.iframeNode.offsetTop, this.iframeNode.offsetLeft );\n\t// print iframe offset\n\t//DEBUG console.log( \" __iframe.offsetLeft: \"+this.iframeNode.offsetLeft );\n //DEBUG console.log( \" __iframe.offsetTop: \"+this.iframeNode.offsetTop );\n \n\t// Copy all styles from dummyCompletion\n\t//$tw.utils.copyStyles(this._dummyCompletion._popNode, this._completion._popNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\t//this._completion._popNode.style.display = \"block\";\n\t//this._completion._popNode.style.width = \"100%\";\n\t//this._completion._popNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\t//this._completion._popNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n \n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedCompEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedCompEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedCompEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedCompEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedCompEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedCompEngine.prototype.handleInputEvent = function(event) {\n //DEBUG console.log( \"__framed.js::handleInputEvent\");\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedCompEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedCompEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedCompEngine = FramedCompEngine;\n\n})();\n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/framed.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/simple.js": {
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/simple.js\ntype: application/javascript\nmodule-type: library\n\nTaken from $:/core/modules/editor/engines/simple.js\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\n// Configuration tiddler\nvar COMPLETION_OPTIONS = \"$:/plugins/snowgoon88/edit-comptext/config\";\nvar Completion = require(\"$:/plugins/snowgoon88/edit-comptext/completion.js\").Completion;\n\nfunction SimpleCompEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\n // Completion\n\t// Load Completion configuration as JSON\n this._configOptions = $tw.wiki.getTiddlerData( COMPLETION_OPTIONS, {} );\n\t\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n\n\t// add Completion popup\n this._completion = new Completion( this.widget, this.domNode, this._configOptions );\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleCompEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleCompEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleCompEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleCompEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleCompEngine.prototype.handleInputEvent = function(event) {\n\tconsole.log( \"__simple.js::handleInputEvent\");\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleCompEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleCompEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleCompEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleCompEngine = SimpleCompEngine;\n\n})();\n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/simple.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/cursor-position.js": {
"text": "/*\\\nModule that compute the pixel position of the cursor of a text\nements.\n\nTaken from https://github.com/component/textarea-caret-position\n\n(as https://github.com/kir/js_cursor_position is not updated any more)\n\\*/\n// Fonction anonyme executée immediatement\n( function(){\n \n// The properties that we copy into a mirrored div.\n// Note that some browsers, such as Firefox,\n// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,\n// so we have to do every single property specifically.\nvar properties = [\n 'direction', // RTL support\n 'boxSizing',\n 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n 'height',\n 'overflowX',\n 'overflowY', // copy the scrollbar for IE\n\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderStyle',\n\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n 'fontStyle',\n 'fontVariant',\n 'fontWeight',\n 'fontStretch',\n 'fontSize',\n 'fontSizeAdjust',\n 'lineHeight',\n 'fontFamily',\n\n 'textAlign',\n 'textTransform',\n 'textIndent',\n 'textDecoration', // might not make a difference, but better be safe\n\n 'letterSpacing',\n 'wordSpacing',\n\n 'tabSize',\n 'MozTabSize'\n\n];\nvar isFirefox = false;\nif($tw.browser) {\n isFirefox = window.mozInnerScreenX != null;\n}\n\nfunction getCaretCoordinates(element, position, options) {\n\n var debug = options && options.debug || false;\n if (debug) {\n var el = document.querySelector('#input-textarea-caret-position-mirror-div');\n if ( el ) { el.parentNode.removeChild(el); }\n }\n\n // mirrored div\n var div = document.createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n document.body.appendChild(div);\n\n var style = div.style;\n var computed;\n if($tw.browser) {\n computed = window.getComputedStyle? getComputedStyle(element) : element.currentStyle; // currentStyle for IE < 9\n } \n else {\n computed = element.currentStyle;\n }\n \n\n // default textarea styles\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT')\n style.wordWrap = 'break-word'; // only for textarea-s\n\n // position off-screen\n style.position = 'absolute'; // required to return coordinates properly\n if (!debug)\n style.visibility = 'hidden'; // not 'display: none' because we want rendering\n\n // transfer the element's properties to the div\n properties.forEach(function (prop) {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n }\n\n div.textContent = element.value.substring(0, position);\n // the second special handling for input type=\"text\" vs textarea: spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n if (element.nodeName === 'INPUT')\n div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\n\n var span = document.createElement('span');\n // Wrapping must be replicated *exactly*, including when a long word gets\n // onto the next line, with whitespace at the end of the line before (#7).\n // The *only* reliable way to do that is to copy the *entire* rest of the\n // textarea's content into the <span> created at the caret position.\n // for inputs, just '.' would be enough, but why bother?\n span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n div.appendChild(span);\n\n var coordinates = {\n top: span.offsetTop + parseInt(computed['borderTopWidth']),\n left: span.offsetLeft + parseInt(computed['borderLeftWidth'])\n };\n\n if (debug) {\n span.style.backgroundColor = '#aaa';\n } else {\n document.body.removeChild(div);\n }\n\n return coordinates;\n}\n\n// Exporte as a module of node.js otherwise set as global\nif (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\n module.exports = getCaretCoordinates;\n} else {\n window.getCaretCoordinates = getCaretCoordinates;\n}\n\n})();\n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/cursor-position.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/completion.js": {
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/completion.js\ntype: application/javascript\nmodule-type: library\n\nTry to make self-contained completion module.\n\nTo use this 'module', you need a `widget` with a kind of `editarea` node.\nI do not know the exacte prerequisites of this editarea node for the module to\nwork, but mostly one should be able to attach the following `eventHandler` to\nit:\n - input\n - keydown\n - keypress\n - keyup\nThe `widget` is needed because I use:\n - widget.document\n - widget.wiki.filterTiddlers(...)\n\nFrom the Widget, once you have a proper editarea, you just have to call\n - var completion = new Completion( theWidget, theEditAreaNode, configObject);\nwhere `configObject` is expected to have the following fields. if a field is missing, a default value will be given.\nOne can have many `elements' in the template array.\n\n{\n \"configuration\": {\n \"caseSensitive\" : false,\n \"maxMatch\" : 8,\n \"minPatLength\" : 2,\n \"triggerKeyCombination\" : \"^ \"\n },\n \"template\": [{\n \"pattern\": \"[[\",\n \"filter\": \"[all[tiddlers]!is[system]]\",\n \"start\": \"[[\",\n \"end\": \"]]\"\n }\n ]\n}\n\nTODO : CHECK if needed\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// To compute pixel coordinates of cursor\nvar getCaretCoordinates = require(\"$:/plugins/snowgoon88/edit-comptext/cursor-position.js\");\n\n/** Default Completion Attributes */\nvar DEFATT = { maxMatch: 5, minPatLength: 2, caseSensitive: false, triggerKeyCombination: \"^ \" };\n\n/** \n * Struct for generic Completion Templates.\n * <ul>\n * <li>pat : pattern searched for.</li>\n * <li>filter : filter operation used to find the list of completion options</li>\n * <li>mask: replaced by \"\" when presenting completion options</li>\n * </ul>\n */\nvar Template = function( pat, filter, mask, field, start, end ) {\n this.pat = pat;\n this.filter = filter;\n this.mask = \"^\"+regExpEscape(mask);\n this.field = field;\n this.start = start;\n this.end = end;\n this.pos = 0;\n};\n/**\n * Struct for storing completion options, as we need to memorise \n * the titles of the tiddlers when masked and when body must be displayed.\n */\nvar OptCompletion = function( title, str ) {\n this.title = title;\n this.str = str;\n};\n\nvar keyMatchGenerator = function(combination) {\n\tlet singleMatchGenerator = function(character) {\n\t\tif (character === '^') {\n\t\t\treturn event => event.ctrlKey;\n\t\t}\n\t\telse if (character === '+') {\n\t\t\treturn event => event.shiftKey;\n\t\t}\n\t\telse if (character === '!') {\n\t\t\treturn event => event.altKey;\n\t\t}\n\t\telse {\n\t\t\treturn event => (event.keyCode || event.which) === character.charCodeAt(0);\n\t\t}\n\t};\n\n\tlet matchers = [];\n\tfor (let i = 0; i < combination.length; i++) {\n\t\tmatchers.push(singleMatchGenerator(combination[i]));\n\t}\n\n\treturn event => {\n\t\tfor (let i = 0; i < matchers.length; i++) {\n\t\t\tif (!matchers[i](event)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n};\n\n/**\n * Widget is needed in creating popupNode.\n * - widget.document\n * - widget.wiki.filterTiddlers(...)\n * - sibling : where to create the popup in the DOM.\n */\n\tvar Completion = function( editWidget, areaNode, param, sibling, offTop, offLeft ) {\n\tconsole.log( \"==Completion::creation\" );\n\n // About underlying Widget\n this._widget = editWidget;\n\tthis._areaNode = areaNode;\n\tthis._sibling = (typeof sibling !== 'undefined') ? sibling : this._areaNode;\n\tthis._offTop = (typeof offTop !== 'undefined') ? offTop : 0;\n\tthis._offLeft = (typeof offLeft !== 'undefined') ? offLeft : 0;\t\n\t\t\n // Completions attributes\n /** State */\n this._state = \"VOID\";\n this._template = undefined;\n /** Best matches */\n this._bestMatches = []; // An array of OptCompletion\n this._idxChoice = -1;\n /** Param */\n // maximum nb of match displayed\n this._maxMatch = param.configuration.maxMatch || DEFATT.maxMatch; \n this._minPatLength = param.configuration.minPatLength || DEFATT.minPatLength;\n this._caseSensitive= param.configuration.caseSensitive || DEFATT.caseSensitive;\n this._triggerKeyMatcher = keyMatchGenerator(param.configuration.triggerKeyCombination || DEFATT.triggerKeyCombination);\n /** Input information */\n this._lastChar = \"\";\n this._hasInput = false;\n /** List of Completion Templates */\n this._listTemp = [];\n \n // Read templates from Param\n if( param.template ) {\n \tvar idT;\n \tfor( idT=0; idT<param.template.length; idT++ ) {\n \t var temp = param.template[idT];\n\t // field 'body' ou 'title' (default)\n\t if( temp.body ) {\t\t\n \t\tthis._listTemp.push( \n \t\t new Template( temp.pattern, temp.body,\n\t\t\t\t temp.mask ? temp.mask : \"\",\n\t\t\t\t \"body\",\n \t\t\t\t temp.start, temp.end )\n \t\t);\n\t }\n\t else {\n \t\tthis._listTemp.push( \n \t\t new Template( temp.pattern, \n\t\t\t\t temp.title ? temp.title : temp.filter,\n\t\t\t\t temp.mask ? temp.mask : \"\",\n\t\t\t\t \"title\",\n \t\t\t\t temp.start, temp.end )\n \t\t);\n\t }\n\t //DEBUG temp = this._listTemp[this._listTemp.length-1];\n\t //DEBUG console.log( \"__CONF : \"+temp.pattern+\":\"+temp.filter+\":\"+temp.mask+\":\"+temp.field+\":\"+temp.start+\":\"+temp.end );\n \t}\n }\n // or defaut template\n else {\n \tthis._listTemp = [\n \t new Template( \"[[\", \"[all[tiddlers]!is[system]]\", \n\t\t\t \"\", \"title\",\n\t\t\t \"[[\", \"]]\" )\n \t];\n }\n // Create Popup\n\t//this._popNode = createPopup(this._widget, this._areaNode );\n\tthis._popNode = createPopup(this._widget, this._sibling );\t\n \n // Listen to the Keyboard\n $tw.utils.addEventListeners( this._areaNode,[\n\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInput\"},\n\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydown\"},\n\t{name: \"keypress\", handlerObject: this, handlerMethod: \"handleKeypress\"},\n \t{name: \"keyup\", handlerObject: this, handlerMethod: \"handleKeyup\"}\n ]);\n \n /** \n * Find the bestMatches among listChoice with given pattern\n * @param listChoice : array of String\n * @change : this._bestMatches => array of OptCompletion\n */\n this._findBestMatches = function( listChoice, pattern, nbMax) {\n\t// regexp search pattern, case sensitive\n\tvar flagSearch = this._caseSensitive ? \"\" : \"i\" ;\n\tvar regpat = RegExp( regExpEscape(pattern), flagSearch );\n\tvar regpat_start = RegExp( \"^\"+regExpEscape(pattern), flagSearch );\n\tvar regMask = RegExp( this._template.mask ? this._template.mask : \"\",\"\");\n\tvar nbMatch = 0;\n\t// nbMax set to _maxMatch if no value given\n\tnbMax = nbMax !== undefined ? nbMax : this._maxMatch;\n\n\t//DEBUG console.log( \"__FIND masked=\"+regMask+\" regPat=\"+regpat);\n\n\tthis._bestMatches= [];\n\tvar otherMatches = [];\n\t// We test every possible choice\n\tfor( var i=0; i< listChoice.length; i++ ) {\n\t // apply mask over potential choice\n\t var maskedChoice = listChoice[i].replace( regMask, \"\");\n\t // Test first if pattern is found at START of the maskedChoice\n\t // THEN added to BestMatches\n \t if( regpat_start.test( maskedChoice )) {\n\t\tif (nbMatch >= nbMax) {\n\t\t this._bestMatches.push( new OptCompletion(\"\",\"...\") );\n\t\t return;\n\t\t} else {\n\t\t this._bestMatches.push( new OptCompletion(listChoice[i],maskedChoice) );\n\t\t nbMatch += 1;\n\t\t}\n\t }\n\t // then if pattern is found WITHIN the maskedChoice\n\t // added AFTER the choices that starts with pattern\n\t else if( regpat.test( maskedChoice ) ) {\n\t\tif (nbMatch >= nbMax) {\n\t\t // add all otherMatches to _bestMatches\n\t\t this._bestMatches.push( new OptCompletion(\"\",\"<hr>\") ) ; //separator\n\t\t this._bestMatches = this._bestMatches.concat( otherMatches );\n\t\t this._bestMatches.push( new OptCompletion(\"\",\"...\") );\n\t\t return;\n\t\t} else {\n\t\t otherMatches.push( new OptCompletion(listChoice[i],maskedChoice) );\n\t\t nbMatch += 1;\n\t\t}\n\t }\n\t}\n\t// Here, must add the otherMatches\n\tthis._bestMatches.push( new OptCompletion(\"\",\"<hr>\") ) ; //separator\n\tthis._bestMatches = this._bestMatches.concat( otherMatches );\n };\n /**\n * Change Selected Status of Items\n */\n this._next = function (node) {\n\tvar count = node.children.length;\n\t//DEBUG console.log( \"__NEXT: co=\"+count+\" nbMatch=\"+this._bestMatches.length);\n\tif( this._bestMatches.length > 0 ) \n\t this._goto( node, this._idxChoice < count - 1 ? this._idxChoice + 1 : -1);\n\t//DEBUG this._logStatus( \"NexT\" );\n };\n this._previous = function (node) {\n\tvar count = node.children.length;\n\tvar selected = this._idxChoice > -1;\n\t//DEBUG console.log( \"__PREV: co=\"+count+\" nbMatch=\"+this._bestMatches.length);\n\tif( this._bestMatches.length > 0 ) \n\t this._goto( node, selected ? this._idxChoice - 1 : count - 1);\n\t//DEBUG this._logStatus( \"PreV\" );\n };\n // Should not be used, highlights specific item without any checks!\n this._goto = function (node, idx) {\n\tvar lis = node.children;\n\tvar selected = this._idxChoice > -1;\n\tif (selected) {\n\t lis[this._idxChoice].setAttribute(\"patt-selected\", \"false\");\n\t}\n\n\tthis._idxChoice = idx;\n \n\tif (idx > -1 && lis.length > 0) {\n\t lis[idx].setAttribute(\"patt-selected\", \"true\");\n\t}\n };\n /**\n * Abort pattern and undisplay.\n */\n this._abortPattern = function (displayNode) {\n\tthis._state = \"VOID\";\n\tthis._bestChoices = [];\n\tthis._idxChoice = -1;\n\tthis._undisplay( displayNode );\n\tthis._template = undefined;\n };\n /**\n * Display popupNode at the cursor position in areaNode.\n */\n this._display = function( areaNode, popupNode ) {\n\tif ( popupNode.style.display == 'none' ) {\n\t // Must get coordinate\n\t // Cursor coordinates within area + area coordinates + scroll\n var coord = getCaretCoordinates(areaNode, areaNode.selectionEnd);\n var styleSize = getComputedStyle(areaNode).getPropertyValue('font-size');\n var fontSize = parseFloat(styleSize); \n\t\t\n\t popupNode.style.left = (this._offLeft+areaNode.offsetLeft-areaNode.scrollLeft+coord.left) + 'px';\n\t popupNode.style.top = (this._offTop+areaNode.offsetTop-areaNode.scrollTop+coord.top+fontSize*2) + 'px';\n\t popupNode.style.display = 'block';\n\t}\n };\n /**\n * Undisplay someNode\n */\n this._undisplay = function( displayNode ) {\n\tif ( displayNode.style.display != 'none' ) {\n\t displayNode.style.display = 'none';\n\t}\n };\n\n /**\n * Used for debug\n */\n this._logStatus = function(msg) {\n\tconsole.log( \"__STATUS: \"+this._state+\":-\"+msg+\"- idx=\"+this._idxChoice );\n };\n\n};\n// **************************************************************************\n// ******************************************************************eventCbk\n// **************************************************************************\n/**\n * Disable the *effects* of ENTER / UP / DOWN / ESC when needed.\n * Set _hasInput to false.\n */\nCompletion.prototype.handleKeydown = function(event) {\n // key \n var key = event.keyCode;\n this._hasInput = false;\n \n //DEBUG console.log( \"__KEYDOWN (\"+key+\") hasI=\"+this._hasInput);\n \n // ENTER while selecting\n if( (this._state === \"PATTERN\" || this._state === \"SELECT\") && key === 13 ) {\n \tevent.preventDefault();\n \tevent.stopPropagation();\n }\n // ESC while selecting\n if( (this._state === \"PATTERN\" || this._state === \"SELECT\") && key === 27 ) {\n \tevent.preventDefault();\n \tevent.stopPropagation();\n }\n // UP/DOWN while a pattern is extracted\n if( (key===38 || key===40) && \n\t(this._state === \"PATTERN\" || this._state === \"SELECT\") ) {\n\tevent.preventDefault();\n }\n};\n/**\n * Means that something has been added/deleted => set _hasInput\n */\nCompletion.prototype.handleInput = function(event) {\n this._hasInput = true;\n //DEBUG console.log( \"__INPUT hasI=\"+this._hasInput );\n};\n\t\n/**\n * Set _lastChar, detects CTRL+SPACE.\n */\nCompletion.prototype.handleKeypress = function(event) {\n var curPos = this._areaNode.selectionStart; // cursor position\n var val = this._areaNode.value; // text in the area\n // key \n var key = event.keyCode || event.which;\n\t\n this._lastChar = String.fromCharCode(key);\n //DEBUG console.log( \"__KEYPRESS (\"+key+\") hasI=\"+this._hasInput+\" char=\"+this._lastChar );\n //DEBUG this._logStatus( \"KEYPRESS\" );\n \n // Detect Ctrl+Space\n if( this._triggerKeyMatcher(event) && this._state === \"VOID\" ) {\n\t//Find a proper Template\n\t// first from which we can extract a pattern\n\tif( this._template === undefined ) {\n\t //DEBUG console.log(\"__SPACE : find a Template\" );\n\t var idT, res;\n\t for( idT=0; idT < this._listTemp.length; idT++ ) {\n\t\tres = extractPattern( val, curPos, this._listTemp[idT] );\n\t\t//DEBUG console.log(\" t=\"+this._listTemp[idT].pat+\" res=\"+res);\n\t\t// res is not undefined => good template candidate\n\t\tif( res ) {\n\t\t this._template = this._listTemp[idT];\n\t\t this._state = \"PATTERN\";\n\t\t break;\n\t\t}\n\t }\n\t}\n\telse {\n\t //DEBUG console.log(\"__SPACE : already a template\" );\n\t this._state = \"PATTERN\";\n\t}\n }\n};\n/**\n * ESC -> abort; \n * Detect [ -> VOID switch to _state=PATTERN\n * PATTERN || SELECT : ENTER -> insertText\n * UP/DOWN -> previous/next\n * pattern.length > _minPatternLength -> display \n */\nCompletion.prototype.handleKeyup = function(event) {\n var curPos = this._areaNode.selectionStart; // cursor position\n var val = this._areaNode.value; // text in the area\n // key a\n var key = event.keyCode;\n \n //DEBUG console.log( \"__KEYUP (\"+key+\") hasI=\"+this._hasInput );\n \n // ESC\n if( key === 27 ) {\n\tthis._abortPattern( this._popNode );\n\t//DEBUG this._logStatus( \"\" );\n }\n // Check for every template\n if( this._hasInput && this._state === \"VOID\" ) {\n\t// check every template's pattern\n\tvar idT, template;\n\tfor( idT=0; idT < this._listTemp.length; idT++ ) {\n\t template = this._listTemp[idT];\n\t if( this._lastChar === template.pat[template.pos] ) {\n\t\ttemplate.pos += 1;\n\t\t//DEBUG console.log( \"__CHECK : pat=\"+template.pat+\" pos=\"+template.pos );\n\t\t// Pattern totaly matched ?\n\t\tif( template.pos === template.pat.length ) {\n\t\t //DEBUG console.log( \"__CHECK => found \"+template.pat );\n\t\t this._state = \"PATTERN\";\n\t\t this._template = template;\n\t\t \n\t\t break; // get out of loop\n\t\t}\n\t }\n\t else {\n\t\ttemplate.pos = 0;\n\t\t//DEBUG console.log( \"__CHECK : pat=\"+template.pat+\" pos=\"+template.pos );\n\t }\n\t}\n }\n // a pattern\n else if( this._state === \"PATTERN\" || this._state === \"SELECT\" ) {\n\t// Pattern below cursor : undefined if no pattern\n\tvar pattern = extractPattern( val, curPos, this._template );\n\tif( key === 13 ) { // ENTER\n\t //DEBUG console.log( \"KEY : Enter\" );\n \t // Choice made in the displayNode ?\n \t var selected = this._idxChoice > -1 && this._idxChoice !== this._maxMatch;\n \t //DEBUG console.log( \" > sel=\"+selected+\" len=\"+this._bestChoices.length );\n \t if( selected ) {\n \t\t//DEBUG console.log( \" > selected\" );\n\t\tvar temp = this._bestMatches[this._idxChoice];\n\t\tvar str = temp.str;\n\t\tif( this._template.field === \"body\" ) {\n\t\t str = $tw.wiki.getTiddlerText( temp.title );\n\t\t}\n \t\tinsertInto( this._areaNode,\n\t\t\t str,\n\t\t\t pattern.start, curPos, this._template );\n\t\t// save this new content\n\t\tthis._widget.saveChanges( this._areaNode.value );\n\t }\n\t // otherwise take the first choice (if exists)\n\t else if( this._bestMatches.length > 0 ) {\n \t\t//DEBUG console.log( \" > take first one\" );\n\t\tvar temp = this._bestMatches[0];\n\t\tvar str = temp.str;\n\t\tif( this._template.field === \"body\" ) {\n\t\t str = $tw.wiki.getTiddlerText( temp.title );\n\t\t}\n \t\tinsertInto( this._areaNode,\n\t\t\t str,\n\t\t\t pattern.start, curPos, this._template );\n\t\t// save this new content\n\t\tthis._widget.saveChanges( this._areaNode.value );\n\t }\n\t this._abortPattern( this._popNode );\n\t\t//DEBUG this._logStatus( \"\" );\n \t }\n\t else if( key === 38 && this._hasInput === false) { // up\n\t\tthis._state = \"SELECT\";\n \t\tevent.preventDefault();\n \t\tthis._previous( this._popNode );\n\t\t//DEBUG this._logStatus( pattern.text );\n \t\t//event.stopPropagation();\n \t }\n \t else if( key === 40 && this._hasInput === false) { // down\n\t\tthis._state = \"SELECT\";\n \t\tevent.preventDefault();\n \t\tthis._next( this._popNode );\n\t\t//DEBUG this._logStatus( pattern.text );\n \t\t//event.stopPropagation();\n \t }\n \t else if( pattern ) { // pattern changed by keypressed\n\t\tthis._idxChoice = -1;\n \t\t// log\n\t\t//DEBUG this._logStatus( pattern.text );\n \t\t// Popup with choices if pattern at least minPatLength letters long\n\t\tif( pattern.text.length > (this._minPatLength-1) ) {\n\t\t // compute listOptions from templateFilter\n\t\t var allOptions;\n\t\t if( this._template )\n\t\t\tallOptions = this._widget.wiki.filterTiddlers( this._template.filter );\n\t\t else\n\t\t\tallOptions = this._widget.wiki.filterTiddlers(\"[all[tiddlers]]\");\n\t\t this._findBestMatches( allOptions, pattern.text );\n \t\t this._popNode.innerHTML = \"\";\n \t\t //console.log( \"BC \"+ this._pattern + \" => \" + choice );\n \t\t if (this._bestMatches.length > 0) {\n\t\t\tfor( var i=0; i<this._bestMatches.length; i++) {\n \t\t\t this._popNode.appendChild( \n\t\t\t\titemHTML(this._bestMatches[i].str,\n\t\t\t\t\t pattern.text));\n \t\t\t}\n\t\t\tthis._display( this._areaNode, this._popNode );\t\t\t\n \t\t }\n\t\t else { // no matches\n\t\t\tthis._state = \"PATTERN\";\n\t\t\tthis._undisplay( this._popNode );\n\t\t }\n\t\t}\n \t }\n\t else { // no pattern detected\n\t\tthis._abortPattern( this._popNode );\n\t }\n\t}\n\t// to ensure that one MUST add an input (through onInput())\n\tthis._hasInput = false;\n};\n// **************************************************************************\n// ******************************************************** private functions\n// **************************************************************************\n/**\n * Create popup element.\n */\nvar createPopup = function( widget, node ) {\n // Insert a special \"div\" element for poping up\n // Its 'display' property in 'style' control its visibility\n var popupNode = widget.document.createElement(\"div\");\n popupNode.setAttribute( \"style\", \"display:none; position: absolute;\");\n popupNode.className = \"tc-block-dropdown ect-block-dropdown\";\n // Insert the element into the DOM\n node.parentNode.insertBefore(popupNode,node.nextSibling);\n //CHECK the domNodes is a attribute of Widget [widget.js]\n //CHECK this.domNodes.push(popupNode);\n \n return popupNode;\n};\n/**\n * Extract Pattern from text at a given position.\n *\n * Between previous template.pat (or '[[') and pos\n * \n * If no pattern -> undefined\n */\nvar extractPattern = function( text, pos, template ) {\n // Detect previous and next ]]=>STOP or [[=>START\n var sPat = template.pat ? template.pat : '[[';\n var pos_prevOpen = text.lastIndexOf( sPat, pos );\n var ePat = template.end ? template.end : ']]';\n var pos_prevClosed = text.lastIndexOf( ePat, pos );\n var pos_nextClosed = text.indexOf( ePat, pos );\n //DEBUG console.log(\"__CALC st=\"+sPat+\" -> en=\"+ePat );\n //DEBUG console.log(\"__CALC po=\"+pos_prevOpen+\" pc=\"+pos_prevClosed+\" nc=\"+pos_nextClosed+\" pos=\"+pos);\n pos_nextClosed = (pos_nextClosed >= 0) ? pos_nextClosed : pos;\n \n if( (pos_prevOpen >= 0) && // must be opened\n\t((pos_prevOpen > pos_prevClosed ) || // not closed yet\n\t (pos_prevClosed === pos))) { // closed at cursor\n\t//DEBUG console.log(\" pat=\"+text.slice( pos_prevOpen+sPat.length, pos) );\n\treturn { text: text.slice( pos_prevOpen+sPat.length, pos ),\n\t\t start: pos_prevOpen,\n\t\t end: pos_nextClosed\n\t };\n }\n};\n/**\n * Controls how list items are generated.\n * Function that takes two parameters :\n * - text : suggestion text\n * - input : the user’s input\n * Returns : list item. \n * Generates list items with the user’s input highlighted via <mark>.\n */\nvar itemHTML = function (text, input ) {\n // text si input === ''\n // otherwise, build RegExp that is global (g) and case insensitive (i)\n // to replace with <mark>$&</mark> where \"$&\" is the matched pattern\n var html = input === '' ? text : text.replace(RegExp(regExpEscape(input.trim()), \"gi\"), \"<mark>$&</mark>\");\n return create(\"li\", {\n\tinnerHTML: html,\n\t\"patt-selected\": \"false\"\n });\n};\n/**\n * Insert text into a textarea node, \n * enclosing in 'template.start..template.end'\n *\n * - posBefore : where the 'template.pat+pattern' starts\n * - posAfter : where the cursor currently is\n */\nvar insertInto = function(node, text, posBefore, posAfter, template ) {\n //DEBUG console.log( \"__INSERT : \"+template.pattern+\":\"+template.filter+\":\"+template.mask+\":\"+template.field+\":\"+template.start+\":\"+template.end );\n var val = node.value;\n var sStart = template.start !== undefined ? template.start : '[[';\n var sEnd = template.end !== undefined ? template.end : ']]';\n var newVal = val.slice(0, posBefore) + sStart + text + sEnd + val.slice(posAfter);\n //console.log(\"__INSERT s=\"+sStart+\" e=\"+sEnd);\n //console.log (\"__INSERT pb=\"+posBefore+\" pa=\"+posAfter+\" txt=\"+text);\n //console.log( \"NEW VAL = \"+newVal );\n // WARN : Directly modifie domNode.value.\n // Not sure it does not short-circuit other update methods of the domNode....\n // i.e. could use widget.updateEditor(newVal) from edit-comptext widget.\n // but how to be sure that cursor is well positionned ?\n node.value = newVal;\n node.setSelectionRange(posBefore+text.length+sStart.length+sEnd.length, posBefore+text.length+sStart.length+sEnd.length );\n};\n/**\n * Add an '\\' in front of -\\^$*+?.()|[]{}\n */\nvar regExpEscape = function (s) {\n return s.replace(/[-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n};\n/**\n * Add an element in the DOM.\n */\nvar create = function(tag, o) {\n var element = document.createElement(tag);\n \n for (var i in o) {\n\tvar val = o[i];\n\t\n\tif (i === \"inside\") {\n\t $(val).appendChild(element);\n\t}\n\telse if (i === \"around\") {\n\t var ref = $(val);\n\t ref.parentNode.insertBefore(element, ref);\n\t element.appendChild(ref);\n\t}\n\telse if (i in element) {\n\t element[i] = val;\n\t}\n\telse {\n\t element.setAttribute(i, val);\n\t}\n }\n \n return element;\n};\n\n\nexports.Completion = Completion;\n\n})();\n\n \n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/completion.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/edit-comptext.css": {
"text": "\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/* The \\rules pragma at the top of the tiddler restricts the WikiText \n * to just allow macros and transclusion. This avoids mistakenly \n * triggering unwanted WikiText processing.\n * \n * MUST not save as text/css for macro to be processed\n*/\n\n.ect-block-dropdown li {\n display: block;\n padding: 4px 14px 4px 14px;\n text-decoration: none;\n color: <<colour tiddler-link-foreground>>; /*#5778d8;*/ \n background: transparent;\n}\n.ect-block-dropdown li[patt-selected=\"true\"] {\n color: <<colour tiddler-link-background>>; /*#ffffff; */\n background-color: <<colour tiddler-link-foreground>>; /*#5778d8; */\n}\n.ect-block-dropdown li[patt-selected=\"true\"] mark {\n background: hsl(86, 100%, 21%);\n color: inherit;\n}\n\n",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/snowgoon88/edit-comptext/edit-comptext.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/snowgoon88/edit-comptext/readme": {
"title": "$:/plugins/snowgoon88/edit-comptext/readme",
"text": "!! What ?\nThis plugin adds ''completion'' when editing the body of a tiddler.\n\n* Enter completion-mode by typing `[[` or `CTRL+SPACE`\n* A list of tiddlers with a title that matches the pattern between `[[` and cursor appears\n* `UP/DOWN` keys can select a tiddler, `ENTER` to validate\n* If there is only one match, `ENTER` selects it.\n* `NEW` : you can specify you own trigger pattern and the list of possible completions. See [[$:/plugins/snowgoon88/edit-comptext/usage]] for more details.\n\n\n!! To try it or get the latest news\nSee [[http://snowgoon88.github.io/TW5-extendedit]]\n\n!! Install \n\nTo add the plugin to your own TiddlyWiki5, just drag this link to the browser window:\n\n[[$:/plugins/snowgoon88/edit-comptext]]\n\nSometime, a small configuration step is then needed\n\nin `$:/ControlPanel -> Advanced -> Editor Type -> text/vnd.tiddlywiki` you must chose `comptext` instead of `text`.\n\nReload and « voilà »...\n\nThis plugin is quite mature now :o)\n\n!! Old version\n\n* A version compatible with 5.0.8 to 5.1.11 : [[http://snowgoon88.github.io/TW5-extendedit/index_5.1.11.html]]\n\n!! Source code\nOn github [[https://github.com/snowgoon88/TW5-extendedit]]\n\nGet in touch : snowgoon88(AT)gmail(DOT)com\n"
},
"$:/plugins/snowgoon88/edit-comptext/usage": {
"title": "$:/plugins/snowgoon88/edit-comptext/usage",
"text": "''Important'' : be sure that in `$:/ControlPanel -> Advanced -> Editor Type -> text/vnd.tiddlywiki` you have chosen `comptext` instead of `text`.\n\nConfiguration of the edit-comptext plugin can be done through the tiddler [[$:/plugins/snowgoon88/edit-comptext/config]]. Use a JSON tiddler (do not forget to set the type to `application/json`. See some examples at [[$:/plugins/snowgoon88/edit-comptext/examples]]\n\nIn the `configuration` object you can set :\n\n* `caseSensitive`: `true`/`false` (is search case sensitive ?)\n* `maxMatch` : an `integer` (max number of match displayed)\n* `minPatLength` : an `integer` (minimal length of a pattern to trigger completion search)\n* `triggerKeyCombination ` : a `string` representing the key combination that triggers the autocompletion popup. To use modifier keys in your combination, use following conversions : `ctrl` -> `^`, `alt` -> `!`, `shift` -> `+`. Note: ` ` (literally a whitespace) represents the `space` key.\n\nIn the `template` array you can specify the various completion templates that will be used. Every template can have the following members.\n\n* `pattern` : `string` (pattern that triggers a completion, default \"[[\" )\n* `title` or `body`: `string` (the filter operators that gives the list of valid completions, default \"[all[tiddlers]!is[system]]\"). If you specify `body`, then the body of the tiddler will be inserted on selection.\n* `start` : `string` (when completion is chosen, start is put before the completion, default \"[[\")\n* `end` : `string` (when completion is chosen, end is put after the completion, default \"]]\")\n\n!! Current body of Config Tiddler\n\n{{$:/plugins/snowgoon88/edit-comptext/config}}\n\n"
}
}
}
{
"configuration": {
"caseSensitive" : false,
"maxMatch" : 8,
"minPatLength" : 2,
"triggerKeyCombination" : "^ "
},
"template": [{
"pattern": "[[",
"filter": "[all[tiddlers]!is[system]]",
"start": "[[",
"end": "]]"
}
]
}
{
"tiddlers": {
"$:/_sq/Stories/config/openLinkDivert": {
"text": "bottom",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/openLinkDivert",
"modified": "20200422063802598",
"created": "20170629173808777"
},
"$:/_sq/Stories/config/showRiverDropZones": {
"text": "disable",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/showRiverDropZones",
"modified": "20200417233130361",
"created": "20200417170940547"
},
"$:/_sq/Stories/config/sidebaroverlaybreakpoint": {
"text": "1500px",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/sidebaroverlaybreakpoint",
"modified": "20200416182732404",
"created": "20170616192704225"
},
"$:/_sq/Stories/config/snippets/viewswitcher": {
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/_sq/Stories/config/Story2-storyview\">\n<div class=\"tc-chooser\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/_sq/Stories/config/Story2-storyview}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>>\n<$transclude tiddler=<<icon>>/>\n<$text text=<<storyview>>/>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/snippets/viewswitcher",
"tags": "",
"modified": "20200416183434009",
"created": "20200416183108721"
},
"$:/_sq/Stories/config/Story2-storyview": {
"text": "classic",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/Story2-storyview",
"tags": "",
"modified": "20200417205214764",
"created": "20200415213157946"
},
"$:/_sq/Stories/config/twostorybreakpoint": {
"text": "1100px",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/twostorybreakpoint",
"modified": "20200416182753284",
"created": "20170616192701335"
},
"$:/_sq/Stories/CorePatch/ButtonDispatchMessage": {
"text": "var ButtonWidget = require(\"$:/core/modules/widgets/button.js\").button;\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event, navigateFromNode: this});\n};",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/_sq/Stories/CorePatch/ButtonDispatchMessage",
"tags": "",
"module-type": "startup",
"modified": "20200414150813641",
"created": "20170616103202530"
},
"$:/_sq/Stories/divertTiddlerEditMacro": {
"text": "\\define divertTiddlerButton()\n<$set name=\"original\" value={{!!draft.title}}>\n<$set name=\"otherStoryList\" filter=\"[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]\" select=\"0\">\n\t<$button class=<<tv-config-toolbar-class>> tooltip=\"Divert this tiddler to the other story for viewing\">\n\t\t<$reveal state=\"$:/_sq/Stories/config/openLinkDivert\" type=\"nomatch\" text=\"top\" default=\"top\">\n\t\t\t<$action-listops $tiddler=<<otherStoryList>> $subfilter=\"[<original>]\"/>\n\t\t</$reveal>\n\t\t<$reveal state=\"$:/_sq/Stories/config/openLinkDivert\" type=\"match\" text=\"top\" default=\"top\">\n\t\t\t<$action-listops $tiddler=<<otherStoryList>> $subfilter=\"+[prepend<original>]\"/>\n\t\t</$reveal>\n\t\t<span class=\"sq-button-divert-right sq-button-divert\">{{$:/_sq/Stories/icons/divert-right.svg}}</span><span class=\"sq-button-divert-left sq-button-divert\">{{$:/_sq/Stories/icons/divert-left.svg}}</span>\n\t</$button>\n</$set>\n</$set>\n\\end\n\n<<divertTiddlerButton>>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/divertTiddlerEditMacro",
"tags": "$:/tags/EditToolbar",
"modified": "20200425133731696",
"list-before": "$:/core/ui/Buttons/delete",
"description": "divert right/left",
"created": "20170616074148780",
"caption": "{{$:/_sq/Stories/icons/divert-right.svg}}"
},
"$:/_sq/Stories/divertTiddlerMacro": {
"text": "\\define __me()\n[[$(currentTiddler)$]]\n\\end\n\n\\define divertTiddlerButton()\n<$set name=\"activeStoryList\" value=<<tv-story-list>> >\n<$set name=\"otherStoryList\" filter=\"[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]\" select=\"0\">\n<$set name=\"otherHistoryList\" filter=\"[enlist{$:/_sq/Stories/HistoriesList!!list}] -[<tv-history-list>]\" select=\"0\">\n\t<$button class=<<tv-config-toolbar-class>> tooltip=\"Divert this tiddler to the other story\">\n\t\t<$action-listops $tiddler=<<activeStoryList>> $subfilter=\"+[remove<__me>]\"/>\n\t\t<$reveal state=\"$:/_sq/Stories/config/openLinkDivert\" type=\"nomatch\" text=\"top\" default=\"top\">\n\t\t\t<$action-listops $tiddler=<<otherStoryList>> $subfilter=<<__me>>/>\n\t\t</$reveal>\n\t\t<$reveal state=\"$:/_sq/Stories/config/openLinkDivert\" type=\"match\" text=\"top\" default=\"top\">\n\t\t\t<$action-listops $tiddler=<<otherStoryList>> $subfilter=\"+[prepend<__me>]\"/>\n\t\t</$reveal>\n\t\t<$action-addtohistory $history=<<otherHistoryList>> $title=<<currentTiddler>> />\n\t\t<span class=\"sq-button-divert-right sq-button-divert\">{{$:/_sq/Stories/icons/divert-right.svg}}</span><span class=\"sq-button-divert-left sq-button-divert\">{{$:/_sq/Stories/icons/divert-left.svg}}</span>\n\t</$button>\n</$set>\n</$set>\n</$set>\n\\end\n\n<<divertTiddlerButton>>\n\n\n",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/divertTiddlerMacro",
"tags": "$:/tags/ViewToolbar",
"modified": "20200425132210151",
"list-before": "",
"description": "Divert left/right",
"created": "20170609055347900",
"caption": "{{$:/_sq/Stories/icons/divert-right.svg}} divert left/right"
},
"$:/_sq/Stories/EditTiddlerHook": {
"text": "$tw.hooks.addHook(\"th-editing-tiddler\", function(event) {\n\tvar targetTitle = event.tiddlerTitle;\n\tvar stories = $tw.wiki.getTiddlerList('$:/_sq/Stories/StoriesList');\n\tvar draftTitle = $tw.wiki.findDraft(targetTitle);\n\tvar shiftKey = event.event.shiftKey;\n\n\t//if !draftTitle, its not open anywhere\n\t//cant be open without existing, but can exist without being opened\n\n\tif(!draftTitle && !shiftKey) {\n\t\treturn true;\n\t}\n\n\tvar node = event.navigateFromNode;\n\tvar thisStory = node.getVariable(\"tv-story-title\");\n\tvar otherStory = (stories[0] == thisStory)? stories[1] : stories[0];\n\tvar otherStoryList = $tw.wiki.getTiddlerList(otherStory);\n\n\tif(otherStoryList.indexOf(draftTitle) > -1) {\n\t\talert(\"This tiddler is already open for editing in the other story\");\n\t\treturn false;\n\t}\n\n\tvar generateDraftTitle = function(title) {\n\t\tvar c = 0,\n\t\tdraftTitle;\n\t\tdo {\n\t\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\";\n\t\t\tc++;\n\t\t} while($tw.wiki.tiddlerExists(draftTitle));\n\t\treturn draftTitle;\n\t};\n\t\n\tif(shiftKey) {\n //open in other story\n\t\tif(!draftTitle) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(targetTitle);\n\t\t\tdraftTitle = generateDraftTitle(targetTitle);\n\t\t\tvar draftTiddler = new $tw.Tiddler(\n\t\t\t\ttiddler,\n\t\t\t\t{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\t\"draft.of\": targetTitle\n\t\t\t\t},\n\t\t\t\t$tw.wiki.getModificationFields()\n\t\t\t);\n\t\t\t$tw.wiki.addTiddler(draftTiddler);\n\t\t}\n\t\tvar otherStoryTiddler = $tw.wiki.getTiddler(otherStory);\n\t\totherStoryList.splice(0 ,0, draftTitle);\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: otherStory},\n\t\t\totherStoryTiddler,\n\t\t\t{list:otherStoryList}\n\t\t));\n\t\treturn false;\n\t}\n\n\treturn true;\n});\n",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/_sq/Stories/EditTiddlerHook",
"tags": "",
"module-type": "startup",
"modified": "20200415212818072",
"created": "20170616091547338"
},
"$:/_sq/Stories/HistoriesList": {
"text": "",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/HistoriesList",
"tags": "",
"modified": "20200414145004336",
"list": "$:/_sq/Stories/Story2HistoryList $:/HistoryList",
"created": "20170610091606312"
},
"$:/_sq/Stories/icons/bars-empty.svg": {
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 100 100\" version=\"1.1\" x=\"0px\" y=\"0px\" class=\"tc-image-bars-empty tc-image-button\" width=\"40pt\" height=\"40pt\"><title>Single fold</title><desc>Created with Sketch.</desc><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g stroke=\"#000000\"><rect stroke-width=\"2\" x=\"17\" y=\"17\" width=\"66\" height=\"66\" rx=\"2\"/><path d=\"M50.5,18.5 L50.5,80.789646\" stroke-linecap=\"round\" stroke-dasharray=\"2,3,2,3\"/></g></g></svg>",
"bag": "default",
"revision": "0",
"type": "image/svg+xml",
"title": "$:/_sq/Stories/icons/bars-empty.svg",
"tags": "",
"modified": "20200414145004334",
"created": "20170617203017607"
},
"$:/_sq/Stories/icons/bars.svg": {
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 100 100\" enable-background=\"new 0 0 100 100\" xml:space=\"preserve\" class=\"tc-image-bars tc-image-button\" width=\"20\" height=\"20\" ><path d=\"M41.667,0h-37.5C0,0,0,0,0,4.167v91.667C0,100,0,100,4.167,100h37.5c4.167,0,4.167,0,4.167-4.167V4.167 C45.833,0,45.833,0,41.667,0z M95.833,0h-37.5c-4.167,0-4.167,0-4.167,4.167v91.667c0,4.167,0,4.167,4.167,4.167h37.5 C100,100,100,100,100,95.833V4.167C100,0,100,0,95.833,0z\"/></svg>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/icons/bars.svg",
"modified": "20200414145004333",
"created": "20170608202154511"
},
"$:/_sq/Stories/icons/divert-left.svg": {
"text": "<svg class=\"tc-image-button\" x=\"0px\" y=\"0px\" width=\"30pt\" height=\"30pt\" viewBox=\"0 0 100 125\" ><path d=\"M7.197,44.697l27.5-27.5c2.929-2.929,7.678-2.929,10.607,0c2.929,2.929,2.929,7.678,0,10.607L30.607,42.5H70 h0c5.118,0,10.237,1.953,14.142,5.858c7.81,7.81,7.81,20.474,0,28.284c-2.929,2.929-7.678,2.929-10.607,0 c-2.929-2.929-2.929-7.678,0-10.607c1.953-1.953,1.953-5.118,0-7.071C72.559,57.988,71.28,57.5,70,57.5h0v0H30.607l14.697,14.697 c2.929,2.929,2.929,7.678,0,10.607c-2.929,2.929-7.678,2.929-10.607,0L16.036,64.142l-8.839-8.839 C4.268,52.374,4.268,47.626,7.197,44.697z\"/></svg>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/icons/divert-left.svg",
"modified": "20200414145004330",
"created": "20170609061834078"
},
"$:/_sq/Stories/icons/divert-right.svg": {
"text": "<svg class=\"tc-image-button\" x=\"0px\" y=\"0px\" width=\"30pt\" height=\"30pt\" viewBox=\"0 0 100 125\" ><path d=\"M92.803,44.697l-27.5-27.5c-2.929-2.929-7.678-2.929-10.607,0c-2.929,2.929-2.929,7.678,0,10.607 L69.393,42.5H30h0c-5.118,0-10.237,1.953-14.142,5.858c-7.81,7.81-7.81,20.474,0,28.284c2.929,2.929,7.678,2.929,10.607,0 c2.929-2.929,2.929-7.678,0-10.607c-1.953-1.953-1.953-5.118,0-7.071C27.441,57.988,28.72,57.5,30,57.5h0v0h39.393L54.697,72.197 c-2.929,2.929-2.929,7.678,0,10.607s7.678,2.929,10.607,0l18.661-18.661l8.839-8.839C95.732,52.374,95.732,47.626,92.803,44.697z\"/></svg>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/icons/divert-right.svg",
"modified": "20200414145004328",
"created": "20170609061824401"
},
"$:/_sq/Stories/LinkKeybindings": {
"text": "$tw.hooks.addHook('th-navigating', function(event) {\n\t//override core behaviour when shift key was used\n\tif( ((event.event && event.event.shiftKey) || (event.shiftKey && event)) && event.navigateTo) {\n\t\tvar stories = $tw.wiki.getTiddlerList('$:/_sq/Stories/StoriesList');\n\t\tvar node = event.navigateFromNode;\n\t\tvar thisStory = node.getVariable(\"tv-story-list\");\n\t\tvar otherStory = (stories[0] == thisStory)? stories[1] : stories[0];\t\n\t\tvar storyList = $tw.wiki.getTiddlerList(otherStory);\n\t\tvar slot = storyList.indexOf(event.navigateTo);\n\t\t\n\t\tif(slot < 0){\n\t\t\tif($tw.wiki.getTiddlerText(\"$:/config/Navigation/openLinkFromOutsideRiver\") === \"bottom\") {\n\t\t\t\n\t\t\t\tstoryList.splice(storyList.length, 0, event.navigateTo);\n\t\t\t} else {\n\t\t\t\tstoryList.splice(0, 0, event.navigateTo);\n\t\t\t}\n\t\t\tvar storyTiddler =\t$tw.wiki.getTiddler(otherStory);\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t\t{title: otherStory},\n\t\t\t\tstoryTiddler,\n\t\t\t\t{list:storyList}\n\t\t\t));\n\t\t}\n\t\tvar histories = $tw.wiki.getTiddlerList('$:/_sq/Stories/HistoriesList');\n\t\tvar thisHistory = node.getVariable(\"tv-history-list\");\n\t\tvar otherHistory = (histories[0] == thisHistory) ? histories[1] : histories[0];\t\t\n\t\t$tw.wiki.addToHistory(event.navigateTo,event.navigateFromClientRect, otherHistory); \n\t\tif($tw.wiki.getTiddlerText(\"$:/config/_sq/Stories/story2\") === \"no\") {\n\t\t\t$tw.wiki.setText(\"$:/config/_sq/Stories/story2\",undefined,undefined,\"yes\",undefined);\n\t\t}\n\t\tevent.navigateTo = false;\n\t}\n\treturn event;\n});",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/_sq/Stories/LinkKeybindings",
"tags": "",
"module-type": "startup",
"modified": "20200422065240983",
"created": "20170610071940508"
},
"$:/_sq/Stories/startup-actions": {
"text": "<$action-deletetiddler $tiddler=\"$:/_sq/Stories/Story2HistoryList\"/>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/startup-actions",
"tags": "$:/tags/StartupAction/Browser",
"modified": "20200417172054199",
"created": "20200417171756341"
},
"$:/_sq/Stories/Stories.css": {
"created": "20170608102837192",
"text": "\\define if-fluid-fixed(text,disableText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n</$reveal>\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"nomatch\" text=\"fluid-fixed\">\n$disableText$\n</$reveal>\n\\end\n\n\\define if-two-stories(twoStoryCommon, twoStorySidebar twoStoryNoSidebar, oneStoryText)\n<$reveal default=\"yes\" type=\"match\" text={{{[{$:/_sq/Stories/Story2StoryList!!list}length[]match[0]then[no]] ~[{$:/config/_sq/Stories/story2}]}}}>\n$twoStoryCommon$\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">\n$twoStorySidebar$\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$twoStoryNoSidebar$\n</$reveal>\n</$reveal>\n<$reveal default=\"yes\" type=\"nomatch\" text={{{[{$:/_sq/Stories/Story2StoryList!!list}length[]match[0]then[no]] ~[{$:/config/_sq/Stories/story2}]}}}>\n$oneStoryText$\n</$reveal>\n\\end\n\n\n<pre>\n\n.tc-page-container.tc-page-view-zoomin .tc-storyview-zoomin-tiddler {\n\twidth: 100%;\n\tposition: relative;\n}\n\n.tc-btn-storytwotoggle {\n\tpadding:0px;\n}\n\n.tc-btn-storytwotoggle img {\n\twidth: 30px;\n\theight: 30px;\n}\n\n.tc-sidebar-lists .tc-btn-storytwotoggle-bars {\n\tfont-size: 1.5em;\n}\n\n.tc-sidebar-lists .tc-btn-storytwotoggle-bars svg {\n\tfill: #aaa;\n}\n\n.tc-story-river .sq-button-divert-left{\n\tdisplay: none;\n}\n\n.sq-story-rivertwo-scrollable::-webkit-scrollbar{width:10px}\n\n.sq-story-rivertwo-scrollable::-webkit-scrollbar-thumb{background:#a5a5a5;border-radius:10px}\n\n.sq-story-rivertwo-scrollable::-webkit-scrollbar-thumb:hover{background:#6f6f6f}\n\n.sq-story-rivertwo-scrollable::-webkit-scrollbar-thumb:active{background:#333}\n\n\t.tc-sidebar-tab-open.sq-sidebar-open .tc-btn-invisible.tc-btn-mini {\n\t\tpadding: 0 0.2em;\n\t}\n\n\t.tc-sidebar-tab-open.sq-sidebar-open .tc-sidebar-tab-open-item {\n\t\tpadding: 0.1em;\n\t}\n\t\n\thtml body.tc-body .tc-sidebar-tab-open.sq-sidebar-open a.tc-tiddlylink {\n\t\tfont-weight: 400;\n\t}\n\n.tc-sidebar-tab-open.sq-sidebar-open a.tc-tiddlylink {\n\tcolor:<<color very-muted-foreground>>;\n}\n\n.tc-sidebar-tab-open.sq-sidebar-open a.tc-tiddlylink:hover {\n\tcolor: <<color sidebar-tiddler-link-foreground-hover>>;\n}\n\n<<if-two-stories twoStoryCommon:\"\"\"\n@media (min-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) {\n.sq-story-rivertwo-scrollable {\n\tposition: fixed;\n\ttop: calc(1em + {{$:/themes/tiddlywiki/vanilla/metrics/storytop}});\n\tbottom: 0;\n}\n\n.tc-story-river.sq-story-rivertwo {\n\tmargin-right: 1em !important;\n\tmargin-left: 0;\n}\n\n.tc-story-river {\n\tfloat: left;\n\tmargin-right: 0;\n\tpadding-right: 0em;\n\tpadding-top: 0em;\n}\n\n.tc-story-river .sq-button-divert-right{\n\tdisplay:inline-block;\n}\n\n.tc-story-river .sq-button-divert-left{\n\tdisplay: none;\n}\n\n.tc-story-river.sq-story-rivertwo .sq-button-divert-left{\n\tdisplay:inline-block;\n}\n\n.tc-story-river.sq-story-rivertwo .sq-button-divert-right{\n\tdisplay: none;\n}\n\n.sq-storydropzone {\n\tpadding: 0.5em;\n\tborder:1px solid #bbb;\n\tcolor: #ccc;\n\ttext-align: center;\n\tposition: relative;\n\twidth: calc(100% - 45px);\n\t-moz-box-shadow: inset 0 0 10px #ccc;\n\t-webkit-box-shadow: inset 0 0 10px #ccc;\n\tbox-shadow: inset 0 0 10px #ccc;\n}\n\n.sq-storydropzone-newtiddlerbutton {\n\twidth: 40px;\n\tfloat: right;\n\tpadding: 0.2em 0.5em 0.5em 0.5em;\n\tmargin-top: 0em;\n\tmargin-right: 0.2em;\n}\n\n}\n\"\"\" twoStorySidebar:\"\"\"\n\n@media (min-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) {\n.tc-story-river {\n\twidth: calc((100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}} - {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}})/2);\n}\n\n.sq-storydropzone {\n\tpadding: 0.5em;\n\tborder:1px solid #bbb;\n\tcolor: #ccc;\n\ttext-align: center;\n}\n\n.sq-story-rivertwo-scrollable {\n\twidth: calc((98% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}} - {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}})/2);\n}\n}\n\n@media (min-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) and (max-width: {{$:/_sq/Stories/config/sidebaroverlaybreakpoint}}) {\n\t.tc-story-river {\n\t\twidth:calc((100% - 0px - 60px)/2);\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tz-index:999;\n\t\tbackground:#eee;\n\t\tborder-left: 1px solid #ddd;\n\t}\n\n\t.sq-story-rivertwo-scrollable {\n\t\twidth: 49%;\n\t}\n\n}\n\n\"\"\" twoStoryNoSidebar:\"\"\"\n\n.tc-story-river.sq-story-rivertwo {\n\tpadding-right: 0.5em;\n}\n\n@media (min-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) {\n.tc-story-river {\n\twidth: calc(49% - 1em);\n}\n\n.sq-story-rivertwo-scrollable {\n\twidth:calc((100% - 0px - 60px)/2);\n}\n\n\n\n\n}\n\n@media (min-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) and (max-width: {{$:/_sq/Stories/config/sidebaroverlaybreakpoint}}) {\n\t.tc-sidebar-scrollable {\n\t\tdisplay:none;\n\t}\n}\n\n\"\"\" oneStoryText: \"\"\"\n.sq-twostoriesonly {\n\tdisplay: none;\n}\n\n.tc-story-river {\n\tpadding-top: 15px;\n}\n\n\"\"\"\n>>\n\n@media (max-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) {\n\t.sq-twostoriesonly {\n\t\tdisplay: none;\n\t}\n\n\t.tc-btn-storytwotoggle {\n\t\tdisplay: none;\n\t}\n\n\t.sq-stories-disabled {\n\t\tdisplay: none;\n\t}\n\n<<if-two-stories twoStoryCommon:\"\"\"\n\n\t.tc-storytwo-river {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\twidth: auto;\n\t\tpadding-top: 15px;\n\t}\n\n\t.tc-story-river .sq-button-divert {\n\t\tdisplay: none;\n\t}\n\n\n\t.sq-story-rivertwo-scrollable {\n\t\tdisplay:none;\n\t}\n\n\n\"\"\" twoStorySidebar:\"\"\"\n\t.tc-story-river {\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tborder-left: 0;\n\t\tz-index: inherit;\n\t\tbackground: transparent;\n\t}\n\"\"\" twoStoryNoSidebar: \"\"\"\n\t.tc-story-river {\n\t\tpadding-right: 2em;\n\t}\n\"\"\"\n\n>>\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.tc-story-river {\nmargin-right: 0;\n}\n}\n\n\n</pre>\n",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/Stories.css",
"tags": "$:/tags/Stylesheet",
"modified": "20200425174509233"
},
"$:/_sq/Stories/StoriesList": {
"text": "",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/StoriesList",
"tags": "",
"modified": "20200414145004320",
"list": "$:/_sq/Stories/Story2StoryList $:/StoryList",
"created": "20170610072420739"
},
"$:/_sq/Stories/Story2StoryList": {
"title": "$:/_sq/Stories/Story2StoryList",
"created": "20170615140314952",
"text": "",
"bag": "default",
"revision": "8",
"type": "text/vnd.tiddlywiki",
"modified": "20200425175456458",
"list": ""
},
"$:/_sq/Stories/Templates/RiverDropZone": {
"text": "\\define drop-actions()\n<$action-listops $tiddler=<<otherStoryList>> $subfilter=\"+[remove<actionTiddler>]\"/> \n<$action-navigate $to=<<actionTiddler>>/>\n\\end\n<$reveal state=\"$:/_sq/Stories/config/showRiverDropZones\" text=\"enable\" type=\"match\" default=\"disable\">\n<div class=\"sq-storydropzone-container sq-twostoriesonly\">\n\t<div class=\"sq-storydropzone-newtiddlerbutton tc-page-controls\">\n\t\t<$transclude tiddler=\"$:/core/ui/Buttons/new-tiddler\"/>\n\t</div>\n\t<div style=\"position: relative; \" class=\"sq-storydropzone sq-twostoriesonly\">\n\t\t<$set name=\"otherStoryList\" filter=\"[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]\" select=\"0\">\n\t\t<$droppable actions=<<drop-actions>>>\n\t\t\t<div class=\"tc-droppable-placeholder\">\n\t\t\t \n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\tDrop link here to open\n\t\t\t</div>\n\t\t</$droppable>\n\t\t</$set>\n\t</div>\n</div>\n</$reveal>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/Templates/RiverDropZone",
"tags": "$:/tags/AboveStory",
"modified": "20200417170915429",
"list-before": "$:/core/ui/PageTemplate/story",
"created": "20170609191118712"
},
"$:/_sq/Stories/Templates/Story2Template": {
"text": "\\whitespace trim\n<$reveal state=\"$:/config/_sq/Stories/story2\" type=\"match\" text=\"yes\" default=\"no\" retain=\"yes\" animate=\"no\" tag=\"section\" class=\"tc-story-river tc-storytwo-river sq-story-rivertwo\">\n\n<$navigator story=\"$:/_sq/Stories/Story2StoryList\" history=\"$:/_sq/Stories/Story2HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n<$scrollable class=\"sq-story-rivertwo-scrollable\" fallthrough=\"no\">\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/_sq/Stories/Story2StoryList]]\" history=\"$:/_sq/Stories/Story2HistoryList\" template=\"$:/core/ui/ViewTemplate\" editTemplate=\"$:/core/ui/EditTemplate\" storyview={{$:/_sq/Stories/config/Story2-storyview}}>\n\n<div>\n<$transclude/>\n</div>\n\n</$list>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</$scrollable>\n</$navigator>\n\n</$reveal>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/Templates/Story2Template",
"tags": "$:/tags/PageTemplate",
"modified": "20200425140654266",
"list-after": "$:/core/ui/PageTemplate/story",
"created": "20170608171610013"
},
"$:/_sq/Stories/Templates/StoryToggleMenu": {
"text": "<div class=\"sq-twostoriesonly\">\n<$reveal state=\"$:/config/_sq/Stories/story2\" type=\"nomatch\" text=\"no\" default=\"no\">\n<$button set=\"$:/config/_sq/Stories/story2\" setTo=\"no\" tooltip=\"Hide right column\" aria-label=\"\" class=\"tc-btn-invisible tc-btn-storytwotoggle\">{{$:/_sq/Stories/icons/bars-empty.svg}} </$button> Hide right column\n</$reveal>\n</div>\n<$reveal state=\"$:/config/_sq/Stories/story2\" type=\"match\" text=\"no\" default=\"no\">\n<$button set=\"$:/config/_sq/Stories/story2\" setTo=\"yes\" tooltip=\"Show right column\" aria-label=\"\" class=\"tc-btn-invisible tc-btn-storytwotoggle tc-btn-storytwotoggle-bars\">{{$:/_sq/Stories/icons/bars.svg}}</$button> <span class=\"sq-stories-disabled\">Show right column</span>\n</$reveal>\n",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/Templates/StoryToggleMenu",
"modified": "20200425133224298",
"created": "20170608172531552"
},
"$:/_sq/Stories/Templates/StoryTogglePageControl": {
"text": "<span class=\"sq-twostoriesonly\">\n\t<$reveal state=\"$:/config/_sq/Stories/story2\" type=\"nomatch\" text=\"no\" default=\"no\">\n\t\t<$button set=\"$:/config/_sq/Stories/story2\" setTo=\"no\" tooltip=\"Hide right column\" aria-label=\"\" class=\"tc-btn-invisible tc-btn-storytwotoggle\">{{$:/_sq/Stories/icons/bars-empty.svg}} </$button>\n\t</$reveal>\n</span>\n<$reveal state=\"$:/config/_sq/Stories/story2\" type=\"match\" text=\"no\" default=\"no\">\n\t<$button set=\"$:/config/_sq/Stories/story2\" setTo=\"yes\" tooltip=\"Show right column\" aria-label=\"\" class=\"tc-btn-invisible tc-btn-storytwotoggle\">{{$:/_sq/Stories/icons/bars.svg}}</$button>\n</$reveal>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/Templates/StoryTogglePageControl",
"tags": "$:/tags/PageControls",
"modified": "20200425133303133",
"description": "Show right column for second story",
"created": "20170617182141154",
"caption": "{{$:/_sq/Stories/icons/bars.svg}} Show right column"
},
"$:/_sq/Stories/widgets/action-addtohistory": {
"text": "/*\\\ntype: application/javascript\nmodule-type: widget\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar AddToHistoryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nAddToHistoryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nAddToHistoryWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nAddToHistoryWidget.prototype.execute = function() {\n\tthis.historyTitle = this.getAttribute(\"$history\",this.getVariable(\"tv-history-title\"));\n\tthis.newTitle = this.getAttribute(\"$title\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nAddToHistoryWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$historyTitle\"] || changedAttributes[\"$title\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nAddToHistoryWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tthis.wiki.addToHistory(this.newTitle,{},this.historyTitle);\t\n\treturn true; // Action was invoked\n};\n\nexports[\"action-addtohistory\"] = AddToHistoryWidget;\n\n})();",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/_sq/Stories/widgets/action-addtohistory",
"tags": "",
"module-type": "widget",
"modified": "20200416234746904",
"created": "20200416232452797"
},
"$:/_sq/Stories/Story2HistoryList": {
"created": "20200425131030296",
"current-tiddler": "$:/plugins/sq/Stories",
"title": "$:/_sq/Stories/Story2HistoryList",
"type": "application/json",
"text": "[\n {\n \"title\": \"$:/config/Tiddlers/TitleLinks\",\n \"fromPageRect\": {\n \"top\": 249.296875,\n \"left\": 1230,\n \"width\": 183.515625,\n \"right\": 1413.515625,\n \"bottom\": 269.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerMacro\",\n \"fromPageRect\": {\n \"top\": 623.296875,\n \"left\": 1230,\n \"width\": 220.390625,\n \"right\": 1450.390625,\n \"bottom\": 643.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerMacro\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerMacro\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\",\n \"fromPageRect\": {\n \"top\": 319.296875,\n \"left\": 1230,\n \"width\": 245.53125,\n \"right\": 1475.53125,\n \"bottom\": 339.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerEditMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryToggleMenu\",\n \"fromPageRect\": {\n \"top\": 537.296875,\n \"left\": 1230,\n \"width\": 283.546875,\n \"right\": 1513.546875,\n \"bottom\": 557.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\",\n \"fromPageRect\": {\n \"top\": 297.296875,\n \"left\": 1230,\n \"width\": 326.734375,\n \"right\": 1556.734375,\n \"bottom\": 317.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryToggleMenu'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryToggleMenu\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryToggleMenu'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryToggleMenu\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerEditMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryToggleMenu'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryToggleMenu\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryToggleMenu'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryToggleMenu\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerEditMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\"\n },\n {\n \"title\": \"$:/core/ui/SideBar/Open\",\n \"fromPageRect\": {\n \"top\": 337.296875,\n \"left\": 1230,\n \"width\": 161.8125,\n \"right\": 1391.8125,\n \"bottom\": 357.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/core/ui/SideBar/Open'\"\n },\n {\n \"title\": \"$:/core/ui/SideBar/Open\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerEditMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerEditMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\"\n },\n {\n \"title\": \"TiddlyBlink\"\n },\n {\n \"title\": \"Stories-overview\",\n \"fromPageRect\": {\n \"top\": 1035.921875,\n \"left\": 1190,\n \"width\": 101.6875,\n \"right\": 1291.6875,\n \"bottom\": 1054.921875,\n \"height\": 19\n }\n },\n {\n \"title\": \"$:/.giffmex/Customize.TiddlyBlink\",\n \"fromPageRect\": {\n \"top\": 735.625,\n \"left\": 107.5,\n \"width\": 145.171875,\n \"right\": 252.671875,\n \"bottom\": 755.625,\n \"height\": 20\n }\n },\n {\n \"title\": \"$:/.giffmex/meta/hack.tiddlyblink\",\n \"fromPageRect\": {\n \"top\": 757.625,\n \"left\": 107.5,\n \"width\": 129.59375,\n \"right\": 237.09375,\n \"bottom\": 777.625,\n \"height\": 20\n }\n },\n {\n \"title\": \"TiddlyBlink\",\n \"fromPageRect\": {\n \"top\": 161.296875,\n \"left\": 221.953125,\n \"width\": 71.859375,\n \"right\": 293.8125,\n \"bottom\": 181.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"TiddlyBlink\",\n \"fromPageRect\": {\n \"top\": 161.296875,\n \"left\": 221.953125,\n \"width\": 71.859375,\n \"right\": 293.8125,\n \"bottom\": 181.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"Stories-overview\",\n \"fromPageRect\": {}\n },\n {\n \"title\": \"Draft of 'Stories-overview'\"\n },\n {\n \"title\": \"Stories-overview\"\n },\n {\n \"title\": \"Draft of 'Stories-overview'\"\n },\n {\n \"title\": \"Stories-overview\"\n },\n {\n \"title\": \"Draft of 'Stories'\"\n },\n {\n \"title\": \"Plugin maker\",\n \"fromPageRect\": {\n \"top\": 481.34375,\n \"left\": 2259,\n \"width\": 80.890625,\n \"right\": 2339.890625,\n \"bottom\": 500.34375,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of 'Plugin maker'\"\n },\n {\n \"title\": \"Plugin maker\"\n },\n {\n \"title\": \"Stories\",\n \"fromPageRect\": {\n \"top\": 296.84375,\n \"left\": 2259,\n \"width\": 41.453125,\n \"right\": 2300.453125,\n \"bottom\": 315.84375,\n \"height\": 19\n }\n },\n {\n \"title\": \"Plugin maker\",\n \"fromPageRect\": {\n \"top\": 501.34375,\n \"left\": 2259,\n \"width\": 80.890625,\n \"right\": 2339.890625,\n \"bottom\": 520.34375,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of 'Plugin maker'\"\n },\n {\n \"title\": \"Plugin maker\"\n },\n {\n \"title\": \"Draft of 'Stories'\"\n },\n {\n \"title\": \"Stories\"\n },\n {\n \"title\": \"$:/_sq/Stories/config/Settings\",\n \"fromPageRect\": {\n \"top\": 360.171875,\n \"left\": 1245,\n \"width\": 182.21875,\n \"right\": 1427.21875,\n \"bottom\": 379.171875,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/config/Settings'\"\n },\n {\n \"title\": \"$:/_sq/Stories/config/Settings\"\n },\n {\n \"title\": \"$:/_sq/Stories/config/Settings\",\n \"fromPageRect\": {\n \"top\": 360.171875,\n \"left\": 1245,\n \"width\": 182.21875,\n \"right\": 1427.21875,\n \"bottom\": 379.171875,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/config/Settings'\"\n },\n {\n \"title\": \"$:/_sq/Stories/config/Settings\"\n },\n {\n \"title\": \"Draft of 'Stories'\"\n },\n {\n \"title\": \"Stories\"\n },\n {\n \"title\": \"Draft of 'Stories'\"\n },\n {\n \"title\": \"Stories\"\n },\n {\n \"title\": \"Draft of 'Stories'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories\",\n \"fromPageRect\": {\n \"top\": 463.734375,\n \"left\": 2321.1875,\n \"width\": 476.734375,\n \"right\": 2797.921875,\n \"bottom\": 482.734375,\n \"height\": 19\n }\n }\n]",
"modified": "20200425180934241"
},
"$:/core/ui/SideBar/Open": {
"text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n<$action-listops $tiddler=<<_otherStory>> $subfilter=\"-[<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n\\define open-tiddler-list()\n<div class=\"tc-sidebar-tab-open sq-sidebar-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">{{$:/core/images/close-button}}</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n\\end\n\n\n''Left Column''\n<$set name=\"_otherStory\" filter=\"[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]\" select=\"0\">\n<<open-tiddler-list>>\n</$set>\n<div class=\"sq-twostoriesonly\">\n\n---\n\n''Right Column''\n<$set name=\"_otherStory\" value=<<tv-story-list>> >\n<$set name=\"tv-story-list\" filter=\"[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]\" select=\"0\">\n<$set name=\"tv-history-list\" filter=\"[enlist{$:/_sq/Stories/HistoriesList!!list}] -[<tv-history-list>]\" select=\"0\">\n<$navigator story=<<tv-story-list>> history=<<tv-history-list>> >\n<<open-tiddler-list>>\n</$navigator>\n</$set>\n</$set>\n</$set>\n\n</div>\n\n---\n\n<$transclude tiddler=\"$:/_sq/Stories/Templates/StoryToggleMenu\"/>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/core/ui/SideBar/Open",
"tags": "$:/tags/SideBar",
"modified": "20200425133519499",
"created": "20170609174945253",
"caption": "{{$:/language/SideBar/Open/Caption}}"
},
"$:/config/_sq/Stories/story2": {
"text": "yes",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/config/_sq/Stories/story2",
"modified": "20200425145103899",
"created": "20170615081040584"
},
"$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
"text": "fluid-fixed",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
"tags": "tb",
"modified": "20200416185419828",
"created": "20200127172539001"
},
"$:/plugins/sq/Stories/settings": {
"created": "20170616185336118",
"text": "|[[Minimum width to show the second story|$:/_sq/Stories/config/twostorybreakpoint]] |<$edit-text tiddler=\"$:/_sq/Stories/config/twostorybreakpoint\" default=\"\" tag=\"input\"/> |\n|[[Minimum width to show non-overlapping sidebar|$:/_sq/Stories/config/sidebaroverlaybreakpoint]] |<$edit-text tiddler=\"$:/_sq/Stories/config/sidebaroverlaybreakpoint\" default=\"\" tag=\"input\"/> |\n|[[Open tiddlers at top or bottom of story when using divert button|$:/_sq/Stories/config/openLinkDivert]] | <$select tiddler=\"$:/_sq/Stories/config/openLinkDivert\" default=\"top\"><option value=\"top\">top</option><option value=\"bottom\">bottom</option></$select>|\n|<$link to=\"$:/_sq/Stories/config/showRiverDropZones\">Show dropzones above each story</$link>|<$checkbox tiddler=\"$:/_sq/Stories/config/showRiverDropZones\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"disable\"></$checkbox>|\n|[[Story view for second story|$:/_sq/Stories/config/Story2-storyview]]:|{{$:/_sq/Stories/config/snippets/viewswitcher}}|\n\n\n",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/sq/Stories/settings",
"tags": "$:/tags/ControlPanel/Appearance",
"modified": "20200425181057952",
"caption": "Two Story Layout"
}
}
}
{
"tiddlers": {
"$:/config/EditorTypeMappings/application/javascript": {
"title": "$:/config/EditorTypeMappings/application/javascript",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/application/json": {
"title": "$:/config/EditorTypeMappings/application/json",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/application/x-tiddler-dictionary": {
"title": "$:/config/EditorTypeMappings/application/x-tiddler-dictionary",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/css": {
"title": "$:/config/EditorTypeMappings/text/css",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/html": {
"title": "$:/config/EditorTypeMappings/text/html",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/plain": {
"title": "$:/config/EditorTypeMappings/text/plain",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/x-markdown": {
"title": "$:/config/EditorTypeMappings/text/x-markdown",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/x-tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/x-tiddlywiki",
"text": "codemirror"
},
"$:/config/codemirror/cursorBlinkRate": {
"title": "$:/config/codemirror/cursorBlinkRate",
"type": "integer",
"text": "530"
},
"$:/config/codemirror/extraKeysTW": {
"title": "$:/config/codemirror/extraKeysTW",
"extend": "extraKeys",
"type": "json",
"text": "{\n\t\"Ctrl-Esc\": \"singleSelection\",\n\t\"Esc\": \"\",\n\t\"Ctrl-S\": \"\",\n\t\"Ctrl-U\": \"\",\n\t\"Ctrl-T\": \"\",\n\t\"Alt-T\": \"transposeChars\",\n\t\"Alt-U\": \"undoSelection\",\n\t\"Shift-Alt-U\": \"redoSelection\",\n\t\"Cmd-U\": \"\",\n\t\"Tab\": \"indentAuto()\",\n\t\"Enter\": \"newLineAndIndent()\"\n}\n"
},
"$:/config/codemirror/indentUnit": {
"title": "$:/config/codemirror/indentUnit",
"type": "integer",
"text": "2"
},
"$:/config/codemirror/indentWithTabs": {
"title": "$:/config/codemirror/indentWithTabs",
"type": "bool",
"text": "true"
},
"$:/config/codemirror/inputStyle": {
"title": "$:/config/codemirror/inputStyle",
"type": "string",
"text": "textarea"
},
"$:/config/codemirror/keyMap": {
"title": "$:/config/codemirror/keyMap",
"type": "string",
"text": "default"
},
"$:/config/codemirror/lineNumbers": {
"title": "$:/config/codemirror/lineNumbers",
"type": "bool",
"text": "false"
},
"$:/config/codemirror/lineWrapping": {
"title": "$:/config/codemirror/lineWrapping",
"type": "bool",
"text": "true"
},
"$:/config/codemirror/showCursorWhenSelecting": {
"title": "$:/config/codemirror/showCursorWhenSelecting",
"type": "bool",
"text": "true"
},
"$:/config/codemirror/smartIndent": {
"title": "$:/config/codemirror/smartIndent",
"type": "bool",
"text": "true"
},
"$:/config/codemirror/styleActiveLine": {
"title": "$:/config/codemirror/styleActiveLine",
"type": "bool",
"text": "false"
},
"$:/config/codemirror/tabSize": {
"title": "$:/config/codemirror/tabSize",
"type": "integer",
"text": "2"
},
"$:/config/codemirror/theme": {
"title": "$:/config/codemirror/theme",
"type": "string",
"text": "default"
},
"$:/language/codemirror/homeUrl": {
"title": "$:/language/codemirror/homeUrl",
"text": "http://codemirror.net"
},
"$:/language/codemirror/addOnUrl": {
"title": "$:/language/codemirror/addOnUrl",
"text": "http://codemirror.net/doc/manual.html#addons"
},
"$:/language/codemirror/configUrl": {
"title": "$:/language/codemirror/configUrl",
"text": "http://codemirror.net/doc/manual.html#config"
},
"$:/language/codemirror/controlPanel/hint": {
"title": "$:/language/codemirror/controlPanel/hint",
"text": "These settings let you customise the behaviour of [[CodeMirror|$:/plugins/tiddlywiki/codemirror]]."
},
"$:/language/codemirror/controlPanel/usage": {
"title": "$:/language/codemirror/controlPanel/usage",
"text": "Usage information"
},
"$:/language/codemirror/editorFont/hint": {
"title": "$:/language/codemirror/editorFont/hint",
"text": "Editor font family"
},
"$:/language/codemirror/editorFont/info": {
"title": "$:/language/codemirror/editorFont/info",
"text": "Set the font family for the ~CodeMirror text-editor"
},
"$:/language/codemirror/controlPanel/keyboard": {
"title": "$:/language/codemirror/controlPanel/keyboard",
"text": "Keyboard shortcuts"
},
"$:/language/codemirror/keyMap/hint": {
"title": "$:/language/codemirror/keyMap/hint",
"text": "~CodeMirror keymap"
},
"$:/language/codemirror/keyMap/info": {
"title": "$:/language/codemirror/keyMap/info",
"text": "~The Keyboard KeyMap used within the ~CodeMirror text-editor"
},
"$:/language/codemirror/lineNumbers/hint": {
"title": "$:/language/codemirror/lineNumbers/hint",
"text": "Enable line numbers"
},
"$:/language/codemirror/lineNumbers/info": {
"title": "$:/language/codemirror/lineNumbers/info",
"text": "Whether to show line numbers to the left of the editor."
},
"$:/language/codemirror/lineWrapping/hint": {
"title": "$:/language/codemirror/lineWrapping/hint",
"text": "Enable line wrapping"
},
"$:/language/codemirror/lineWrapping/info": {
"title": "$:/language/codemirror/lineWrapping/info",
"text": "Whether CodeMirror should scroll or wrap for long lines. Defaults to `false` (scroll)."
},
"$:/language/codemirror/showCursorWhenSelecting/hint": {
"title": "$:/language/codemirror/showCursorWhenSelecting/hint",
"text": "Show cursor, when selecting"
},
"$:/language/codemirror/showCursorWhenSelecting/info": {
"title": "$:/language/codemirror/showCursorWhenSelecting/info",
"text": "Whether the cursor should be drawn when a selection is active."
},
"$:/language/codemirror/styleActiveLine/hint": {
"title": "$:/language/codemirror/styleActiveLine/hint",
"text": "Highlight active line"
},
"$:/language/codemirror/styleActiveLine/info": {
"title": "$:/language/codemirror/styleActiveLine/info",
"text": "Whether or not to highlight the active text-editor line"
},
"$:/language/codemirror/theme/hint": {
"title": "$:/language/codemirror/theme/hint",
"text": "Select a theme"
},
"$:/language/codemirror/theme/info": {
"title": "$:/language/codemirror/theme/info",
"text": "Choose between ~CodeMirror themes"
},
"$:/plugins/tiddlywiki/codemirror/edit-codemirror.js": {
"title": "$:/plugins/tiddlywiki/codemirror/edit-codemirror.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/codemirror/edit-codemirror.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-codemirror widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tCodeMirrorEngine = require(\"$:/plugins/tiddlywiki/codemirror/engine.js\").CodeMirrorEngine;\n\nexports[\"edit-codemirror\"] = editTextWidgetFactory(CodeMirrorEngine,CodeMirrorEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tiddlywiki/codemirror/engine.js": {
"title": "$:/plugins/tiddlywiki/codemirror/engine.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/codemirror/engine.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a CodeMirror instance\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CODEMIRROR_OPTIONS = \"$:/config/CodeMirror\",\nHEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\",\nCONFIG_FILTER = \"[all[shadows+tiddlers]prefix[$:/config/codemirror/]]\"\n\t\n// Install CodeMirror\nif($tw.browser && !window.CodeMirror) {\n\n\tvar modules = $tw.modules.types[\"codemirror\"];\n\tvar req = Object.getOwnPropertyNames(modules);\n\n\twindow.CodeMirror = require(\"$:/plugins/tiddlywiki/codemirror/lib/codemirror.js\");\n\t// Install required CodeMirror plugins\n\tif(req) {\n\t\tif($tw.utils.isArray(req)) {\n\t\t\tfor(var index=0; index<req.length; index++) {\n\t\t\t\trequire(req[index]);\n\t\t\t}\n\t\t} else {\n\t\t\trequire(req);\n\t\t}\n\t}\n}\n\nfunction getCmConfig() {\n\tvar type,\n\t\ttest,\n\t\tvalue,\n\t\telement,\n\t\textend,\n\t\ttiddler,\n\t\tconfig = {},\n\t\tconfigTiddlers = $tw.wiki.filterTiddlers(CONFIG_FILTER);\n\n\tif ($tw.utils.isArray(configTiddlers)) {\n\t\tfor (var i=0; i<configTiddlers.length; i++) {\n\t\t\ttiddler = $tw.wiki.getTiddler(configTiddlers[i]);\n\t\t\t\tif (tiddler) {\n\t\t\t\telement = configTiddlers[i].replace(/\\$:\\/config\\/codemirror\\//ig,\"\");\n\t\t\t\t\ttype = (tiddler.fields.type) ? tiddler.fields.type.trim().toLocaleLowerCase() : \"string\";\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase \"bool\":\n\t\t\t\t\ttest = tiddler.fields.text.trim().toLowerCase();\n\t\t\t\t\tvalue = (test === \"true\") ? true : false;\n\t\t\t\t\tconfig[element] = value;\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"string\":\n\t\t\t\t\tvalue = tiddler.fields.text.trim();\n\t\t\t\t\tconfig[element] = value;\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"integer\":\n\t\t\t\t\tvalue = parseInt(tiddler.fields.text.trim(), 10);\n\t\t\t\t\tconfig[element] = value;\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"json\":\n\t\t\t\t\tvalue = JSON.parse(tiddler.fields.text.trim());\n\t\t\t\t\t\textend = (tiddler.fields.extend) ? tiddler.fields.extend : element;\n\n\t\t\t\t\tif (config[extend]) {\n\t\t\t\t\t\t$tw.utils.extend(config[extend], value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconfig[extend] = value;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn config;\n}\n\nfunction CodeMirrorEngine(options) {\n\n\t// Save our options\n\tvar self = this;\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create the wrapper DIV\n\tthis.domNode = this.widget.document.createElement(\"div\");\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tthis.domNode.style.display = \"inline-block\";\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n\t\n\t// Set all cm-plugin defaults\n\t// Get the configuration options for the CodeMirror object\n\tvar config = getCmConfig();\n\n\tconfig.mode = options.type;\n\tconfig.value = options.value;\n\tif(this.widget.editTabIndex) {\n\t\tconfig[\"tabindex\"] = this.widget.editTabIndex;\n\t}\n\t// Create the CodeMirror instance\n\tthis.cm = window.CodeMirror(function(cmDomNode) {\n\t\t// Note that this is a synchronous callback that is called before the constructor returns\n\t\tif(!self.widget.document.isTiddlyWikiFakeDom) {\n\t\t\tself.domNode.appendChild(cmDomNode);\n\t\t}\n\t},config);\n\n\t// Set up a change event handler\n\tthis.cm.on(\"change\",function() {\n\t\tself.widget.saveChanges(self.getText());\n\t});\n\tthis.cm.on(\"drop\",function(cm,event) {\n\t\tevent.stopPropagation(); // Otherwise TW's dropzone widget sees the drop event\n\t\treturn false;\n\t});\n\tthis.cm.on(\"keydown\",function(cm,event) {\n\t\treturn self.widget.handleKeydownEvent.call(self.widget,event);\n\t});\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nCodeMirrorEngine.prototype.setText = function(text,type) {\n\tvar self = this;\n\tself.cm.setOption(\"mode\",type);\n\tif(!this.cm.hasFocus()) {\n\t\tthis.cm.setValue(text);\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nCodeMirrorEngine.prototype.getText = function() {\n\treturn this.cm.getValue();\n};\n\n/*\nFix the height of textarea to fit content\n*/\nCodeMirrorEngine.prototype.fixHeight = function() {\n\tif(this.widget.editAutoHeight) {\n\t\t// Resize to fit\n\t\tthis.cm.setSize(null,null);\n\t} else {\n\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\tthis.cm.setSize(null,fixedHeight);\n\t}\n};\n\n/*\nFocus the engine node\n*/\nCodeMirrorEngine.prototype.focus = function() {\n\tthis.cm.focus();\n}\n\n/*\nCreate a blank structure representing a text operation\n*/\nCodeMirrorEngine.prototype.createTextOperation = function() {\n\tvar selections = this.cm.listSelections();\n\tif(selections.length > 0) {\n\t\tvar anchorPos = this.cm.indexFromPos(selections[0].anchor),\n\t\theadPos = this.cm.indexFromPos(selections[0].head);\n\t}\n\tvar operation = {\n\t\ttext: this.cm.getValue(),\n\t\tselStart: Math.min(anchorPos,headPos),\n\t\tselEnd: Math.max(anchorPos,headPos),\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nCodeMirrorEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tthis.cm.replaceRange(operation.replacement,this.cm.posFromIndex(operation.cutStart),this.cm.posFromIndex(operation.cutEnd));\n\t\tthis.cm.setSelection(this.cm.posFromIndex(operation.newSelStart),this.cm.posFromIndex(operation.newSelEnd));\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t}\n\tthis.cm.focus();\n\treturn newText;\n};\n\nexports.CodeMirrorEngine = CodeMirrorEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/tiddlywiki/codemirror/lib/codemirror.js": {
"text": "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){\"use strict\";var e=navigator.userAgent,t=navigator.platform,r=/gecko\\/\\d/i.test(e),n=/MSIE \\d/.test(e),i=/Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(e),o=/Edge\\/(\\d+)/.exec(e),l=n||i||o,s=l&&(n?document.documentMode||6:+(o||i)[1]),a=!o&&/WebKit\\//.test(e),u=a&&/Qt\\/\\d+\\.\\d+/.test(e),c=!o&&/Chrome\\//.test(e),h=/Opera\\//.test(e),f=/Apple Computer/.test(navigator.vendor),d=/Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(e),p=/PhantomJS/.test(e),g=!o&&/AppleWebKit/.test(e)&&/Mobile\\/\\w+/.test(e),v=/Android/.test(e),m=g||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=g||/Mac/.test(t),b=/\\bCrOS\\b/.test(e),w=/win/i.test(t),x=h&&e.match(/Version\\/(\\d*\\.\\d*)/);x&&(x=Number(x[1])),x&&x>=15&&(h=!1,a=!0);var C=y&&(u||h&&(null==x||x<12.11)),S=r||l&&s>=9;function L(e){return new RegExp(\"(^|\\\\s)\"+e+\"(?:$|\\\\s)\\\\s*\")}var k,T=function(e,t){var r=e.className,n=L(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:\"\")}};function M(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function N(e,t){return M(e).appendChild(t)}function O(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),\"string\"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function A(e,t,r,n){var i=O(e,t,r,n);return i.setAttribute(\"role\",\"presentation\"),i}function D(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function W(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function H(e,t){var r=e.className;L(t).test(r)||(e.className+=(r?\" \":\"\")+t)}function F(e,t){for(var r=e.split(\" \"),n=0;n<r.length;n++)r[n]&&!L(r[n]).test(t)&&(t+=\" \"+r[n]);return t}k=document.createRange?function(e,t,r,n){var i=document.createRange();return i.setEnd(n||e,r),i.setStart(e,t),i}:function(e,t,r){var n=document.body.createTextRange();try{n.moveToElementText(e.parentNode)}catch(e){return n}return n.collapse(!0),n.moveEnd(\"character\",r),n.moveStart(\"character\",t),n};var P=function(e){e.select()};function E(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function z(e,t,r){for(var n in t||(t={}),e)!e.hasOwnProperty(n)||!1===r&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function I(e,t,r,n,i){null==t&&-1==(t=e.search(/[^\\s\\u00a0]/))&&(t=e.length);for(var o=n||0,l=i||0;;){var s=e.indexOf(\"\\t\",o);if(s<0||s>=t)return l+(t-o);l+=s-o,l+=r-l%r,o=s+1}}g?P=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:l&&(P=function(e){try{e.select()}catch(e){}});var R=function(){this.id=null};function B(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}R.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var G=30,U={toString:function(){return\"CodeMirror.Pass\"}},V={scroll:!1},K={origin:\"*mouse\"},j={origin:\"+move\"};function X(e,t,r){for(var n=0,i=0;;){var o=e.indexOf(\"\\t\",n);-1==o&&(o=e.length);var l=o-n;if(o==e.length||i+l>=t)return n+Math.min(l,t-i);if(i+=o-n,n=o+1,(i+=r-i%r)>=t)return n}}var Y=[\"\"];function _(e){for(;Y.length<=e;)Y.push(q(Y)+\" \");return Y[e]}function q(e){return e[e.length-1]}function $(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function Z(){}function Q(e,t){var r;return Object.create?r=Object.create(e):(Z.prototype=e,r=new Z),t&&z(t,r),r}var J=/[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;function ee(e){return/\\w/.test(e)||e>\"\"&&(e.toUpperCase()!=e.toLowerCase()||J.test(e))}function te(e,t){return t?!!(t.source.indexOf(\"\\\\w\")>-1&&ee(e))||t.test(e):ee(e)}function re(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;function ie(e){return e.charCodeAt(0)>=768&&ne.test(e)}function oe(e,t,r){for(;(r<0?t>0:t<e.length)&&ie(e.charAt(t));)t+=r;return t}function le(e,t,r){for(var n=t>r?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}function se(e,t){if((t-=e.first)<0||t>=e.size)throw new Error(\"There is no line \"+(t+e.first)+\" in the document.\");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t<o){r=i;break}t-=o}return r.lines[t]}function ae(e,t,r){var n=[],i=t.line;return e.iter(t.line,r.line+1,function(e){var o=e.text;i==r.line&&(o=o.slice(0,r.ch)),i==t.line&&(o=o.slice(t.ch)),n.push(o),++i}),n}function ue(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function ce(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function he(e){if(null==e.parent)return null;for(var t=e.parent,r=B(t.lines,e),n=t.parent;n;t=n,n=n.parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function fe(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(var l=0;l<e.lines.length;++l){var s=e.lines[l].height;if(t<s)break;t-=s}return r+l}function de(e,t){return t>=e.first&&t<e.first+e.size}function pe(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function ge(e,t,r){if(void 0===r&&(r=null),!(this instanceof ge))return new ge(e,t,r);this.line=e,this.ch=t,this.sticky=r}function ve(e,t){return e.line-t.line||e.ch-t.ch}function me(e,t){return e.sticky==t.sticky&&0==ve(e,t)}function ye(e){return ge(e.line,e.ch)}function be(e,t){return ve(e,t)<0?t:e}function we(e,t){return ve(e,t)<0?e:t}function xe(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function Ce(e,t){if(t.line<e.first)return ge(e.first,0);var r,n,i,o=e.first+e.size-1;return t.line>o?ge(o,se(e,o).text.length):(r=t,n=se(e,t.line).text.length,null==(i=r.ch)||i>n?ge(r.line,n):i<0?ge(r.line,0):r)}function Se(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=Ce(e,t[n]);return r}var Le=!1,ke=!1;function Te(e,t,r){this.marker=e,this.from=t,this.to=r}function Me(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function Ne(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function Oe(e,t){if(t.full)return null;var r=de(e,t.from.line)&&se(e,t.from.line).markedSpans,n=de(e,t.to.line)&&se(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,l=0==ve(t.from,t.to),s=function(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],l=o.marker;if(null==o.from||(l.inclusiveLeft?o.from<=t:o.from<t)||o.from==t&&\"bookmark\"==l.type&&(!r||!o.marker.insertLeft)){var s=null==o.to||(l.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new Te(l,o.from,s?null:o.to))}}return n}(r,i,l),a=function(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],l=o.marker;if(null==o.to||(l.inclusiveRight?o.to>=t:o.to>t)||o.from==t&&\"bookmark\"==l.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(l.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new Te(l,s?null:o.from-t,null==o.to?null:o.to-t))}}return n}(n,o,l),u=1==t.text.length,c=q(t.text).length+(u?i:0);if(s)for(var h=0;h<s.length;++h){var f=s[h];if(null==f.to){var d=Me(a,f.marker);d?u&&(f.to=null==d.to?null:d.to+c):f.to=i}}if(a)for(var p=0;p<a.length;++p){var g=a[p];if(null!=g.to&&(g.to+=c),null==g.from)Me(s,g.marker)||(g.from=c,u&&(s||(s=[])).push(g));else g.from+=c,u&&(s||(s=[])).push(g)}s&&(s=Ae(s)),a&&a!=s&&(a=Ae(a));var v=[s];if(!u){var m,y=t.text.length-2;if(y>0&&s)for(var b=0;b<s.length;++b)null==s[b].to&&(m||(m=[])).push(new Te(s[b].marker,null,null));for(var w=0;w<y;++w)v.push(m);v.push(a)}return v}function Ae(e){for(var t=0;t<e.length;++t){var r=e[t];null!=r.from&&r.from==r.to&&!1!==r.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function De(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function We(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function He(e){return e.inclusiveLeft?-1:0}function Fe(e){return e.inclusiveRight?1:0}function Pe(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=ve(n.from,i.from)||He(e)-He(t);if(o)return-o;var l=ve(n.to,i.to)||Fe(e)-Fe(t);return l||t.id-e.id}function Ee(e,t){var r,n=ke&&e.markedSpans;if(n)for(var i=void 0,o=0;o<n.length;++o)(i=n[o]).marker.collapsed&&null==(t?i.from:i.to)&&(!r||Pe(r,i.marker)<0)&&(r=i.marker);return r}function ze(e){return Ee(e,!0)}function Ie(e){return Ee(e,!1)}function Re(e,t,r,n,i){var o=se(e,t),l=ke&&o.markedSpans;if(l)for(var s=0;s<l.length;++s){var a=l[s];if(a.marker.collapsed){var u=a.marker.find(0),c=ve(u.from,r)||He(a.marker)-He(i),h=ve(u.to,n)||Fe(a.marker)-Fe(i);if(!(c>=0&&h<=0||c<=0&&h>=0)&&(c<=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?ve(u.to,r)>=0:ve(u.to,r)>0)||c>=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?ve(u.from,n)<=0:ve(u.from,n)<0)))return!0}}}function Be(e){for(var t;t=ze(e);)e=t.find(-1,!0).line;return e}function Ge(e,t){var r=se(e,t),n=Be(r);return r==n?t:he(n)}function Ue(e,t){if(t>e.lastLine())return t;var r,n=se(e,t);if(!Ve(e,n))return t;for(;r=Ie(n);)n=r.find(1,!0).line;return he(n)+1}function Ve(e,t){var r=ke&&t.markedSpans;if(r)for(var n=void 0,i=0;i<r.length;++i)if((n=r[i]).marker.collapsed){if(null==n.from)return!0;if(!n.marker.widgetNode&&0==n.from&&n.marker.inclusiveLeft&&Ke(e,t,n))return!0}}function Ke(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return Ke(e,n.line,Me(n.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if((i=t.markedSpans[o]).marker.collapsed&&!i.marker.widgetNode&&i.from==r.to&&(null==i.to||i.to!=r.from)&&(i.marker.inclusiveLeft||r.marker.inclusiveRight)&&Ke(e,t,i))return!0}function je(e){for(var t=0,r=(e=Be(e)).parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;o=(r=o).parent)for(var l=0;l<o.children.length;++l){var s=o.children[l];if(s==r)break;t+=s.height}return t}function Xe(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=ze(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=Ie(n);){var o=t.find(0,!0);r-=n.text.length-o.from.ch,r+=(n=o.to.line).text.length-o.to.ch}return r}function Ye(e){var t=e.display,r=e.doc;t.maxLine=se(r,r.first),t.maxLineLength=Xe(t.maxLine),t.maxLineChanged=!0,r.iter(function(e){var r=Xe(e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}var _e=null;function qe(e,t,r){var n;_e=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&\"before\"==r?n=i:_e=i),o.from==t&&(o.from!=o.to&&\"before\"!=r?n=i:_e=i)}return null!=n?n:_e}var $e=function(){var e=\"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\",t=\"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";var r=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/,n=/[stwN]/,i=/[LRr]/,o=/[Lb1n]/,l=/[1n]/;function s(e,t,r){this.level=e,this.from=t,this.to=r}return function(a,u){var c=\"ltr\"==u?\"L\":\"R\";if(0==a.length||\"ltr\"==u&&!r.test(a))return!1;for(var h,f=a.length,d=[],p=0;p<f;++p)d.push((h=a.charCodeAt(p))<=247?e.charAt(h):1424<=h&&h<=1524?\"R\":1536<=h&&h<=1785?t.charAt(h-1536):1774<=h&&h<=2220?\"r\":8192<=h&&h<=8203?\"w\":8204==h?\"b\":\"L\");for(var g=0,v=c;g<f;++g){var m=d[g];\"m\"==m?d[g]=v:v=m}for(var y=0,b=c;y<f;++y){var w=d[y];\"1\"==w&&\"r\"==b?d[y]=\"n\":i.test(w)&&(b=w,\"r\"==w&&(d[y]=\"R\"))}for(var x=1,C=d[0];x<f-1;++x){var S=d[x];\"+\"==S&&\"1\"==C&&\"1\"==d[x+1]?d[x]=\"1\":\",\"!=S||C!=d[x+1]||\"1\"!=C&&\"n\"!=C||(d[x]=C),C=S}for(var L=0;L<f;++L){var k=d[L];if(\",\"==k)d[L]=\"N\";else if(\"%\"==k){var T=void 0;for(T=L+1;T<f&&\"%\"==d[T];++T);for(var M=L&&\"!\"==d[L-1]||T<f&&\"1\"==d[T]?\"1\":\"N\",N=L;N<T;++N)d[N]=M;L=T-1}}for(var O=0,A=c;O<f;++O){var D=d[O];\"L\"==A&&\"1\"==D?d[O]=\"L\":i.test(D)&&(A=D)}for(var W=0;W<f;++W)if(n.test(d[W])){var H=void 0;for(H=W+1;H<f&&n.test(d[H]);++H);for(var F=\"L\"==(W?d[W-1]:c),P=F==(\"L\"==(H<f?d[H]:c))?F?\"L\":\"R\":c,E=W;E<H;++E)d[E]=P;W=H-1}for(var z,I=[],R=0;R<f;)if(o.test(d[R])){var B=R;for(++R;R<f&&o.test(d[R]);++R);I.push(new s(0,B,R))}else{var G=R,U=I.length;for(++R;R<f&&\"L\"!=d[R];++R);for(var V=G;V<R;)if(l.test(d[V])){G<V&&I.splice(U,0,new s(1,G,V));var K=V;for(++V;V<R&&l.test(d[V]);++V);I.splice(U,0,new s(2,K,V)),G=V}else++V;G<R&&I.splice(U,0,new s(1,G,R))}return\"ltr\"==u&&(1==I[0].level&&(z=a.match(/^\\s+/))&&(I[0].from=z[0].length,I.unshift(new s(0,0,z[0].length))),1==q(I).level&&(z=a.match(/\\s+$/))&&(q(I).to-=z[0].length,I.push(new s(0,f-z[0].length,f)))),\"rtl\"==u?I.reverse():I}}();function Ze(e,t){var r=e.order;return null==r&&(r=e.order=$e(e.text,t)),r}var Qe=[],Je=function(e,t,r){if(e.addEventListener)e.addEventListener(t,r,!1);else if(e.attachEvent)e.attachEvent(\"on\"+t,r);else{var n=e._handlers||(e._handlers={});n[t]=(n[t]||Qe).concat(r)}};function et(e,t){return e._handlers&&e._handlers[t]||Qe}function tt(e,t,r){if(e.removeEventListener)e.removeEventListener(t,r,!1);else if(e.detachEvent)e.detachEvent(\"on\"+t,r);else{var n=e._handlers,i=n&&n[t];if(i){var o=B(i,r);o>-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function rt(e,t){var r=et(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i<r.length;++i)r[i].apply(null,n)}function nt(e,t,r){return\"string\"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),rt(e,r||t.type,e,t),ut(t)||t.codemirrorIgnore}function it(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var r=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),n=0;n<t.length;++n)-1==B(r,t[n])&&r.push(t[n])}function ot(e,t){return et(e,t).length>0}function lt(e){e.prototype.on=function(e,t){Je(this,e,t)},e.prototype.off=function(e,t){tt(this,e,t)}}function st(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function at(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ut(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function ct(e){st(e),at(e)}function ht(e){return e.target||e.srcElement}function ft(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var dt,pt,gt=function(){if(l&&s<9)return!1;var e=O(\"div\");return\"draggable\"in e||\"dragDrop\"in e}();function vt(e){if(null==dt){var t=O(\"span\",\"\");N(e,O(\"span\",[t,document.createTextNode(\"x\")])),0!=e.firstChild.offsetHeight&&(dt=t.offsetWidth<=1&&t.offsetHeight>2&&!(l&&s<8))}var r=dt?O(\"span\",\"\"):O(\"span\",\" \",null,\"display: inline-block; width: 1px; margin-right: -1px\");return r.setAttribute(\"cm-text\",\"\"),r}function mt(e){if(null!=pt)return pt;var t=N(e,document.createTextNode(\"AخA\")),r=k(t,0,1).getBoundingClientRect(),n=k(t,1,2).getBoundingClientRect();return M(e),!(!r||r.left==r.right)&&(pt=n.right-r.right<3)}var yt,bt=3!=\"\\n\\nb\".split(/\\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf(\"\\n\",t);-1==i&&(i=e.length);var o=e.slice(t,\"\\r\"==e.charAt(i-1)?i-1:i),l=o.indexOf(\"\\r\");-1!=l?(r.push(o.slice(0,l)),t+=l+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\\r\\n?|\\n/)},wt=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints(\"StartToEnd\",t)},xt=\"oncopy\"in(yt=O(\"div\"))||(yt.setAttribute(\"oncopy\",\"return;\"),\"function\"==typeof yt.oncopy),Ct=null;var St={},Lt={};function kt(e){if(\"string\"==typeof e&&Lt.hasOwnProperty(e))e=Lt[e];else if(e&&\"string\"==typeof e.name&&Lt.hasOwnProperty(e.name)){var t=Lt[e.name];\"string\"==typeof t&&(t={name:t}),(e=Q(t,e)).name=t.name}else{if(\"string\"==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(e))return kt(\"application/xml\");if(\"string\"==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(e))return kt(\"application/json\")}return\"string\"==typeof e?{name:e}:e||{name:\"null\"}}function Tt(e,t){t=kt(t);var r=St[t.name];if(!r)return Tt(e,\"text/plain\");var n=r(e,t);if(Mt.hasOwnProperty(t.name)){var i=Mt[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n[\"_\"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)n[l]=t.modeProps[l];return n}var Mt={};function Nt(e,t){z(t,Mt.hasOwnProperty(e)?Mt[e]:Mt[e]={})}function Ot(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function At(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Dt(e,t,r){return!e.startState||e.startState(t,r)}var Wt=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};Wt.prototype.eol=function(){return this.pos>=this.string.length},Wt.prototype.sol=function(){return this.pos==this.lineStart},Wt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Wt.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},Wt.prototype.eat=function(e){var t=this.string.charAt(this.pos);if(\"string\"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},Wt.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},Wt.prototype.eatSpace=function(){for(var e=this.pos;/[\\s\\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Wt.prototype.skipToEnd=function(){this.pos=this.string.length},Wt.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},Wt.prototype.backUp=function(e){this.pos-=e},Wt.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=I(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?I(this.string,this.lineStart,this.tabSize):0)},Wt.prototype.indentation=function(){return I(this.string,null,this.tabSize)-(this.lineStart?I(this.string,this.lineStart,this.tabSize):0)},Wt.prototype.match=function(e,t,r){if(\"string\"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},Wt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Wt.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Wt.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Wt.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var Ht=function(e,t){this.state=e,this.lookAhead=t},Ft=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};function Pt(e,t,r,n){var i=[e.state.modeGen],o={};Kt(e,t.text,e.doc.mode,r,function(e,t){return i.push(e,t)},o,n);for(var l=r.state,s=function(n){r.baseTokens=i;var s=e.state.overlays[n],a=1,u=0;r.state=!0,Kt(e,t.text,s.mode,r,function(e,t){for(var r=a;u<e;){var n=i[a];n>e&&i.splice(a,1,e,i[a+1],n),a+=2,u=Math.min(e,n)}if(t)if(s.opaque)i.splice(r,a-r,e,\"overlay \"+t),a=r+2;else for(;r<a;r+=2){var o=i[r+1];i[r+1]=(o?o+\" \":\"\")+\"overlay \"+t}},o),r.state=l,r.baseTokens=null,r.baseTokenPos=1},a=0;a<e.state.overlays.length;++a)s(a);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Et(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=zt(e,he(t)),i=t.text.length>e.options.maxHighlightLength&&Ot(e.doc.mode,n.state),o=Pt(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function zt(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new Ft(n,!0,t);var o=function(e,t,r){for(var n,i,o=e.doc,l=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>l;--s){if(s<=o.first)return o.first;var a=se(o,s-1),u=a.stateAfter;if(u&&(!r||s+(u instanceof Ht?u.lookAhead:0)<=o.modeFrontier))return s;var c=I(a.text,null,e.options.tabSize);(null==i||n>c)&&(i=s-1,n=c)}return i}(e,t,r),l=o>n.first&&se(n,o-1).stateAfter,s=l?Ft.fromSaved(n,l,o):new Ft(n,Dt(n.mode),o);return n.iter(o,t,function(r){It(e,r.text,s);var n=s.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&n<i.viewTo?s.save():null,s.nextLine()}),r&&(n.modeFrontier=s.line),s}function It(e,t,r,n){var i=e.doc.mode,o=new Wt(t,e.options.tabSize,r);for(o.start=o.pos=n||0,\"\"==t&&Rt(i,r.state);!o.eol();)Bt(i,o,r.state),o.start=o.pos}function Rt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=At(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function Bt(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=At(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error(\"Mode \"+e.name+\" failed to advance stream.\")}Ft.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},Ft.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,\"\"),size:this.baseTokens[this.baseTokenPos]-e}},Ft.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Ft.fromSaved=function(e,t,r){return t instanceof Ht?new Ft(e,Ot(e.mode,t.state),r,t.lookAhead):new Ft(e,Ot(e.mode,t),r)},Ft.prototype.save=function(e){var t=!1!==e?Ot(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new Ht(t,this.maxLookAhead):t};var Gt=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r};function Ut(e,t,r,n){var i,o,l=e.doc,s=l.mode,a=se(l,(t=Ce(l,t)).line),u=zt(e,t.line,r),c=new Wt(a.text,e.options.tabSize,u);for(n&&(o=[]);(n||c.pos<t.ch)&&!c.eol();)c.start=c.pos,i=Bt(s,c,u.state),n&&o.push(new Gt(c,i,Ot(l.mode,u.state)));return n?o:new Gt(c,i,u.state)}function Vt(e,t){if(e)for(;;){var r=e.match(/(?:^|\\s+)line-(background-)?(\\S+)/);if(!r)break;e=e.slice(0,r.index)+e.slice(r.index+r[0].length);var n=r[1]?\"bgClass\":\"textClass\";null==t[n]?t[n]=r[2]:new RegExp(\"(?:^|s)\"+r[2]+\"(?:$|s)\").test(t[n])||(t[n]+=\" \"+r[2])}return e}function Kt(e,t,r,n,i,o,l){var s=r.flattenSpans;null==s&&(s=e.options.flattenSpans);var a,u=0,c=null,h=new Wt(t,e.options.tabSize,n),f=e.options.addModeClass&&[null];for(\"\"==t&&Vt(Rt(r,n.state),o);!h.eol();){if(h.pos>e.options.maxHighlightLength?(s=!1,l&&It(e,t,n,h.pos),h.pos=t.length,a=null):a=Vt(Bt(r,h,n.state,f),o),f){var d=f[0].name;d&&(a=\"m-\"+(a?d+\" \"+a:d))}if(!s||c!=a){for(;u<h.start;)i(u=Math.min(h.start,u+5e3),c);c=a}h.start=h.pos}for(;u<h.pos;){var p=Math.min(h.pos,u+5e3);i(p,c),u=p}}var jt=function(e,t,r){this.text=e,We(this,t),this.height=r?r(this):1};jt.prototype.lineNo=function(){return he(this)},lt(jt);var Xt={},Yt={};function _t(e,t){if(!e||/^\\s*$/.test(e))return null;var r=t.addModeClass?Yt:Xt;return r[e]||(r[e]=e.replace(/\\S+/g,\"cm-$&\"))}function qt(e,t){var r=A(\"span\",null,null,a?\"padding-right: .1px\":null),n={pre:A(\"pre\",[r],\"CodeMirror-line\"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(l||a)&&e.getOption(\"lineWrapping\")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,s=void 0;n.pos=0,n.addToken=Zt,mt(e.display.measure)&&(s=Ze(o,e.doc.direction))&&(n.addToken=Qt(n.addToken,s)),n.map=[],er(o,n,Et(e,o,t!=e.display.externalMeasured&&he(o))),o.styleClasses&&(o.styleClasses.bgClass&&(n.bgClass=F(o.styleClasses.bgClass,n.bgClass||\"\")),o.styleClasses.textClass&&(n.textClass=F(o.styleClasses.textClass,n.textClass||\"\"))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(vt(e.display.measure))),0==i?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(a){var u=n.content.lastChild;(/\\bcm-tab\\b/.test(u.className)||u.querySelector&&u.querySelector(\".cm-tab\"))&&(n.content.className=\"cm-tab-wrap-hack\")}return rt(e,\"renderLine\",e,t.line,n.pre),n.pre.className&&(n.textClass=F(n.pre.className,n.textClass||\"\")),n}function $t(e){var t=O(\"span\",\"•\",\"cm-invalidchar\");return t.title=\"\\\\u\"+e.charCodeAt(0).toString(16),t.setAttribute(\"aria-label\",t.title),t}function Zt(e,t,r,n,i,o,a){if(t){var u,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n=\"\",i=0;i<e.length;i++){var o=e.charAt(i);\" \"!=o||!r||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=\" \"),n+=o,r=\" \"==o}return n}(t,e.trailingSpace):t,h=e.cm.state.specialChars,f=!1;if(h.test(t)){u=document.createDocumentFragment();for(var d=0;;){h.lastIndex=d;var p=h.exec(t),g=p?p.index-d:t.length-d;if(g){var v=document.createTextNode(c.slice(d,d+g));l&&s<9?u.appendChild(O(\"span\",[v])):u.appendChild(v),e.map.push(e.pos,e.pos+g,v),e.col+=g,e.pos+=g}if(!p)break;d+=g+1;var m=void 0;if(\"\\t\"==p[0]){var y=e.cm.options.tabSize,b=y-e.col%y;(m=u.appendChild(O(\"span\",_(b),\"cm-tab\"))).setAttribute(\"role\",\"presentation\"),m.setAttribute(\"cm-text\",\"\\t\"),e.col+=b}else\"\\r\"==p[0]||\"\\n\"==p[0]?((m=u.appendChild(O(\"span\",\"\\r\"==p[0]?\"␍\":\"\",\"cm-invalidchar\"))).setAttribute(\"cm-text\",p[0]),e.col+=1):((m=e.cm.options.specialCharPlaceholder(p[0])).setAttribute(\"cm-text\",p[0]),l&&s<9?u.appendChild(O(\"span\",[m])):u.appendChild(m),e.col+=1);e.map.push(e.pos,e.pos+1,m),e.pos++}}else e.col+=t.length,u=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,u),l&&s<9&&(f=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),r||n||i||f||a){var w=r||\"\";n&&(w+=n),i&&(w+=i);var x=O(\"span\",[u],w,a);return o&&(x.title=o),e.content.appendChild(x)}e.content.appendChild(u)}}function Qt(e,t){return function(r,n,i,o,l,s,a){i=i?i+\" cm-force-border\":\"cm-force-border\";for(var u=r.pos,c=u+n.length;;){for(var h=void 0,f=0;f<t.length&&!((h=t[f]).to>u&&h.from<=u);f++);if(h.to>=c)return e(r,n,i,o,l,s,a);e(r,n.slice(0,h.to-u),i,o,null,s,a),o=null,n=n.slice(h.to-u),u=h.to}}}function Jt(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement(\"span\"))),i.setAttribute(\"cm-marker\",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function er(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var l,s,a,u,c,h,f,d=i.length,p=0,g=1,v=\"\",m=0;;){if(m==p){a=u=c=h=s=\"\",f=null,m=1/0;for(var y=[],b=void 0,w=0;w<n.length;++w){var x=n[w],C=x.marker;\"bookmark\"==C.type&&x.from==p&&C.widgetNode?y.push(C):x.from<=p&&(null==x.to||x.to>p||C.collapsed&&x.to==p&&x.from==p)?(null!=x.to&&x.to!=p&&m>x.to&&(m=x.to,u=\"\"),C.className&&(a+=\" \"+C.className),C.css&&(s=(s?s+\";\":\"\")+C.css),C.startStyle&&x.from==p&&(c+=\" \"+C.startStyle),C.endStyle&&x.to==m&&(b||(b=[])).push(C.endStyle,x.to),C.title&&!h&&(h=C.title),C.collapsed&&(!f||Pe(f.marker,C)<0)&&(f=x)):x.from>p&&m>x.from&&(m=x.from)}if(b)for(var S=0;S<b.length;S+=2)b[S+1]==m&&(u+=\" \"+b[S]);if(!f||f.from==p)for(var L=0;L<y.length;++L)Jt(t,0,y[L]);if(f&&(f.from||0)==p){if(Jt(t,(null==f.to?d+1:f.to)-p,f.marker,null==f.from),null==f.to)return;f.to==p&&(f=!1)}}if(p>=d)break;for(var k=Math.min(d,m);;){if(v){var T=p+v.length;if(!f){var M=T>k?v.slice(0,k-p):v;t.addToken(t,M,l?l+a:a,c,p+M.length==m?u:\"\",h,s)}if(T>=k){v=v.slice(k-p),p=k;break}p=T,c=\"\"}v=i.slice(o,o=r[g++]),l=_t(r[g++],t.cm.options)}}else for(var N=1;N<r.length;N+=2)t.addToken(t,i.slice(o,o=r[N]),_t(r[N+1],t.cm.options))}function tr(e,t,r){this.line=t,this.rest=function(e){for(var t,r;t=Ie(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}(t),this.size=this.rest?he(q(this.rest))-r+1:1,this.node=this.text=null,this.hidden=Ve(e,t)}function rr(e,t,r){for(var n,i=[],o=t;o<r;o=n){var l=new tr(e.doc,se(e.doc,o),o);n=o+l.size,i.push(l)}return i}var nr=null;var ir=null;function or(e,t){var r=et(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);nr?n=nr.delayedCallbacks:ir?n=ir:(n=ir=[],setTimeout(lr,0));for(var o=function(e){n.push(function(){return r[e].apply(null,i)})},l=0;l<r.length;++l)o(l)}}function lr(){var e=ir;ir=null;for(var t=0;t<e.length;++t)e[t]()}function sr(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];\"text\"==o?cr(e,t):\"gutter\"==o?fr(e,t,r,n):\"class\"==o?hr(e,t):\"widget\"==o&&dr(e,t,n)}t.changes=null}function ar(e){return e.node==e.text&&(e.node=O(\"div\",null,null,\"position: relative\"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),l&&s<8&&(e.node.style.zIndex=2)),e.node}function ur(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):qt(e,t)}function cr(e,t){var r=t.text.className,n=ur(e,t);t.text==t.node&&(t.node=n.pre),t.text.parentNode.replaceChild(n.pre,t.text),t.text=n.pre,n.bgClass!=t.bgClass||n.textClass!=t.textClass?(t.bgClass=n.bgClass,t.textClass=n.textClass,hr(e,t)):r&&(t.text.className=r)}function hr(e,t){!function(e,t){var r=t.bgClass?t.bgClass+\" \"+(t.line.bgClass||\"\"):t.line.bgClass;if(r&&(r+=\" CodeMirror-linebackground\"),t.background)r?t.background.className=r:(t.background.parentNode.removeChild(t.background),t.background=null);else if(r){var n=ar(t);t.background=n.insertBefore(O(\"div\",null,r),n.firstChild),e.display.input.setUneditable(t.background)}}(e,t),t.line.wrapClass?ar(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className=\"\");var r=t.textClass?t.textClass+\" \"+(t.line.textClass||\"\"):t.line.textClass;t.text.className=r||\"\"}function fr(e,t,r,n){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var i=ar(t);t.gutterBackground=O(\"div\",null,\"CodeMirror-gutter-background \"+t.line.gutterClass,\"left: \"+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+\"px; width: \"+n.gutterTotalWidth+\"px\"),e.display.input.setUneditable(t.gutterBackground),i.insertBefore(t.gutterBackground,t.text)}var o=t.line.gutterMarkers;if(e.options.lineNumbers||o){var l=ar(t),s=t.gutter=O(\"div\",null,\"CodeMirror-gutter-wrapper\",\"left: \"+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+\"px\");if(e.display.input.setUneditable(s),l.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=\" \"+t.line.gutterClass),!e.options.lineNumbers||o&&o[\"CodeMirror-linenumbers\"]||(t.lineNumber=s.appendChild(O(\"div\",pe(e.options,r),\"CodeMirror-linenumber CodeMirror-gutter-elt\",\"left: \"+n.gutterLeft[\"CodeMirror-linenumbers\"]+\"px; width: \"+e.display.lineNumInnerWidth+\"px\"))),o)for(var a=0;a<e.options.gutters.length;++a){var u=e.options.gutters[a],c=o.hasOwnProperty(u)&&o[u];c&&s.appendChild(O(\"div\",[c],\"CodeMirror-gutter-elt\",\"left: \"+n.gutterLeft[u]+\"px; width: \"+n.gutterWidth[u]+\"px\"))}}}function dr(e,t,r){t.alignable&&(t.alignable=null);for(var n=t.node.firstChild,i=void 0;n;n=i)i=n.nextSibling,\"CodeMirror-linewidget\"==n.className&&t.node.removeChild(n);pr(e,t,r)}function pr(e,t,r){if(gr(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)gr(e,t.rest[n],t,r,!1)}function gr(e,t,r,n,i){if(t.widgets)for(var o=ar(r),l=0,s=t.widgets;l<s.length;++l){var a=s[l],u=O(\"div\",[a.node],\"CodeMirror-linewidget\");a.handleMouseEvents||u.setAttribute(\"cm-ignore-events\",\"true\"),vr(a,u,r,n),e.display.input.setUneditable(u),i&&a.above?o.insertBefore(u,r.gutter||r.text):o.appendChild(u),or(a,\"redraw\")}}function vr(e,t,r,n){if(e.noHScroll){(r.alignable||(r.alignable=[])).push(t);var i=n.wrapperWidth;t.style.left=n.fixedPos+\"px\",e.coverGutter||(i-=n.gutterTotalWidth,t.style.paddingLeft=n.gutterTotalWidth+\"px\"),t.style.width=i+\"px\"}e.coverGutter&&(t.style.zIndex=5,t.style.position=\"relative\",e.noHScroll||(t.style.marginLeft=-n.gutterTotalWidth+\"px\"))}function mr(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!D(document.body,e.node)){var r=\"position: relative;\";e.coverGutter&&(r+=\"margin-left: -\"+t.display.gutters.offsetWidth+\"px;\"),e.noHScroll&&(r+=\"width: \"+t.display.wrapper.clientWidth+\"px;\"),N(t.display.measure,O(\"div\",[e.node],null,r))}return e.height=e.node.parentNode.offsetHeight}function yr(e,t){for(var r=ht(t);r!=e.wrapper;r=r.parentNode)if(!r||1==r.nodeType&&\"true\"==r.getAttribute(\"cm-ignore-events\")||r.parentNode==e.sizer&&r!=e.mover)return!0}function br(e){return e.lineSpace.offsetTop}function wr(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function xr(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=N(e.measure,O(\"pre\",\"x\")),r=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,n={left:parseInt(r.paddingLeft),right:parseInt(r.paddingRight)};return isNaN(n.left)||isNaN(n.right)||(e.cachedPaddingH=n),n}function Cr(e){return G-e.display.nativeBarWidth}function Sr(e){return e.display.scroller.clientWidth-Cr(e)-e.display.barWidth}function Lr(e){return e.display.scroller.clientHeight-Cr(e)-e.display.barHeight}function kr(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;n<e.rest.length;n++)if(e.rest[n]==t)return{map:e.measure.maps[n],cache:e.measure.caches[n]};for(var i=0;i<e.rest.length;i++)if(he(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Tr(e,t,r,n){return Or(e,Nr(e,t),r,n)}function Mr(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[on(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function Nr(e,t){var r=he(t),n=Mr(e,r);n&&!n.text?n=null:n&&n.changes&&(sr(e,n,r,Jr(e)),e.curOp.forceUpdate=!0),n||(n=function(e,t){var r=he(t=Be(t)),n=e.display.externalMeasured=new tr(e.doc,t,r);n.lineN=r;var i=n.built=qt(e,n);return n.text=i.pre,N(e.display.lineMeasure,i.pre),n}(e,t));var i=kr(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function Or(e,t,r,n,i){t.before&&(r=-1);var o,a=r+(n||\"\");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(!function(e,t,r){var n=e.options.lineWrapping,i=n&&Sr(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var l=t.text.firstChild.getClientRects(),s=0;s<l.length-1;s++){var a=l[s],u=l[s+1];Math.abs(a.bottom-u.bottom)>2&&o.push((a.bottom+u.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,r,n){var i,o=Wr(t.map,r,n),a=o.node,u=o.start,c=o.end,h=o.collapse;if(3==a.nodeType){for(var f=0;f<4;f++){for(;u&&ie(t.line.text.charAt(o.coverStart+u));)--u;for(;o.coverStart+c<o.coverEnd&&ie(t.line.text.charAt(o.coverStart+c));)++c;if((i=l&&s<9&&0==u&&c==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():Hr(k(a,u,c).getClientRects(),n)).left||i.right||0==u)break;c=u,u-=1,h=\"right\"}l&&s<11&&(i=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=Ct)return Ct;var t=N(e,O(\"span\",\"x\")),r=t.getBoundingClientRect(),n=k(t,0,1).getBoundingClientRect();return Ct=Math.abs(r.left-n.left)>1}(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}(e.display.measure,i))}else{var d;u>0&&(h=n=\"right\"),i=e.options.lineWrapping&&(d=a.getClientRects()).length>1?d[\"right\"==n?d.length-1:0]:a.getBoundingClientRect()}if(l&&s<9&&!u&&(!i||!i.left&&!i.right)){var p=a.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+Qr(e.display),top:p.top,bottom:p.bottom}:Dr}for(var g=i.top-t.rect.top,v=i.bottom-t.rect.top,m=(g+v)/2,y=t.view.measure.heights,b=0;b<y.length-1&&!(m<y[b]);b++);var w=b?y[b-1]:0,x=y[b],C={left:(\"right\"==h?i.right:i.left)-t.rect.left,right:(\"left\"==h?i.left:i.right)-t.rect.left,top:w,bottom:x};i.left||i.right||(C.bogus=!0);e.options.singleCursorHeightPerLine||(C.rtop=g,C.rbottom=v);return C}(e,t,r,n)).bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}var Ar,Dr={left:0,right:0,top:0,bottom:0};function Wr(e,t,r){for(var n,i,o,l,s,a,u=0;u<e.length;u+=3)if(s=e[u],a=e[u+1],t<s?(i=0,o=1,l=\"left\"):t<a?o=(i=t-s)+1:(u==e.length-3||t==a&&e[u+3]>t)&&(i=(o=a-s)-1,t>=a&&(l=\"right\")),null!=i){if(n=e[u+2],s==a&&r==(n.insertLeft?\"left\":\"right\")&&(l=r),\"left\"==r&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)n=e[2+(u-=3)],l=\"left\";if(\"right\"==r&&i==a-s)for(;u<e.length-3&&e[u+3]==e[u+4]&&!e[u+5].insertLeft;)n=e[(u+=3)+2],l=\"right\";break}return{node:n,start:i,end:o,collapse:l,coverStart:s,coverEnd:a}}function Hr(e,t){var r=Dr;if(\"left\"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;i>=0&&(r=e[i]).left==r.right;i--);return r}function Fr(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function Pr(e){e.display.externalMeasure=null,M(e.display.lineMeasure);for(var t=0;t<e.display.view.length;t++)Fr(e.display.view[t])}function Er(e){Pr(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function zr(){return c&&v?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function Ir(){return c&&v?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function Rr(e){var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;++r)e.widgets[r].above&&(t+=mr(e.widgets[r]));return t}function Br(e,t,r,n,i){if(!i){var o=Rr(t);r.top+=o,r.bottom+=o}if(\"line\"==n)return r;n||(n=\"local\");var l=je(t);if(\"local\"==n?l+=br(e.display):l-=e.display.viewOffset,\"page\"==n||\"window\"==n){var s=e.display.lineSpace.getBoundingClientRect();l+=s.top+(\"window\"==n?0:Ir());var a=s.left+(\"window\"==n?0:zr());r.left+=a,r.right+=a}return r.top+=l,r.bottom+=l,r}function Gr(e,t,r){if(\"div\"==r)return t;var n=t.left,i=t.top;if(\"page\"==r)n-=zr(),i-=Ir();else if(\"local\"==r||!r){var o=e.display.sizer.getBoundingClientRect();n+=o.left,i+=o.top}var l=e.display.lineSpace.getBoundingClientRect();return{left:n-l.left,top:i-l.top}}function Ur(e,t,r,n,i){return n||(n=se(e.doc,t.line)),Br(e,n,Tr(e,n,t.ch,i),r)}function Vr(e,t,r,n,i,o){function l(t,l){var s=Or(e,i,t,l?\"right\":\"left\",o);return l?s.left=s.right:s.right=s.left,Br(e,n,s,r)}n=n||se(e.doc,t.line),i||(i=Nr(e,n));var s=Ze(n,e.doc.direction),a=t.ch,u=t.sticky;if(a>=n.text.length?(a=n.text.length,u=\"before\"):a<=0&&(a=0,u=\"after\"),!s)return l(\"before\"==u?a-1:a,\"before\"==u);function c(e,t,r){return l(r?e-1:e,1==s[t].level!=r)}var h=qe(s,a,u),f=_e,d=c(a,h,\"before\"==u);return null!=f&&(d.other=c(a,f,\"before\"!=u)),d}function Kr(e,t){var r=0;t=Ce(e.doc,t),e.options.lineWrapping||(r=Qr(e.display)*t.ch);var n=se(e.doc,t.line),i=je(n)+br(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function jr(e,t,r,n,i){var o=ge(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function Xr(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return jr(n.first,0,null,!0,-1);var i=fe(n,r),o=n.first+n.size-1;if(i>o)return jr(n.first+n.size-1,se(n,o).text.length,null,!0,1);t<0&&(t=0);for(var l=se(n,i);;){var s=$r(e,l,i,t,r),a=Ie(l),u=a&&a.find(0,!0);if(!a||!(s.ch>u.from.ch||s.ch==u.from.ch&&s.xRel>0))return s;i=he(l=u.to.line)}}function Yr(e,t,r,n){n-=Rr(t);var i=t.text.length,o=le(function(t){return Or(e,r,t-1).bottom<=n},i,0);return{begin:o,end:i=le(function(t){return Or(e,r,t).top>n},o,i)}}function _r(e,t,r,n){return r||(r=Nr(e,t)),Yr(e,t,r,Br(e,t,Or(e,r,n),\"line\").top)}function qr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function $r(e,t,r,n,i){i-=je(t);var o=Nr(e,t),l=Rr(t),s=0,a=t.text.length,u=!0,c=Ze(t,e.doc.direction);if(c){var h=(e.options.lineWrapping?function(e,t,r,n,i,o,l){var s=Yr(e,t,n,l),a=s.begin,u=s.end;/\\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,h=null,f=0;f<i.length;f++){var d=i[f];if(!(d.from>=u||d.to<=a)){var p=1!=d.level,g=Or(e,n,p?Math.min(u,d.to)-1:Math.max(a,d.from)).right,v=g<o?o-g+1e9:g-o;(!c||h>v)&&(c=d,h=v)}}c||(c=i[i.length-1]);c.from<a&&(c={from:a,to:c.to,level:c.level});c.to>u&&(c={from:c.from,to:u,level:c.level});return c}:function(e,t,r,n,i,o,l){var s=le(function(s){var a=i[s],u=1!=a.level;return qr(Vr(e,ge(r,u?a.to:a.from,u?\"before\":\"after\"),\"line\",t,n),o,l,!0)},0,i.length-1),a=i[s];if(s>0){var u=1!=a.level,c=Vr(e,ge(r,u?a.from:a.to,u?\"after\":\"before\"),\"line\",t,n);qr(c,o,l,!0)&&c.top>l&&(a=i[s-1])}return a})(e,t,r,o,c,n,i);s=(u=1!=h.level)?h.from:h.to-1,a=u?h.to:h.from-1}var f,d,p=null,g=null,v=le(function(t){var r=Or(e,o,t);return r.top+=l,r.bottom+=l,!!qr(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,g=r),!0)},s,a),m=!1;if(g){var y=n-g.left<g.right-n,b=y==u;v=p+(b?0:1),d=b?\"after\":\"before\",f=y?g.left:g.right}else{u||v!=a&&v!=s||v++,d=0==v?\"after\":v==t.text.length?\"before\":Or(e,o,v-(u?1:0)).bottom+l<=i==u?\"after\":\"before\";var w=Vr(e,ge(r,v,d),\"line\",t,o);f=w.left,m=i<w.top||i>=w.bottom}return jr(r,v=oe(t.text,v,1),d,m,n-f)}function Zr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Ar){Ar=O(\"pre\");for(var t=0;t<49;++t)Ar.appendChild(document.createTextNode(\"x\")),Ar.appendChild(O(\"br\"));Ar.appendChild(document.createTextNode(\"x\"))}N(e.measure,Ar);var r=Ar.offsetHeight/50;return r>3&&(e.cachedTextHeight=r),M(e.measure),r||1}function Qr(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=O(\"span\",\"xxxxxxxxxx\"),r=O(\"pre\",[t]);N(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function Jr(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l)r[e.options.gutters[l]]=o.offsetLeft+o.clientLeft+i,n[e.options.gutters[l]]=o.clientWidth;return{fixedPos:en(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function en(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function tn(e){var t=Zr(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/Qr(e.display)-3);return function(i){if(Ve(e.doc,i))return 0;var o=0;if(i.widgets)for(var l=0;l<i.widgets.length;l++)i.widgets[l].height&&(o+=i.widgets[l].height);return r?o+(Math.ceil(i.text.length/n)||1)*t:o+t}}function rn(e){var t=e.doc,r=tn(e);t.iter(function(e){var t=r(e);t!=e.height&&ce(e,t)})}function nn(e,t,r,n){var i=e.display;if(!r&&\"true\"==ht(t).getAttribute(\"cm-not-content\"))return null;var o,l,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,l=t.clientY-s.top}catch(t){return null}var a,u=Xr(e,o,l);if(n&&1==u.xRel&&(a=se(e.doc,u.line).text).length==u.ch){var c=I(a,a.length,e.options.tabSize)-a.length;u=ge(u.line,Math.max(0,Math.round((o-xr(e.display).left)/Qr(e.display))-c))}return u}function on(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;n<r.length;n++)if((t-=r[n].size)<0)return n}function ln(e){e.display.input.showSelection(e.display.input.prepareSelection())}function sn(e,t){void 0===t&&(t=!0);for(var r=e.doc,n={},i=n.cursors=document.createDocumentFragment(),o=n.selection=document.createDocumentFragment(),l=0;l<r.sel.ranges.length;l++)if(t||l!=r.sel.primIndex){var s=r.sel.ranges[l];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var a=s.empty();(a||e.options.showCursorWhenSelecting)&&an(e,s.head,i),a||cn(e,s,o)}}return n}function an(e,t,r){var n=Vr(e,t,\"div\",null,null,!e.options.singleCursorHeightPerLine),i=r.appendChild(O(\"div\",\" \",\"CodeMirror-cursor\"));if(i.style.left=n.left+\"px\",i.style.top=n.top+\"px\",i.style.height=Math.max(0,n.bottom-n.top)*e.options.cursorHeight+\"px\",n.other){var o=r.appendChild(O(\"div\",\" \",\"CodeMirror-cursor CodeMirror-secondarycursor\"));o.style.display=\"\",o.style.left=n.other.left+\"px\",o.style.top=n.other.top+\"px\",o.style.height=.85*(n.other.bottom-n.other.top)+\"px\"}}function un(e,t){return e.top-t.top||e.left-t.left}function cn(e,t,r){var n=e.display,i=e.doc,o=document.createDocumentFragment(),l=xr(e.display),s=l.left,a=Math.max(n.sizerWidth,Sr(e)-n.sizer.offsetLeft)-l.right,u=\"ltr\"==i.direction;function c(e,t,r,n){t<0&&(t=0),t=Math.round(t),n=Math.round(n),o.appendChild(O(\"div\",null,\"CodeMirror-selected\",\"position: absolute; left: \"+e+\"px;\\n top: \"+t+\"px; width: \"+(null==r?a-e:r)+\"px;\\n height: \"+(n-t)+\"px\"))}function h(t,r,n){var o,l,h=se(i,t),f=h.text.length;function d(r,n){return Ur(e,ge(t,r),\"div\",h,n)}function p(t,r,n){var i=_r(e,h,null,t),o=\"ltr\"==r==(\"after\"==n)?\"left\":\"right\";return d(\"after\"==n?i.begin:i.end-(/\\s/.test(h.text.charAt(i.end-1))?2:1),o)[o]}var g=Ze(h,i.direction);return function(e,t,r,n){if(!e)return n(t,r,\"ltr\",0);for(var i=!1,o=0;o<e.length;++o){var l=e[o];(l.from<r&&l.to>t||t==r&&l.to==t)&&(n(Math.max(l.from,t),Math.min(l.to,r),1==l.level?\"rtl\":\"ltr\",o),i=!0)}i||n(t,r,\"ltr\")}(g,r||0,null==n?f:n,function(e,t,i,h){var v=\"ltr\"==i,m=d(e,v?\"left\":\"right\"),y=d(t-1,v?\"right\":\"left\"),b=null==r&&0==e,w=null==n&&t==f,x=0==h,C=!g||h==g.length-1;if(y.top-m.top<=3){var S=(u?w:b)&&C,L=(u?b:w)&&x?s:(v?m:y).left,k=S?a:(v?y:m).right;c(L,m.top,k-L,m.bottom)}else{var T,M,N,O;v?(T=u&&b&&x?s:m.left,M=u?a:p(e,i,\"before\"),N=u?s:p(t,i,\"after\"),O=u&&w&&C?a:y.right):(T=u?p(e,i,\"before\"):s,M=!u&&b&&x?a:m.right,N=!u&&w&&C?s:y.left,O=u?p(t,i,\"after\"):a),c(T,m.top,M-T,m.bottom),m.bottom<y.top&&c(s,m.bottom,null,y.top),c(N,y.top,O-N,y.bottom)}(!o||un(m,o)<0)&&(o=m),un(y,o)<0&&(o=y),(!l||un(m,l)<0)&&(l=m),un(y,l)<0&&(l=y)}),{start:o,end:l}}var f=t.from(),d=t.to();if(f.line==d.line)h(f.line,f.ch,d.ch);else{var p=se(i,f.line),g=se(i,d.line),v=Be(p)==Be(g),m=h(f.line,f.ch,v?p.text.length+1:null).end,y=h(d.line,v?0:null,d.ch).start;v&&(m.top<y.top-2?(c(m.right,m.top,null,m.bottom),c(s,y.top,y.left,y.bottom)):c(m.right,m.top,y.left-m.right,m.bottom)),m.bottom<y.top&&c(s,m.bottom,null,y.top)}r.appendChild(o)}function hn(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility=\"\",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?\"\":\"hidden\"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility=\"hidden\")}}function fn(e){e.state.focused||(e.display.input.focus(),pn(e))}function dn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,gn(e))},100)}function pn(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),\"nocursor\"!=e.options.readOnly&&(e.state.focused||(rt(e,\"focus\",e,t),e.state.focused=!0,H(e.display.wrapper,\"CodeMirror-focused\"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),a&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),hn(e))}function gn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(rt(e,\"blur\",e,t),e.state.focused=!1,T(e.display.wrapper,\"CodeMirror-focused\")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function vn(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n<t.view.length;n++){var i=t.view[n],o=void 0;if(!i.hidden){if(l&&s<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-r,r=a}else{var u=i.node.getBoundingClientRect();o=u.bottom-u.top}var c=i.line.height-o;if(o<2&&(o=Zr(t)),(c>.005||c<-.005)&&(ce(i.line,o),mn(i.line),i.rest))for(var h=0;h<i.rest.length;h++)mn(i.rest[h])}}}function mn(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var r=e.widgets[t],n=r.node.parentNode;n&&(r.height=n.offsetHeight)}}function yn(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-br(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=fe(t,n),l=fe(t,i);if(r&&r.ensure){var s=r.ensure.from.line,a=r.ensure.to.line;s<o?(o=s,l=fe(t,je(se(t,s))+e.wrapper.clientHeight)):Math.min(a,t.lastLine())>=l&&(o=fe(t,je(se(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function bn(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=en(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+\"px\",l=0;l<r.length;l++)if(!r[l].hidden){e.options.fixedGutter&&(r[l].gutter&&(r[l].gutter.style.left=o),r[l].gutterBackground&&(r[l].gutterBackground.style.left=o));var s=r[l].alignable;if(s)for(var a=0;a<s.length;a++)s[a].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+\"px\")}}function wn(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=pe(e.options,t.first+t.size-1),n=e.display;if(r.length!=n.lineNumChars){var i=n.measure.appendChild(O(\"div\",[O(\"div\",r)],\"CodeMirror-linenumber CodeMirror-gutter-elt\")),o=i.firstChild.offsetWidth,l=i.offsetWidth-o;return n.lineGutter.style.width=\"\",n.lineNumInnerWidth=Math.max(o,n.lineGutter.offsetWidth-l)+1,n.lineNumWidth=n.lineNumInnerWidth+l,n.lineNumChars=n.lineNumInnerWidth?r.length:-1,n.lineGutter.style.width=n.lineNumWidth+\"px\",oi(e),!0}return!1}function xn(e,t){var r=e.display,n=Zr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Lr(e),l={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+wr(r),a=t.top<n,u=t.bottom>s-n;if(t.top<i)l.scrollTop=a?0:t.top;else if(t.bottom>i+o){var c=Math.min(t.top,(u?s:t.bottom)-o);c!=i&&(l.scrollTop=c)}var h=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,f=Sr(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),d=t.right-t.left>f;return d&&(t.right=t.left+f),t.left<10?l.scrollLeft=0:t.left<h?l.scrollLeft=Math.max(0,t.left-(d?0:10)):t.right>f+h-3&&(l.scrollLeft=t.right+(d?0:10)-f),l}function Cn(e,t){null!=t&&(kn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Sn(e){kn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Ln(e,t,r){null==t&&null==r||kn(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function kn(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Tn(e,Kr(e,t.from),Kr(e,t.to),t.margin))}function Tn(e,t,r,n){var i=xn(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});Ln(e,i.scrollLeft,i.scrollTop)}function Mn(e,t){Math.abs(e.doc.scrollTop-t)<2||(r||ii(e,{top:t}),Nn(e,t,!0),r&&ii(e),Jn(e,100))}function Nn(e,t,r){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function On(e,t,r,n){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,bn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function An(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+wr(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+Cr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}var Dn=function(e,t,r){this.cm=r;var n=this.vert=O(\"div\",[O(\"div\",null,null,\"min-width: 1px\")],\"CodeMirror-vscrollbar\"),i=this.horiz=O(\"div\",[O(\"div\",null,null,\"height: 100%; min-height: 1px\")],\"CodeMirror-hscrollbar\");e(n),e(i),Je(n,\"scroll\",function(){n.clientHeight&&t(n.scrollTop,\"vertical\")}),Je(i,\"scroll\",function(){i.clientWidth&&t(i.scrollLeft,\"horizontal\")}),this.checkedZeroWidth=!1,l&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth=\"18px\")};Dn.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display=\"block\",this.vert.style.bottom=t?n+\"px\":\"0\";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+\"px\"}else this.vert.style.display=\"\",this.vert.firstChild.style.height=\"0\";if(t){this.horiz.style.display=\"block\",this.horiz.style.right=r?n+\"px\":\"0\",this.horiz.style.left=e.barLeft+\"px\";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+\"px\"}else this.horiz.style.display=\"\",this.horiz.firstChild.style.width=\"0\";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},Dn.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,\"horiz\")},Dn.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,\"vert\")},Dn.prototype.zeroWidthHack=function(){var e=y&&!d?\"12px\":\"18px\";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents=\"none\",this.disableHoriz=new R,this.disableVert=new R},Dn.prototype.enableZeroWidthBar=function(e,t,r){e.style.pointerEvents=\"auto\",t.set(1e3,function n(){var i=e.getBoundingClientRect();(\"vert\"==r?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents=\"none\":t.set(1e3,n)})},Dn.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Wn=function(){};function Hn(e,t){t||(t=An(e));var r=e.display.barWidth,n=e.display.barHeight;Fn(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&vn(e),Fn(e,An(e)),r=e.display.barWidth,n=e.display.barHeight}function Fn(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+\"px\",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+\"px\",r.heightForcer.style.borderBottom=n.bottom+\"px solid transparent\",n.right&&n.bottom?(r.scrollbarFiller.style.display=\"block\",r.scrollbarFiller.style.height=n.bottom+\"px\",r.scrollbarFiller.style.width=n.right+\"px\"):r.scrollbarFiller.style.display=\"\",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display=\"block\",r.gutterFiller.style.height=n.bottom+\"px\",r.gutterFiller.style.width=t.gutterWidth+\"px\"):r.gutterFiller.style.display=\"\"}Wn.prototype.update=function(){return{bottom:0,right:0}},Wn.prototype.setScrollLeft=function(){},Wn.prototype.setScrollTop=function(){},Wn.prototype.clear=function(){};var Pn={native:Dn,null:Wn};function En(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&T(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Pn[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Je(t,\"mousedown\",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute(\"cm-not-content\",\"true\")},function(t,r){\"horizontal\"==r?On(e,t):Mn(e,t)},e),e.display.scrollbars.addClass&&H(e.display.wrapper,e.display.scrollbars.addClass)}var zn=0;function In(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++zn},t=e.curOp,nr?nr.ops.push(t):t.ownsGroup=nr={ops:[t],delayedCallbacks:[]}}function Rn(e){!function(e,t){var r=e.ownsGroup;if(r)try{!function(e){var t=e.delayedCallbacks,r=0;do{for(;r<t.length;r++)t[r].call(null);for(var n=0;n<e.ops.length;n++){var i=e.ops[n];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(r<t.length)}(r)}finally{nr=null,t(r)}}(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;!function(e){for(var t=e.ops,r=0;r<t.length;r++)Bn(t[r]);for(var n=0;n<t.length;n++)(i=t[n]).updatedDisplay=i.mustUpdate&&ri(i.cm,i.update);var i;for(var o=0;o<t.length;o++)Gn(t[o]);for(var l=0;l<t.length;l++)Un(t[l]);for(var s=0;s<t.length;s++)Vn(t[s])}(e)})}function Bn(e){var t,r,n=e.cm,i=n.display;!(r=(t=n).display).scrollbarsClipped&&r.scroller.offsetWidth&&(r.nativeBarWidth=r.scroller.offsetWidth-r.scroller.clientWidth,r.heightForcer.style.height=Cr(t)+\"px\",r.sizer.style.marginBottom=-r.nativeBarWidth+\"px\",r.sizer.style.borderRightWidth=Cr(t)+\"px\",r.scrollbarsClipped=!0),e.updateMaxLine&&Ye(n),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<i.viewFrom||e.scrollToPos.to.line>=i.viewTo)||i.maxLineChanged&&n.options.lineWrapping,e.update=e.mustUpdate&&new ti(n,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Gn(e){var t=e.cm,r=t.display;e.updatedDisplay&&vn(t),e.barMeasure=An(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Tr(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+Cr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Sr(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Un(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+\"px\",e.maxScrollLeft<t.doc.scrollLeft&&On(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==W();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r),(e.updatedDisplay||e.startHeight!=t.doc.height)&&Hn(t,e.barMeasure),e.updatedDisplay&&li(t,e.barMeasure),e.selectionChanged&&hn(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),r&&fn(e.cm)}function Vn(e){var t=e.cm,r=t.display,n=t.doc;(e.updatedDisplay&&ni(t,e.update),null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null),null!=e.scrollTop&&Nn(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&On(t,e.scrollLeft,!0,!0),e.scrollToPos)&&function(e,t){if(!nt(e,\"scrollCursorIntoView\")){var r=e.display,n=r.sizer.getBoundingClientRect(),i=null;if(t.top+n.top<0?i=!0:t.bottom+n.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=O(\"div\",\"\",null,\"position: absolute;\\n top: \"+(t.top-r.viewOffset-br(e.display))+\"px;\\n height: \"+(t.bottom-t.top+Cr(e)+r.barHeight)+\"px;\\n left: \"+t.left+\"px; width: \"+Math.max(2,t.right-t.left)+\"px;\");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,r,n){var i;null==n&&(n=0),e.options.lineWrapping||t!=r||(r=\"before\"==(t=t.ch?ge(t.line,\"before\"==t.sticky?t.ch-1:t.ch,\"after\"):t).sticky?ge(t.line,t.ch+1,\"before\"):t);for(var o=0;o<5;o++){var l=!1,s=Vr(e,t),a=r&&r!=t?Vr(e,r):s,u=xn(e,i={left:Math.min(s.left,a.left),top:Math.min(s.top,a.top)-n,right:Math.max(s.left,a.left),bottom:Math.max(s.bottom,a.bottom)+n}),c=e.doc.scrollTop,h=e.doc.scrollLeft;if(null!=u.scrollTop&&(Mn(e,u.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(l=!0)),null!=u.scrollLeft&&(On(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-h)>1&&(l=!0)),!l)break}return i}(t,Ce(n,e.scrollToPos.from),Ce(n,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var l=0;l<i.length;++l)i[l].lines.length||rt(i[l],\"hide\");if(o)for(var s=0;s<o.length;++s)o[s].lines.length&&rt(o[s],\"unhide\");r.wrapper.offsetHeight&&(n.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&rt(t,\"changes\",t,e.changeObjs),e.update&&e.update.finish()}function Kn(e,t){if(e.curOp)return t();In(e);try{return t()}finally{Rn(e)}}function jn(e,t){return function(){if(e.curOp)return t.apply(e,arguments);In(e);try{return t.apply(e,arguments)}finally{Rn(e)}}}function Xn(e){return function(){if(this.curOp)return e.apply(this,arguments);In(this);try{return e.apply(this,arguments)}finally{Rn(this)}}}function Yn(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);In(t);try{return e.apply(this,arguments)}finally{Rn(t)}}}function _n(e,t,r,n){null==t&&(t=e.doc.first),null==r&&(r=e.doc.first+e.doc.size),n||(n=0);var i=e.display;if(n&&r<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)ke&&Ge(e.doc,t)<i.viewTo&&$n(e);else if(r<=i.viewFrom)ke&&Ue(e.doc,r+n)>i.viewFrom?$n(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)$n(e);else if(t<=i.viewFrom){var o=Zn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):$n(e)}else if(r>=i.viewTo){var l=Zn(e,t,t,-1);l?(i.view=i.view.slice(0,l.index),i.viewTo=l.lineN):$n(e)}else{var s=Zn(e,t,t,-1),a=Zn(e,r,r+n,1);s&&a?(i.view=i.view.slice(0,s.index).concat(rr(e,s.lineN,a.lineN)).concat(i.view.slice(a.index)),i.viewTo+=n):$n(e)}var u=i.externalMeasured;u&&(r<u.lineN?u.lineN+=n:t<u.lineN+u.size&&(i.externalMeasured=null))}function qn(e,t,r){e.curOp.viewChanged=!0;var n=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(n.externalMeasured=null),!(t<n.viewFrom||t>=n.viewTo)){var o=n.view[on(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);-1==B(l,r)&&l.push(r)}}}function $n(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Zn(e,t,r,n){var i,o=on(e,t),l=e.display.view;if(!ke||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=e.display.viewFrom,a=0;a<o;a++)s+=l[a].size;if(s!=t){if(n>0){if(o==l.length-1)return null;i=s+l[o].size-t,o++}else i=s-t;t+=i,r+=i}for(;Ge(e.doc,r)!=r;){if(o==(n<0?0:l.length-1))return null;r+=n*l[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function Qn(e){for(var t=e.display.view,r=0,n=0;n<t.length;n++){var i=t[n];i.hidden||i.node&&!i.changes||++r}return r}function Jn(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,E(ei,e))}function ei(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=zt(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(n.line>=e.display.viewFrom){var l=o.styles,s=o.text.length>e.options.maxHighlightLength?Ot(t.mode,n.state):null,a=Pt(e,o,n,!0);s&&(n.state=s),o.styles=a.styles;var u=o.styleClasses,c=a.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var h=!l||l.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),f=0;!h&&f<l.length;++f)h=l[f]!=o.styles[f];h&&i.push(n.line),o.stateAfter=n.save(),n.nextLine()}else o.text.length<=e.options.maxHighlightLength&&It(e,o.text,n),o.stateAfter=n.line%5==0?n.save():null,n.nextLine();if(+new Date>r)return Jn(e,e.options.workDelay),!0}),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&Kn(e,function(){for(var t=0;t<i.length;t++)qn(e,i[t],\"text\")})}}var ti=function(e,t,r){var n=e.display;this.viewport=t,this.visible=yn(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=Sr(e),this.force=r,this.dims=Jr(e),this.events=[]};function ri(e,t){var r=e.display,n=e.doc;if(t.editorIsHidden)return $n(e),!1;if(!t.force&&t.visible.from>=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==Qn(e))return!1;wn(e)&&($n(e),t.dims=Jr(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFrom<o&&o-r.viewFrom<20&&(o=Math.max(n.first,r.viewFrom)),r.viewTo>l&&r.viewTo-l<20&&(l=Math.min(i,r.viewTo)),ke&&(o=Ge(e.doc,o),l=Ue(e.doc,l));var s,u,c,h,f=o!=r.viewFrom||l!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;u=o,c=l,0==(h=(s=e).display).view.length||u>=h.viewTo||c<=h.viewFrom?(h.view=rr(s,u,c),h.viewFrom=u):(h.viewFrom>u?h.view=rr(s,u,h.viewFrom).concat(h.view):h.viewFrom<u&&(h.view=h.view.slice(on(s,u))),h.viewFrom=u,h.viewTo<c?h.view=h.view.concat(rr(s,h.viewTo,c)):h.viewTo>c&&(h.view=h.view.slice(0,on(s,c)))),h.viewTo=c,r.viewOffset=je(se(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+\"px\";var d=Qn(e);if(!f&&0==d&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var p=function(e){if(e.hasFocus())return null;var t=W();if(!t||!D(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&D(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}(e);return d>4&&(r.lineDiv.style.display=\"none\"),function(e,t,r){var n=e.display,i=e.options.lineNumbers,o=n.lineDiv,l=o.firstChild;function s(t){var r=t.nextSibling;return a&&y&&e.display.currentWheelTarget==t?t.style.display=\"none\":t.parentNode.removeChild(t),r}for(var u=n.view,c=n.viewFrom,h=0;h<u.length;h++){var f=u[h];if(f.hidden);else if(f.node&&f.node.parentNode==o){for(;l!=f.node;)l=s(l);var d=i&&null!=t&&t<=c&&f.lineNumber;f.changes&&(B(f.changes,\"gutter\")>-1&&(d=!1),sr(e,f,c,r)),d&&(M(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(pe(e.options,c)))),l=f.node.nextSibling}else{var p=(m=c,b=r,void 0,w=ur(g=e,v=f),v.text=v.node=w.pre,w.bgClass&&(v.bgClass=w.bgClass),w.textClass&&(v.textClass=w.textClass),hr(g,v),fr(g,v,m,b),pr(g,v,b),v.node);o.insertBefore(p,l)}c+=f.size}var g,v,m,b,w;for(;l;)l=s(l)}(e,r.updateLineNumbers,t.dims),d>4&&(r.lineDiv.style.display=\"\"),r.renderedView=r.view,function(e){if(e&&e.activeElt&&e.activeElt!=W()&&(e.activeElt.focus(),e.anchorNode&&D(document.body,e.anchorNode)&&D(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(p),M(r.cursorDiv),M(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,f&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,Jn(e,400)),r.updateLineNumbers=null,!0}function ni(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Sr(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+wr(e.display)-Lr(e),r.top)}),t.visible=yn(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&ri(e,t);n=!1){vn(e);var i=An(e);ln(e),Hn(e,i),li(e,i),t.force=!1}t.signal(e,\"update\",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,\"viewportChange\",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function ii(e,t){var r=new ti(e,t);if(ri(e,r)){vn(e),ni(e,r);var n=An(e);ln(e),Hn(e,n),li(e,n),r.finish()}}function oi(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+\"px\"}function li(e,t){e.display.sizer.style.minHeight=t.docHeight+\"px\",e.display.heightForcer.style.top=t.docHeight+\"px\",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Cr(e)+\"px\"}function si(e){var t=e.display.gutters,r=e.options.gutters;M(t);for(var n=0;n<r.length;++n){var i=r[n],o=t.appendChild(O(\"div\",null,\"CodeMirror-gutter \"+i));\"CodeMirror-linenumbers\"==i&&(e.display.lineGutter=o,o.style.width=(e.display.lineNumWidth||1)+\"px\")}t.style.display=n?\"\":\"none\",oi(e)}function ai(e){var t=B(e.gutters,\"CodeMirror-linenumbers\");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat([\"CodeMirror-linenumbers\"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}ti.prototype.signal=function(e,t){ot(e,t)&&this.events.push(arguments)},ti.prototype.finish=function(){for(var e=0;e<this.events.length;e++)rt.apply(null,this.events[e])};var ui=0,ci=null;function hi(e){var t=e.wheelDeltaX,r=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==r&&e.detail&&e.axis==e.VERTICAL_AXIS?r=e.detail:null==r&&(r=e.wheelDelta),{x:t,y:r}}function fi(e){var t=hi(e);return t.x*=ci,t.y*=ci,t}function di(e,t){var n=hi(t),i=n.x,o=n.y,l=e.display,s=l.scroller,u=s.scrollWidth>s.clientWidth,c=s.scrollHeight>s.clientHeight;if(i&&u||o&&c){if(o&&y&&a)e:for(var f=t.target,d=l.view;f!=s;f=f.parentNode)for(var p=0;p<d.length;p++)if(d[p].node==f){e.display.currentWheelTarget=f;break e}if(i&&!r&&!h&&null!=ci)return o&&c&&Mn(e,Math.max(0,s.scrollTop+o*ci)),On(e,Math.max(0,s.scrollLeft+i*ci)),(!o||o&&c)&&st(t),void(l.wheelStartX=null);if(o&&null!=ci){var g=o*ci,v=e.doc.scrollTop,m=v+l.wrapper.clientHeight;g<0?v=Math.max(0,v+g-50):m=Math.min(e.doc.height,m+g+50),ii(e,{top:v,bottom:m})}ui<20&&(null==l.wheelStartX?(l.wheelStartX=s.scrollLeft,l.wheelStartY=s.scrollTop,l.wheelDX=i,l.wheelDY=o,setTimeout(function(){if(null!=l.wheelStartX){var e=s.scrollLeft-l.wheelStartX,t=s.scrollTop-l.wheelStartY,r=t&&l.wheelDY&&t/l.wheelDY||e&&l.wheelDX&&e/l.wheelDX;l.wheelStartX=l.wheelStartY=null,r&&(ci=(ci*ui+r)/(ui+1),++ui)}},200)):(l.wheelDX+=i,l.wheelDY+=o))}}l?ci=-.53:r?ci=15:c?ci=-.7:f&&(ci=-1/3);var pi=function(e,t){this.ranges=e,this.primIndex=t};pi.prototype.primary=function(){return this.ranges[this.primIndex]},pi.prototype.equals=function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var r=this.ranges[t],n=e.ranges[t];if(!me(r.anchor,n.anchor)||!me(r.head,n.head))return!1}return!0},pi.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new gi(ye(this.ranges[t].anchor),ye(this.ranges[t].head));return new pi(e,this.primIndex)},pi.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},pi.prototype.contains=function(e,t){t||(t=e);for(var r=0;r<this.ranges.length;r++){var n=this.ranges[r];if(ve(t,n.from())>=0&&ve(e,n.to())<=0)return r}return-1};var gi=function(e,t){this.anchor=e,this.head=t};function vi(e,t){var r=e[t];e.sort(function(e,t){return ve(e.from(),t.from())}),t=B(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(ve(o.to(),i.from())>=0){var l=we(o.from(),i.from()),s=be(o.to(),i.to()),a=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new gi(a?s:l,a?l:s))}}return new pi(e,t)}function mi(e,t){return new pi([new gi(e,t||e)],0)}function yi(e){return e.text?ge(e.from.line+e.text.length-1,q(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function bi(e,t){if(ve(e,t.from)<0)return e;if(ve(e,t.to)<=0)return yi(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=yi(t).ch-t.to.ch),ge(r,n)}function wi(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new gi(bi(i.anchor,t),bi(i.head,t)))}return vi(r,e.sel.primIndex)}function xi(e,t,r){return e.line==t.line?ge(r.line,e.ch-t.ch+r.ch):ge(r.line+(e.line-t.line),e.ch)}function Ci(e){e.doc.mode=Tt(e.options,e.doc.modeOption),Si(e)}function Si(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,Jn(e,100),e.state.modeGen++,e.curOp&&_n(e)}function Li(e,t){return 0==t.from.ch&&0==t.to.ch&&\"\"==q(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function ki(e,t,r,n){function i(e){return r?r[e]:null}function o(e,r,i){!function(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),De(e),We(e,r);var i=n?n(e):1;i!=e.height&&ce(e,i)}(e,r,i,n),or(e,\"change\",e,t)}function l(e,t){for(var r=[],o=e;o<t;++o)r.push(new jt(u[o],i(o),n));return r}var s=t.from,a=t.to,u=t.text,c=se(e,s.line),h=se(e,a.line),f=q(u),d=i(u.length-1),p=a.line-s.line;if(t.full)e.insert(0,l(0,u.length)),e.remove(u.length,e.size-u.length);else if(Li(e,t)){var g=l(0,u.length-1);o(h,h.text,d),p&&e.remove(s.line,p),g.length&&e.insert(s.line,g)}else if(c==h)if(1==u.length)o(c,c.text.slice(0,s.ch)+f+c.text.slice(a.ch),d);else{var v=l(1,u.length-1);v.push(new jt(f+c.text.slice(a.ch),d,n)),o(c,c.text.slice(0,s.ch)+u[0],i(0)),e.insert(s.line+1,v)}else if(1==u.length)o(c,c.text.slice(0,s.ch)+u[0]+h.text.slice(a.ch),i(0)),e.remove(s.line+1,p);else{o(c,c.text.slice(0,s.ch)+u[0],i(0)),o(h,f+h.text.slice(a.ch),d);var m=l(1,u.length-1);p>1&&e.remove(s.line+1,p-1),e.insert(s.line+1,m)}or(e,\"change\",e,t)}function Ti(e,t,r){!function e(n,i,o){if(n.linked)for(var l=0;l<n.linked.length;++l){var s=n.linked[l];if(s.doc!=i){var a=o&&s.sharedHist;r&&!a||(t(s.doc,a),e(s.doc,n,a))}}}(e,null,!0)}function Mi(e,t){if(t.cm)throw new Error(\"This document is already in use.\");e.doc=t,t.cm=e,rn(e),Ci(e),Ni(e),e.options.lineWrapping||Ye(e),e.options.mode=t.modeOption,_n(e)}function Ni(e){(\"rtl\"==e.doc.direction?H:T)(e.display.lineDiv,\"CodeMirror-rtl\")}function Oi(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function Ai(e,t){var r={from:ye(t.from),to:yi(t),text:ae(e,t.from,t.to)};return Pi(e,r,t.from.line,t.to.line+1),Ti(e,function(e){return Pi(e,r,t.from.line,t.to.line+1)},!0),r}function Di(e){for(;e.length;){if(!q(e).ranges)break;e.pop()}}function Wi(e,t,r,n){var i=e.history;i.undone.length=0;var o,l,s,a=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&(\"+\"==t.origin.charAt(0)&&i.lastModTime>a-(e.cm?e.cm.options.historyEventDelay:500)||\"*\"==t.origin.charAt(0)))&&(s=i,o=i.lastOp==n?(Di(s.done),q(s.done)):s.done.length&&!q(s.done).ranges?q(s.done):s.done.length>1&&!s.done[s.done.length-2].ranges?(s.done.pop(),q(s.done)):void 0))l=q(o.changes),0==ve(t.from,t.to)&&0==ve(t.from,l.to)?l.to=yi(t):o.changes.push(Ai(e,t));else{var u=q(i.done);for(u&&u.ranges||Fi(e.sel,i.done),o={changes:[Ai(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=a,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,l||rt(e,\"historyAdded\")}function Hi(e,t,r,n){var i,o,l,s,a,u=e.history,c=n&&n.origin;r==u.lastSelOp||c&&u.lastSelOrigin==c&&(u.lastModTime==u.lastSelTime&&u.lastOrigin==c||(i=e,o=c,l=q(u.done),s=t,\"*\"==(a=o.charAt(0))||\"+\"==a&&l.ranges.length==s.ranges.length&&l.somethingSelected()==s.somethingSelected()&&new Date-i.history.lastSelTime<=(i.cm?i.cm.options.historyEventDelay:500)))?u.done[u.done.length-1]=t:Fi(t,u.done),u.lastSelTime=+new Date,u.lastSelOrigin=c,u.lastSelOp=r,n&&!1!==n.clearRedo&&Di(u.undone)}function Fi(e,t){var r=q(t);r&&r.ranges&&r.equals(e)||t.push(e)}function Pi(e,t,r,n){var i=t[\"spans_\"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t[\"spans_\"+e.id]={}))[o]=r.markedSpans),++o})}function Ei(e){if(!e)return null;for(var t,r=0;r<e.length;++r)e[r].marker.explicitlyCleared?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t?t.length?t:null:e}function zi(e,t){var r=function(e,t){var r=t[\"spans_\"+e.id];if(!r)return null;for(var n=[],i=0;i<t.text.length;++i)n.push(Ei(r[i]));return n}(e,t),n=Oe(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],l=n[i];if(o&&l)e:for(var s=0;s<l.length;++s){for(var a=l[s],u=0;u<o.length;++u)if(o[u].marker==a.marker)continue e;o.push(a)}else l&&(r[i]=l)}return r}function Ii(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?pi.prototype.deepCopy.call(o):o);else{var l=o.changes,s=[];n.push({changes:s});for(var a=0;a<l.length;++a){var u=l[a],c=void 0;if(s.push({from:u.from,to:u.to,text:u.text}),t)for(var h in u)(c=h.match(/^spans_(\\d+)$/))&&B(t,Number(c[1]))>-1&&(q(s)[h]=u[h],delete u[h])}}}return n}function Ri(e,t,r,n){if(n){var i=e.anchor;if(r){var o=ve(t,i)<0;o!=ve(r,i)<0?(i=t,t=r):o!=ve(t,r)<0&&(t=r)}return new gi(i,t)}return new gi(r||t,t)}function Bi(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),ji(e,new pi([Ri(e.sel.primary(),t,r,i)],0),n)}function Gi(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)n[o]=Ri(e.sel.ranges[o],t[o],null,i);ji(e,vi(n,e.sel.primIndex),r)}function Ui(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,ji(e,vi(i,e.sel.primIndex),n)}function Vi(e,t,r,n){ji(e,mi(t,r),n)}function Ki(e,t,r){var n=e.history.done,i=q(n);i&&i.ranges?(n[n.length-1]=t,Xi(e,t,r)):ji(e,t,r)}function ji(e,t,r){Xi(e,t,r),Hi(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function Xi(e,t,r){var n,i,o,l;(ot(e,\"beforeSelectionChange\")||e.cm&&ot(e.cm,\"beforeSelectionChange\"))&&(n=e,o=r,l={ranges:(i=t).ranges,update:function(e){this.ranges=[];for(var t=0;t<e.length;t++)this.ranges[t]=new gi(Ce(n,e[t].anchor),Ce(n,e[t].head))},origin:o&&o.origin},rt(n,\"beforeSelectionChange\",n,l),n.cm&&rt(n.cm,\"beforeSelectionChange\",n.cm,l),t=l.ranges!=i.ranges?vi(l.ranges,l.ranges.length-1):i),Yi(e,qi(e,t,r&&r.bias||(ve(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||Sn(e.cm)}function Yi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,it(e.cm)),or(e,\"cursorActivity\",e))}function _i(e){Yi(e,qi(e,e.sel,null,!1))}function qi(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var l=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],a=Zi(e,l.anchor,s&&s.anchor,r,n),u=Zi(e,l.head,s&&s.head,r,n);(i||a!=l.anchor||u!=l.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new gi(a,u))}return i?vi(i,t.primIndex):t}function $i(e,t,r,n,i){var o=se(e,t.line);if(o.markedSpans)for(var l=0;l<o.markedSpans.length;++l){var s=o.markedSpans[l],a=s.marker;if((null==s.from||(a.inclusiveLeft?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(a.inclusiveRight?s.to>=t.ch:s.to>t.ch))){if(i&&(rt(a,\"beforeCursorEnter\"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!a.atomic)continue;if(r){var u=a.find(n<0?1:-1),c=void 0;if((n<0?a.inclusiveRight:a.inclusiveLeft)&&(u=Qi(e,u,-n,u&&u.line==t.line?o:null)),u&&u.line==t.line&&(c=ve(u,r))&&(n<0?c<0:c>0))return $i(e,u,t,n,i)}var h=a.find(n<0?-1:1);return(n<0?a.inclusiveLeft:a.inclusiveRight)&&(h=Qi(e,h,n,h.line==t.line?o:null)),h?$i(e,h,t,n,i):null}}return t}function Zi(e,t,r,n,i){var o=n||1,l=$i(e,t,r,o,i)||!i&&$i(e,t,r,o,!0)||$i(e,t,r,-o,i)||!i&&$i(e,t,r,-o,!0);return l||(e.cantEdit=!0,ge(e.first,0))}function Qi(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?Ce(e,ge(t.line-1)):null:r>0&&t.ch==(n||se(e,t.line)).text.length?t.line<e.first+e.size-1?ge(t.line+1,0):null:new ge(t.line,t.ch+r)}function Ji(e){e.setSelection(ge(e.firstLine(),0),ge(e.lastLine()),V)}function eo(e,t,r){var n={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return n.canceled=!0}};return r&&(n.update=function(t,r,i,o){t&&(n.from=Ce(e,t)),r&&(n.to=Ce(e,r)),i&&(n.text=i),void 0!==o&&(n.origin=o)}),rt(e,\"beforeChange\",e,n),e.cm&&rt(e.cm,\"beforeChange\",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function to(e,t,r){if(e.cm){if(!e.cm.curOp)return jn(e.cm,to)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(ot(e,\"beforeChange\")||e.cm&&ot(e.cm,\"beforeChange\"))||(t=eo(e,t,!0))){var n=Le&&!r&&function(e,t,r){var n=null;if(e.iter(t.line,r.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var r=e.markedSpans[t].marker;!r.readOnly||n&&-1!=B(n,r)||(n||(n=[])).push(r)}}),!n)return null;for(var i=[{from:t,to:r}],o=0;o<n.length;++o)for(var l=n[o],s=l.find(0),a=0;a<i.length;++a){var u=i[a];if(!(ve(u.to,s.from)<0||ve(u.from,s.to)>0)){var c=[a,1],h=ve(u.from,s.from),f=ve(u.to,s.to);(h<0||!l.inclusiveLeft&&!h)&&c.push({from:u.from,to:s.from}),(f>0||!l.inclusiveRight&&!f)&&c.push({from:s.to,to:u.to}),i.splice.apply(i,c),a+=c.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)ro(e,{from:n[i].from,to:n[i].to,text:i?[\"\"]:t.text,origin:t.origin});else ro(e,t)}}function ro(e,t){if(1!=t.text.length||\"\"!=t.text[0]||0!=ve(t.from,t.to)){var r=wi(e,t);Wi(e,t,r,e.cm?e.cm.curOp.id:NaN),oo(e,t,r,Oe(e,t));var n=[];Ti(e,function(e,r){r||-1!=B(n,e.history)||(uo(e.history,t),n.push(e.history)),oo(e,t,null,Oe(e,t))})}}function no(e,t,r){var n=e.cm&&e.cm.state.suppressEdits;if(!n||r){for(var i,o=e.history,l=e.sel,s=\"undo\"==t?o.done:o.undone,a=\"undo\"==t?o.undone:o.done,u=0;u<s.length&&(i=s[u],r?!i.ranges||i.equals(e.sel):i.ranges);u++);if(u!=s.length){for(o.lastOrigin=o.lastSelOrigin=null;;){if(!(i=s.pop()).ranges){if(n)return void s.push(i);break}if(Fi(i,a),r&&!i.equals(e.sel))return void ji(e,i,{clearRedo:!1});l=i}var c=[];Fi(l,a),a.push({changes:c,generation:o.generation}),o.generation=i.generation||++o.maxGeneration;for(var h=ot(e,\"beforeChange\")||e.cm&&ot(e.cm,\"beforeChange\"),f=function(r){var n=i.changes[r];if(n.origin=t,h&&!eo(e,n,!1))return s.length=0,{};c.push(Ai(e,n));var o=r?wi(e,n):q(s);oo(e,n,o,zi(e,n)),!r&&e.cm&&e.cm.scrollIntoView({from:n.from,to:yi(n)});var l=[];Ti(e,function(e,t){t||-1!=B(l,e.history)||(uo(e.history,n),l.push(e.history)),oo(e,n,null,zi(e,n))})},d=i.changes.length-1;d>=0;--d){var p=f(d);if(p)return p.v}}}}function io(e,t){if(0!=t&&(e.first+=t,e.sel=new pi($(e.sel.ranges,function(e){return new gi(ge(e.anchor.line+t,e.anchor.ch),ge(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){_n(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)qn(e.cm,n,\"gutter\")}}function oo(e,t,r,n){if(e.cm&&!e.cm.curOp)return jn(e.cm,oo)(e,t,r,n);if(t.to.line<e.first)io(e,t.text.length-1-(t.to.line-t.from.line));else if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);io(e,i),t={from:ge(e.first,0),to:ge(t.to.line+i,t.to.ch),text:[q(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:ge(o,se(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=ae(e,t.from,t.to),r||(r=wi(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=he(Be(se(n,o.line))),n.iter(a,l.line+1,function(e){if(e==i.maxLine)return s=!0,!0}));n.sel.contains(t.from,t.to)>-1&&it(e);ki(n,t,r,tn(e)),e.options.lineWrapping||(n.iter(a,o.line+t.text.length,function(e){var t=Xe(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var r=e.first,n=t-1;n>r;n--){var i=se(e,n).stateAfter;if(i&&(!(i instanceof Ht)||n+i.lookAhead<t)){r=n+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,r)}})(n,o.line),Jn(e,400);var u=t.text.length-(l.line-o.line)-1;t.full?_n(e):o.line!=l.line||1!=t.text.length||Li(e.doc,t)?_n(e,o.line,l.line+1,u):qn(e,o.line,\"text\");var c=ot(e,\"changes\"),h=ot(e,\"change\");if(h||c){var f={from:o,to:l,text:t.text,removed:t.removed,origin:t.origin};h&&or(e,\"change\",e,f),c&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(f)}e.display.selForContextMenu=null}(e.cm,t,n):ki(e,t,n),Xi(e,r,V)}}function lo(e,t,r,n,i){var o;(n||(n=r),ve(n,r)<0)&&(r=(o=[n,r])[0],n=o[1]);\"string\"==typeof t&&(t=e.splitLines(t)),to(e,{from:r,to:n,text:t,origin:i})}function so(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function ao(e,t,r,n){for(var i=0;i<e.length;++i){var o=e[i],l=!0;if(o.ranges){o.copied||((o=e[i]=o.deepCopy()).copied=!0);for(var s=0;s<o.ranges.length;s++)so(o.ranges[s].anchor,t,r,n),so(o.ranges[s].head,t,r,n)}else{for(var a=0;a<o.changes.length;++a){var u=o.changes[a];if(r<u.from.line)u.from=ge(u.from.line+n,u.from.ch),u.to=ge(u.to.line+n,u.to.ch);else if(t<=u.to.line){l=!1;break}}l||(e.splice(0,i+1),i=0)}}}function uo(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;ao(e.done,r,n,i),ao(e.undone,r,n,i)}function co(e,t,r,n){var i=t,o=t;return\"number\"==typeof t?o=se(e,xe(e,t)):i=he(t),null==i?null:(n(o,i)&&e.cm&&qn(e.cm,i,r),o)}function ho(e){this.lines=e,this.parent=null;for(var t=0,r=0;r<e.length;++r)e[r].parent=this,t+=e[r].height;this.height=t}function fo(e){this.children=e;for(var t=0,r=0,n=0;n<e.length;++n){var i=e[n];t+=i.chunkSize(),r+=i.height,i.parent=this}this.size=t,this.height=r,this.parent=null}gi.prototype.from=function(){return we(this.anchor,this.head)},gi.prototype.to=function(){return be(this.anchor,this.head)},gi.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},ho.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var r,n=e,i=e+t;n<i;++n){var o=this.lines[n];this.height-=o.height,(r=o).parent=null,De(r),or(o,\"delete\")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,r){this.height+=r,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var n=0;n<t.length;++n)t[n].parent=this},iterN:function(e,t,r){for(var n=e+t;e<n;++e)if(r(this.lines[e]))return!0}},fo.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var r=0;r<this.children.length;++r){var n=this.children[r],i=n.chunkSize();if(e<i){var o=Math.min(t,i-e),l=n.height;if(n.removeInner(e,o),this.height-=l-n.height,i==o&&(this.children.splice(r--,1),n.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof ho))){var s=[];this.collapse(s),this.children=[new ho(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,r){this.size+=t.length,this.height+=r;for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<=o){if(i.insertInner(e,t,r),i.lines&&i.lines.length>50){for(var l=i.lines.length%25+25,s=l;s<i.lines.length;){var a=new ho(i.lines.slice(s,s+=25));i.height-=a.height,this.children.splice(++n,0,a),a.parent=this}i.lines=i.lines.slice(0,l),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=new fo(e.children.splice(e.children.length-5,5));if(e.parent){e.size-=t.size,e.height-=t.height;var r=B(e.parent.children,e);e.parent.children.splice(r+1,0,t)}else{var n=new fo(e.children);n.parent=e,e.children=[n,t],e=n}t.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<o){var l=Math.min(t,o-e);if(i.iterN(e,l,r))return!0;if(0==(t-=l))break;e=0}else e-=o}}};var po=function(e,t,r){if(r)for(var n in r)r.hasOwnProperty(n)&&(this[n]=r[n]);this.doc=e,this.node=t};function go(e,t,r){je(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Cn(e,r)}po.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,r=this.line,n=he(r);if(null!=n&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(r.widgets=null);var o=mr(this);ce(r,Math.max(0,r.height-o)),e&&(Kn(e,function(){go(e,r,-o),qn(e,n,\"widget\")}),or(e,\"lineWidgetCleared\",e,this,n))}},po.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=mr(this)-t;i&&(ce(n,n.height+i),r&&Kn(r,function(){r.curOp.forceUpdate=!0,go(r,n,i),or(r,\"lineWidgetChanged\",r,e,he(n))}))},lt(po);var vo=0,mo=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++vo};function yo(e,t,r,n,i){if(n&&n.shared)return function(e,t,r,n,i){(n=z(n)).shared=!1;var o=[yo(e,t,r,n,i)],l=o[0],s=n.widgetNode;return Ti(e,function(e){s&&(n.widgetNode=s.cloneNode(!0)),o.push(yo(e,Ce(e,t),Ce(e,r),n,i));for(var a=0;a<e.linked.length;++a)if(e.linked[a].isParent)return;l=q(o)}),new bo(o,l)}(e,t,r,n,i);if(e.cm&&!e.cm.curOp)return jn(e.cm,yo)(e,t,r,n,i);var o=new mo(e,i),l=ve(t,r);if(n&&z(n,o,!1),l>0||0==l&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=A(\"span\",[o.replacedWith],\"CodeMirror-widget\"),n.handleMouseEvents||o.widgetNode.setAttribute(\"cm-ignore-events\",\"true\"),n.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Re(e,t.line,t,r,o)||t.line!=r.line&&Re(e,r.line,t,r,o))throw new Error(\"Inserting collapsed marker partially overlapping an existing one\");ke=!0}o.addToHistory&&Wi(e,{from:t,to:r,origin:\"markText\"},e.sel,NaN);var s,a=t.line,u=e.cm;if(e.iter(a,r.line+1,function(e){var n,i;u&&o.collapsed&&!u.options.lineWrapping&&Be(e)==u.display.maxLine&&(s=!0),o.collapsed&&a!=t.line&&ce(e,0),n=e,i=new Te(o,a==t.line?t.ch:null,a==r.line?r.ch:null),n.markedSpans=n.markedSpans?n.markedSpans.concat([i]):[i],i.marker.attachLine(n),++a}),o.collapsed&&e.iter(t.line,r.line+1,function(t){Ve(e,t)&&ce(t,0)}),o.clearOnEnter&&Je(o,\"beforeCursorEnter\",function(){return o.clear()}),o.readOnly&&(Le=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++vo,o.atomic=!0),u){if(s&&(u.curOp.updateMaxLine=!0),o.collapsed)_n(u,t.line,r.line+1);else if(o.className||o.title||o.startStyle||o.endStyle||o.css)for(var c=t.line;c<=r.line;c++)qn(u,c,\"text\");o.atomic&&_i(u.doc),or(u,\"markerAdded\",u,o)}return o}mo.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,r=t&&!t.curOp;if(r&&In(t),ot(this,\"clear\")){var n=this.find();n&&or(this,\"clear\",n.from,n.to)}for(var i=null,o=null,l=0;l<this.lines.length;++l){var s=e.lines[l],a=Me(s.markedSpans,e);t&&!e.collapsed?qn(t,he(s),\"text\"):t&&(null!=a.to&&(o=he(s)),null!=a.from&&(i=he(s))),s.markedSpans=Ne(s.markedSpans,a),null==a.from&&e.collapsed&&!Ve(e.doc,s)&&t&&ce(s,Zr(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var u=0;u<this.lines.length;++u){var c=Be(e.lines[u]),h=Xe(c);h>t.display.maxLineLength&&(t.display.maxLine=c,t.display.maxLineLength=h,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&_n(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&_i(t.doc)),t&&or(t,\"markerCleared\",t,this,i,o),r&&Rn(t),this.parent&&this.parent.clear()}},mo.prototype.find=function(e,t){var r,n;null==e&&\"bookmark\"==this.type&&(e=1);for(var i=0;i<this.lines.length;++i){var o=this.lines[i],l=Me(o.markedSpans,this);if(null!=l.from&&(r=ge(t?o:he(o),l.from),-1==e))return r;if(null!=l.to&&(n=ge(t?o:he(o),l.to),1==e))return n}return r&&{from:r,to:n}},mo.prototype.changed=function(){var e=this,t=this.find(-1,!0),r=this,n=this.doc.cm;t&&n&&Kn(n,function(){var i=t.line,o=he(t.line),l=Mr(n,o);if(l&&(Fr(l),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!Ve(r.doc,i)&&null!=r.height){var s=r.height;r.height=null;var a=mr(r)-s;a&&ce(i,i.height+a)}or(n,\"markerChanged\",n,e)})},mo.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=B(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},mo.prototype.detachLine=function(e){if(this.lines.splice(B(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},lt(mo);var bo=function(e,t){this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=this};function wo(e){return e.findMarks(ge(e.first,0),e.clipPos(ge(e.lastLine())),function(e){return e.parent})}function xo(e){for(var t=function(t){var r=e[t],n=[r.primary.doc];Ti(r.primary.doc,function(e){return n.push(e)});for(var i=0;i<r.markers.length;i++){var o=r.markers[i];-1==B(n,o.doc)&&(o.parent=null,r.markers.splice(i--,1))}},r=0;r<e.length;r++)t(r)}bo.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();or(this,\"clear\")}},bo.prototype.find=function(e,t){return this.primary.find(e,t)},lt(bo);var Co=0,So=function(e,t,r,n,i){if(!(this instanceof So))return new So(e,t,r,n,i);null==r&&(r=0),fo.call(this,[new ho([new jt(\"\",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=r;var o=ge(r,0);this.sel=mi(o),this.history=new Oi(null),this.id=++Co,this.modeOption=t,this.lineSep=n,this.direction=\"rtl\"==i?\"rtl\":\"ltr\",this.extend=!1,\"string\"==typeof e&&(e=this.splitLines(e)),ki(this,{from:o,to:o,text:e}),ji(this,mi(o),V)};So.prototype=Q(fo.prototype,{constructor:So,iter:function(e,t,r){r?this.iterN(e-this.first,t-e,r):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var r=0,n=0;n<t.length;++n)r+=t[n].height;this.insertInner(e-this.first,t,r)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=ue(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:Yn(function(e){var t=ge(this.first,0),r=this.first+this.size-1;to(this,{from:t,to:ge(r,se(this,r).text.length),text:this.splitLines(e),origin:\"setValue\",full:!0},!0),this.cm&&Ln(this.cm,0,0),ji(this,mi(t),V)}),replaceRange:function(e,t,r,n){lo(this,e,t=Ce(this,t),r=r?Ce(this,r):t,n)},getRange:function(e,t,r){var n=ae(this,Ce(this,e),Ce(this,t));return!1===r?n:n.join(r||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(de(this,e))return se(this,e)},getLineNumber:function(e){return he(e)},getLineHandleVisualStart:function(e){return\"number\"==typeof e&&(e=se(this,e)),Be(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return Ce(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||\"head\"==e?t.head:\"anchor\"==e?t.anchor:\"end\"==e||\"to\"==e||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:Yn(function(e,t,r){Vi(this,Ce(this,\"number\"==typeof e?ge(e,t||0):e),null,r)}),setSelection:Yn(function(e,t,r){Vi(this,Ce(this,e),Ce(this,t||e),r)}),extendSelection:Yn(function(e,t,r){Bi(this,Ce(this,e),t&&Ce(this,t),r)}),extendSelections:Yn(function(e,t){Gi(this,Se(this,e),t)}),extendSelectionsBy:Yn(function(e,t){Gi(this,Se(this,$(this.sel.ranges,e)),t)}),setSelections:Yn(function(e,t,r){if(e.length){for(var n=[],i=0;i<e.length;i++)n[i]=new gi(Ce(this,e[i].anchor),Ce(this,e[i].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),ji(this,vi(n,t),r)}}),addSelection:Yn(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new gi(Ce(this,e),Ce(this,t||e))),ji(this,vi(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this.sel.ranges,n=0;n<r.length;n++){var i=ae(this,r[n].from(),r[n].to());t=t?t.concat(i):i}return!1===e?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],r=this.sel.ranges,n=0;n<r.length;n++){var i=ae(this,r[n].from(),r[n].to());!1!==e&&(i=i.join(e||this.lineSeparator())),t[n]=i}return t},replaceSelection:function(e,t,r){for(var n=[],i=0;i<this.sel.ranges.length;i++)n[i]=e;this.replaceSelections(n,t,r||\"+input\")},replaceSelections:Yn(function(e,t,r){for(var n=[],i=this.sel,o=0;o<i.ranges.length;o++){var l=i.ranges[o];n[o]={from:l.from(),to:l.to(),text:this.splitLines(e[o]),origin:r}}for(var s=t&&\"end\"!=t&&function(e,t,r){for(var n=[],i=ge(e.first,0),o=i,l=0;l<t.length;l++){var s=t[l],a=xi(s.from,i,o),u=xi(yi(s),i,o);if(i=s.to,o=u,\"around\"==r){var c=e.sel.ranges[l],h=ve(c.head,c.anchor)<0;n[l]=new gi(h?u:a,h?a:u)}else n[l]=new gi(a,a)}return new pi(n,e.sel.primIndex)}(this,n,t),a=n.length-1;a>=0;a--)to(this,n[a]);s?Ki(this,s):this.cm&&Sn(this.cm)}),undo:Yn(function(){no(this,\"undo\")}),redo:Yn(function(){no(this,\"redo\")}),undoSelection:Yn(function(){no(this,\"undo\",!0)}),redoSelection:Yn(function(){no(this,\"redo\",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n<e.done.length;n++)e.done[n].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++r;return{undo:t,redo:r}},clearHistory:function(){this.history=new Oi(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:Ii(this.history.done),undone:Ii(this.history.undone)}},setHistory:function(e){var t=this.history=new Oi(this.history.maxGeneration);t.done=Ii(e.done.slice(0),null,!0),t.undone=Ii(e.undone.slice(0),null,!0)},setGutterMarker:Yn(function(e,t,r){return co(this,e,\"gutter\",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&re(n)&&(e.gutterMarkers=null),!0})}),clearGutter:Yn(function(e){var t=this;this.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&co(t,r,\"gutter\",function(){return r.gutterMarkers[e]=null,re(r.gutterMarkers)&&(r.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if(\"number\"==typeof e){if(!de(this,e))return null;if(t=e,!(e=se(this,e)))return null}else if(null==(t=he(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:Yn(function(e,t,r){return co(this,e,\"gutter\"==t?\"gutter\":\"class\",function(e){var n=\"text\"==t?\"textClass\":\"background\"==t?\"bgClass\":\"gutter\"==t?\"gutterClass\":\"wrapClass\";if(e[n]){if(L(r).test(e[n]))return!1;e[n]+=\" \"+r}else e[n]=r;return!0})}),removeLineClass:Yn(function(e,t,r){return co(this,e,\"gutter\"==t?\"gutter\":\"class\",function(e){var n=\"text\"==t?\"textClass\":\"background\"==t?\"bgClass\":\"gutter\"==t?\"gutterClass\":\"wrapClass\",i=e[n];if(!i)return!1;if(null==r)e[n]=null;else{var o=i.match(L(r));if(!o)return!1;var l=o.index+o[0].length;e[n]=i.slice(0,o.index)+(o.index&&l!=i.length?\" \":\"\")+i.slice(l)||null}return!0})}),addLineWidget:Yn(function(e,t,r){return i=e,o=new po(n=this,t,r),(l=n.cm)&&o.noHScroll&&(l.display.alignWidgets=!0),co(n,i,\"widget\",function(e){var t=e.widgets||(e.widgets=[]);if(null==o.insertAt?t.push(o):t.splice(Math.min(t.length-1,Math.max(0,o.insertAt)),0,o),o.line=e,l&&!Ve(n,e)){var r=je(e)<n.scrollTop;ce(e,e.height+mr(o)),r&&Cn(l,o.height),l.curOp.forceUpdate=!0}return!0}),l&&or(l,\"lineWidgetAdded\",l,o,\"number\"==typeof i?i:he(i)),o;var n,i,o,l}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return yo(this,Ce(this,e),Ce(this,t),r,r&&r.type||\"range\")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return yo(this,e=Ce(this,e),e,r,\"bookmark\")},findMarksAt:function(e){var t=[],r=se(this,(e=Ce(this,e)).line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=Ce(this,e),t=Ce(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var l=o.markedSpans;if(l)for(var s=0;s<l.length;s++){var a=l[s];null!=a.to&&i==e.line&&e.ch>=a.to||null==a.from&&i!=e.line||null!=a.from&&i==t.line&&a.from>=t.ch||r&&!r(a.marker)||n.push(a.marker.parent||a.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;n<r.length;++n)null!=r[n].from&&e.push(r[n].marker)}),e},posFromIndex:function(e){var t,r=this.first,n=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+n;if(o>e)return t=e,!0;e-=o,++r}),Ce(this,ge(r,t))},indexFromPos:function(e){var t=(e=Ce(this,e)).ch;if(e.line<this.first||e.ch<0)return 0;var r=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+r}),t},copy:function(e){var t=new So(ue(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,r=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<r&&(r=e.to);var n=new So(ue(this,t,r),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(n.history=this.history),(this.linked||(this.linked=[])).push({doc:n,sharedHist:e.sharedHist}),n.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r],i=n.find(),o=e.clipPos(i.from),l=e.clipPos(i.to);if(ve(o,l)){var s=yo(e,o,l,n.primary,n.primary.type);n.markers.push(s),s.parent=n}}}(n,wo(this)),n},unlinkDoc:function(e){if(e instanceof wl&&(e=e.doc),this.linked)for(var t=0;t<this.linked.length;++t){if(this.linked[t].doc==e){this.linked.splice(t,1),e.unlinkDoc(this),xo(wo(this));break}}if(e.history==this.history){var r=[e.id];Ti(e,function(e){return r.push(e.id)},!0),e.history=new Oi(null),e.history.done=Ii(this.history.done,r),e.history.undone=Ii(this.history.undone,r)}},iterLinkedDocs:function(e){Ti(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):bt(e)},lineSeparator:function(){return this.lineSep||\"\\n\"},setDirection:Yn(function(e){var t;(\"rtl\"!=e&&(e=\"ltr\"),e!=this.direction)&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Kn(t=this.cm,function(){Ni(t),_n(t)}))})}),So.prototype.eachLine=So.prototype.iter;var Lo=0;function ko(e){var t=this;if(To(t),!nt(t,e)&&!yr(t.display,e)){st(e),l&&(Lo=+new Date);var r=nn(t,e,!0),n=e.dataTransfer.files;if(r&&!t.isReadOnly())if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),s=0,a=function(e,n){if(!t.options.allowDropFileTypes||-1!=B(t.options.allowDropFileTypes,e.type)){var l=new FileReader;l.onload=jn(t,function(){var e=l.result;if(/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(e)&&(e=\"\"),o[n]=e,++s==i){var a={from:r=Ce(t.doc,r),to:r,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:\"paste\"};to(t.doc,a),Ki(t.doc,mi(r,yi(a)))}}),l.readAsText(e)}},u=0;u<i;++u)a(n[u],u);else{if(t.state.draggingText&&t.doc.sel.contains(r)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var c=e.dataTransfer.getData(\"Text\");if(c){var h;if(t.state.draggingText&&!t.state.draggingText.copy&&(h=t.listSelections()),Xi(t.doc,mi(r,r)),h)for(var f=0;f<h.length;++f)lo(t.doc,\"\",h[f].anchor,h[f].head,\"drag\");t.replaceSelection(c,\"around\",\"paste\"),t.display.input.focus()}}catch(e){}}}}function To(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Mo(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName(\"CodeMirror\"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}var No=!1;function Oo(){var e;No||(Je(window,\"resize\",function(){null==e&&(e=setTimeout(function(){e=null,Mo(Ao)},100))}),Je(window,\"blur\",function(){return Mo(gn)}),No=!0)}function Ao(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}for(var Do={3:\"Pause\",8:\"Backspace\",9:\"Tab\",13:\"Enter\",16:\"Shift\",17:\"Ctrl\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Esc\",32:\"Space\",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"PrintScrn\",45:\"Insert\",46:\"Delete\",59:\";\",61:\"=\",91:\"Mod\",92:\"Mod\",93:\"Mod\",106:\"*\",107:\"=\",109:\"-\",110:\".\",111:\"/\",127:\"Delete\",145:\"ScrollLock\",173:\"-\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\",63232:\"Up\",63233:\"Down\",63234:\"Left\",63235:\"Right\",63272:\"Delete\",63273:\"Home\",63275:\"End\",63276:\"PageUp\",63277:\"PageDown\",63302:\"Insert\"},Wo=0;Wo<10;Wo++)Do[Wo+48]=Do[Wo+96]=String(Wo);for(var Ho=65;Ho<=90;Ho++)Do[Ho]=String.fromCharCode(Ho);for(var Fo=1;Fo<=12;Fo++)Do[Fo+111]=Do[Fo+63235]=\"F\"+Fo;var Po={};function Eo(e){var t,r,n,i,o=e.split(/-(?!$)/);e=o[o.length-1];for(var l=0;l<o.length-1;l++){var s=o[l];if(/^(cmd|meta|m)$/i.test(s))i=!0;else if(/^a(lt)?$/i.test(s))t=!0;else if(/^(c|ctrl|control)$/i.test(s))r=!0;else{if(!/^s(hift)?$/i.test(s))throw new Error(\"Unrecognized modifier name: \"+s);n=!0}}return t&&(e=\"Alt-\"+e),r&&(e=\"Ctrl-\"+e),i&&(e=\"Cmd-\"+e),n&&(e=\"Shift-\"+e),e}function zo(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if(\"...\"==n){delete e[r];continue}for(var i=$(r.split(\" \"),Eo),o=0;o<i.length;o++){var l=void 0,s=void 0;o==i.length-1?(s=i.join(\" \"),l=n):(s=i.slice(0,o+1).join(\" \"),l=\"...\");var a=t[s];if(a){if(a!=l)throw new Error(\"Inconsistent bindings for \"+s)}else t[s]=l}delete e[r]}for(var u in t)e[u]=t[u];return e}function Io(e,t,r,n){var i=(t=Uo(t)).call?t.call(e,n):t[e];if(!1===i)return\"nothing\";if(\"...\"===i)return\"multi\";if(null!=i&&r(i))return\"handled\";if(t.fallthrough){if(\"[object Array]\"!=Object.prototype.toString.call(t.fallthrough))return Io(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var l=Io(e,t.fallthrough[o],r,n);if(l)return l}}}function Ro(e){var t=\"string\"==typeof e?e:Do[e.keyCode];return\"Ctrl\"==t||\"Alt\"==t||\"Shift\"==t||\"Mod\"==t}function Bo(e,t,r){var n=e;return t.altKey&&\"Alt\"!=n&&(e=\"Alt-\"+e),(C?t.metaKey:t.ctrlKey)&&\"Ctrl\"!=n&&(e=\"Ctrl-\"+e),(C?t.ctrlKey:t.metaKey)&&\"Cmd\"!=n&&(e=\"Cmd-\"+e),!r&&t.shiftKey&&\"Shift\"!=n&&(e=\"Shift-\"+e),e}function Go(e,t){if(h&&34==e.keyCode&&e.char)return!1;var r=Do[e.keyCode];return null!=r&&!e.altGraphKey&&(3==e.keyCode&&e.code&&(r=e.code),Bo(r,e,t))}function Uo(e){return\"string\"==typeof e?Po[e]:e}function Vo(e,t){for(var r=e.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=t(r[i]);n.length&&ve(o.from,q(n).to)<=0;){var l=n.pop();if(ve(l.from,o.from)<0){o.from=l.from;break}}n.push(o)}Kn(e,function(){for(var t=n.length-1;t>=0;t--)lo(e.doc,\"\",n[t].from,n[t].to,\"+delete\");Sn(e)})}function Ko(e,t,r){var n=oe(e.text,t+r,r);return n<0||n>e.text.length?null:n}function jo(e,t,r){var n=Ko(e,t.ch,r);return null==n?null:new ge(t.line,n,r<0?\"after\":\"before\")}function Xo(e,t,r,n,i){if(e){var o=Ze(r,t.doc.direction);if(o){var l,s=i<0?q(o):o[0],a=i<0==(1==s.level)?\"after\":\"before\";if(s.level>0||\"rtl\"==t.doc.direction){var u=Nr(t,r);l=i<0?r.text.length-1:0;var c=Or(t,u,l).top;l=le(function(e){return Or(t,u,e).top==c},i<0==(1==s.level)?s.from:s.to-1,l),\"before\"==a&&(l=Ko(r,l,1))}else l=i<0?s.to:s.from;return new ge(n,l,a)}}return new ge(n,i<0?r.text.length:0,i<0?\"before\":\"after\")}Po.basic={Left:\"goCharLeft\",Right:\"goCharRight\",Up:\"goLineUp\",Down:\"goLineDown\",End:\"goLineEnd\",Home:\"goLineStartSmart\",PageUp:\"goPageUp\",PageDown:\"goPageDown\",Delete:\"delCharAfter\",Backspace:\"delCharBefore\",\"Shift-Backspace\":\"delCharBefore\",Tab:\"defaultTab\",\"Shift-Tab\":\"indentAuto\",Enter:\"newlineAndIndent\",Insert:\"toggleOverwrite\",Esc:\"singleSelection\"},Po.pcDefault={\"Ctrl-A\":\"selectAll\",\"Ctrl-D\":\"deleteLine\",\"Ctrl-Z\":\"undo\",\"Shift-Ctrl-Z\":\"redo\",\"Ctrl-Y\":\"redo\",\"Ctrl-Home\":\"goDocStart\",\"Ctrl-End\":\"goDocEnd\",\"Ctrl-Up\":\"goLineUp\",\"Ctrl-Down\":\"goLineDown\",\"Ctrl-Left\":\"goGroupLeft\",\"Ctrl-Right\":\"goGroupRight\",\"Alt-Left\":\"goLineStart\",\"Alt-Right\":\"goLineEnd\",\"Ctrl-Backspace\":\"delGroupBefore\",\"Ctrl-Delete\":\"delGroupAfter\",\"Ctrl-S\":\"save\",\"Ctrl-F\":\"find\",\"Ctrl-G\":\"findNext\",\"Shift-Ctrl-G\":\"findPrev\",\"Shift-Ctrl-F\":\"replace\",\"Shift-Ctrl-R\":\"replaceAll\",\"Ctrl-[\":\"indentLess\",\"Ctrl-]\":\"indentMore\",\"Ctrl-U\":\"undoSelection\",\"Shift-Ctrl-U\":\"redoSelection\",\"Alt-U\":\"redoSelection\",fallthrough:\"basic\"},Po.emacsy={\"Ctrl-F\":\"goCharRight\",\"Ctrl-B\":\"goCharLeft\",\"Ctrl-P\":\"goLineUp\",\"Ctrl-N\":\"goLineDown\",\"Alt-F\":\"goWordRight\",\"Alt-B\":\"goWordLeft\",\"Ctrl-A\":\"goLineStart\",\"Ctrl-E\":\"goLineEnd\",\"Ctrl-V\":\"goPageDown\",\"Shift-Ctrl-V\":\"goPageUp\",\"Ctrl-D\":\"delCharAfter\",\"Ctrl-H\":\"delCharBefore\",\"Alt-D\":\"delWordAfter\",\"Alt-Backspace\":\"delWordBefore\",\"Ctrl-K\":\"killLine\",\"Ctrl-T\":\"transposeChars\",\"Ctrl-O\":\"openLine\"},Po.macDefault={\"Cmd-A\":\"selectAll\",\"Cmd-D\":\"deleteLine\",\"Cmd-Z\":\"undo\",\"Shift-Cmd-Z\":\"redo\",\"Cmd-Y\":\"redo\",\"Cmd-Home\":\"goDocStart\",\"Cmd-Up\":\"goDocStart\",\"Cmd-End\":\"goDocEnd\",\"Cmd-Down\":\"goDocEnd\",\"Alt-Left\":\"goGroupLeft\",\"Alt-Right\":\"goGroupRight\",\"Cmd-Left\":\"goLineLeft\",\"Cmd-Right\":\"goLineRight\",\"Alt-Backspace\":\"delGroupBefore\",\"Ctrl-Alt-Backspace\":\"delGroupAfter\",\"Alt-Delete\":\"delGroupAfter\",\"Cmd-S\":\"save\",\"Cmd-F\":\"find\",\"Cmd-G\":\"findNext\",\"Shift-Cmd-G\":\"findPrev\",\"Cmd-Alt-F\":\"replace\",\"Shift-Cmd-Alt-F\":\"replaceAll\",\"Cmd-[\":\"indentLess\",\"Cmd-]\":\"indentMore\",\"Cmd-Backspace\":\"delWrappedLineLeft\",\"Cmd-Delete\":\"delWrappedLineRight\",\"Cmd-U\":\"undoSelection\",\"Shift-Cmd-U\":\"redoSelection\",\"Ctrl-Up\":\"goDocStart\",\"Ctrl-Down\":\"goDocEnd\",fallthrough:[\"basic\",\"emacsy\"]},Po.default=y?Po.macDefault:Po.pcDefault;var Yo={selectAll:Ji,singleSelection:function(e){return e.setSelection(e.getCursor(\"anchor\"),e.getCursor(\"head\"),V)},killLine:function(e){return Vo(e,function(t){if(t.empty()){var r=se(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line<e.lastLine()?{from:t.head,to:ge(t.head.line+1,0)}:{from:t.head,to:ge(t.head.line,r)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return Vo(e,function(t){return{from:ge(t.from().line,0),to:Ce(e.doc,ge(t.to().line+1,0))}})},delLineLeft:function(e){return Vo(e,function(e){return{from:ge(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return Vo(e,function(t){var r=e.charCoords(t.head,\"div\").top+5;return{from:e.coordsChar({left:0,top:r},\"div\"),to:t.from()}})},delWrappedLineRight:function(e){return Vo(e,function(t){var r=e.charCoords(t.head,\"div\").top+5,n=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},\"div\");return{from:t.from(),to:n}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(ge(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(ge(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return _o(e,t.head.line)},{origin:\"+move\",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return qo(e,t.head)},{origin:\"+move\",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return function(e,t){var r=se(e.doc,t),n=function(e){for(var t;t=Ie(e);)e=t.find(1,!0).line;return e}(r);n!=r&&(t=he(n));return Xo(!0,e,r,t,-1)}(e,t.head.line)},{origin:\"+move\",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,\"div\").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},\"div\")},j)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,\"div\").top+5;return e.coordsChar({left:0,top:r},\"div\")},j)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,\"div\").top+5,n=e.coordsChar({left:0,top:r},\"div\");return n.ch<e.getLine(n.line).search(/\\S/)?qo(e,t.head):n},j)},goLineUp:function(e){return e.moveV(-1,\"line\")},goLineDown:function(e){return e.moveV(1,\"line\")},goPageUp:function(e){return e.moveV(-1,\"page\")},goPageDown:function(e){return e.moveV(1,\"page\")},goCharLeft:function(e){return e.moveH(-1,\"char\")},goCharRight:function(e){return e.moveH(1,\"char\")},goColumnLeft:function(e){return e.moveH(-1,\"column\")},goColumnRight:function(e){return e.moveH(1,\"column\")},goWordLeft:function(e){return e.moveH(-1,\"word\")},goGroupRight:function(e){return e.moveH(1,\"group\")},goGroupLeft:function(e){return e.moveH(-1,\"group\")},goWordRight:function(e){return e.moveH(1,\"word\")},delCharBefore:function(e){return e.deleteH(-1,\"char\")},delCharAfter:function(e){return e.deleteH(1,\"char\")},delWordBefore:function(e){return e.deleteH(-1,\"word\")},delWordAfter:function(e){return e.deleteH(1,\"word\")},delGroupBefore:function(e){return e.deleteH(-1,\"group\")},delGroupAfter:function(e){return e.deleteH(1,\"group\")},indentAuto:function(e){return e.indentSelection(\"smart\")},indentMore:function(e){return e.indentSelection(\"add\")},indentLess:function(e){return e.indentSelection(\"subtract\")},insertTab:function(e){return e.replaceSelection(\"\\t\")},insertSoftTab:function(e){for(var t=[],r=e.listSelections(),n=e.options.tabSize,i=0;i<r.length;i++){var o=r[i].from(),l=I(e.getLine(o.line),o.ch,n);t.push(_(n-l%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection(\"add\"):e.execCommand(\"insertTab\")},transposeChars:function(e){return Kn(e,function(){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)if(t[n].empty()){var i=t[n].head,o=se(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new ge(i.line,i.ch-1)),i.ch>0)i=new ge(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),ge(i.line,i.ch-2),i,\"+transpose\");else if(i.line>e.doc.first){var l=se(e.doc,i.line-1).text;l&&(i=new ge(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),ge(i.line-1,l.length-1),i,\"+transpose\"))}r.push(new gi(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return Kn(e,function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,\"+input\");t=e.listSelections();for(var n=0;n<t.length;n++)e.indentLine(t[n].from().line,null,!0);Sn(e)})},openLine:function(e){return e.replaceSelection(\"\\n\",\"start\")},toggleOverwrite:function(e){return e.toggleOverwrite()}};function _o(e,t){var r=se(e.doc,t),n=Be(r);return n!=r&&(t=he(n)),Xo(!0,e,n,t,1)}function qo(e,t){var r=_o(e,t.line),n=se(e.doc,r.line),i=Ze(n,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,n.text.search(/\\S/)),l=t.line==r.line&&t.ch<=o&&t.ch;return ge(r.line,l?0:o,r.sticky)}return r}function $o(e,t,r){if(\"string\"==typeof t&&!(t=Yo[t]))return!1;e.display.input.ensurePolled();var n=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r&&(e.display.shift=!1),i=t(e)!=U}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}var Zo=new R;function Qo(e,t,r,n){var i=e.state.keySeq;if(i){if(Ro(t))return\"handled\";if(/\\'$/.test(t)?e.state.keySeq=null:Zo.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),Jo(e,i+\" \"+t,r,n))return!0}return Jo(e,t,r,n)}function Jo(e,t,r,n){var i=function(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=Io(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&Io(t,e.options.extraKeys,r,e)||Io(t,e.options.keyMap,r,e)}(e,t,n);return\"multi\"==i&&(e.state.keySeq=t),\"handled\"==i&&or(e,\"keyHandled\",e,t,r),\"handled\"!=i&&\"multi\"!=i||(st(r),hn(e)),!!i}function el(e,t){var r=Go(t,!0);return!!r&&(t.shiftKey&&!e.state.keySeq?Qo(e,\"Shift-\"+r,t,function(t){return $o(e,t,!0)})||Qo(e,r,t,function(t){if(\"string\"==typeof t?/^go[A-Z]/.test(t):t.motion)return $o(e,t)}):Qo(e,r,t,function(t){return $o(e,t)}))}var tl=null;function rl(e){var t=this;if(t.curOp.focus=W(),!nt(t,e)){l&&s<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var n=el(t,e);h&&(tl=n?r:null,!n&&88==r&&!xt&&(y?e.metaKey:e.ctrlKey)&&t.replaceSelection(\"\",null,\"cut\")),18!=r||/\\bCodeMirror-crosshair\\b/.test(t.display.lineDiv.className)||function(e){var t=e.display.lineDiv;function r(e){18!=e.keyCode&&e.altKey||(T(t,\"CodeMirror-crosshair\"),tt(document,\"keyup\",r),tt(document,\"mouseover\",r))}H(t,\"CodeMirror-crosshair\"),Je(document,\"keyup\",r),Je(document,\"mouseover\",r)}(t)}}function nl(e){16==e.keyCode&&(this.doc.sel.shift=!1),nt(this,e)}function il(e){var t=this;if(!(yr(t.display,e)||nt(t,e)||e.ctrlKey&&!e.altKey||y&&e.metaKey)){var r=e.keyCode,n=e.charCode;if(h&&r==tl)return tl=null,void st(e);if(!h||e.which&&!(e.which<10)||!el(t,e)){var i,o=String.fromCharCode(null==n?r:n);if(\"\\b\"!=o)if(!Qo(i=t,\"'\"+o+\"'\",e,function(e){return $o(i,e,!0)}))t.display.input.onKeyPress(e)}}}var ol,ll,sl=function(e,t,r){this.time=e,this.pos=t,this.button=r};function al(e){var t=this,r=t.display;if(!(nt(t,e)||r.activeTouch&&r.input.supportsTouch()))if(r.input.ensurePolled(),r.shift=e.shiftKey,yr(r,e))a||(r.scroller.draggable=!1,setTimeout(function(){return r.scroller.draggable=!0},100));else if(!hl(t,e)){var n,i,o,u=nn(t,e),c=ft(e),h=u?(n=u,i=c,o=+new Date,ll&&ll.compare(o,n,i)?(ol=ll=null,\"triple\"):ol&&ol.compare(o,n,i)?(ll=new sl(o,n,i),ol=null,\"double\"):(ol=new sl(o,n,i),ll=null,\"single\")):\"single\";window.focus(),1==c&&t.state.selectingText&&t.state.selectingText(e),u&&function(e,t,r,n,i){var o=\"Click\";\"double\"==n?o=\"Double\"+o:\"triple\"==n&&(o=\"Triple\"+o);return Qo(e,Bo(o=(1==t?\"Left\":2==t?\"Middle\":\"Right\")+o,i),i,function(t){if(\"string\"==typeof t&&(t=Yo[t]),!t)return!1;var n=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n=t(e,r)!=U}finally{e.state.suppressEdits=!1}return n})}(t,c,u,h,e)||(1==c?u?function(e,t,r,n){l?setTimeout(E(fn,e),0):e.curOp.focus=W();var i,o=function(e,t,r){var n=e.getOption(\"configureMouse\"),i=n?n(e,t,r):{};if(null==i.unit){var o=b?r.shiftKey&&r.metaKey:r.altKey;i.unit=o?\"rectangle\":\"single\"==t?\"char\":\"double\"==t?\"word\":\"line\"}(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||r.shiftKey);null==i.addNew&&(i.addNew=y?r.metaKey:r.ctrlKey);null==i.moveOnDrag&&(i.moveOnDrag=!(y?r.altKey:r.ctrlKey));return i}(e,r,n),u=e.doc.sel;e.options.dragDrop&>&&!e.isReadOnly()&&\"single\"==r&&(i=u.contains(t))>-1&&(ve((i=u.ranges[i]).from(),t)<0||t.xRel>0)&&(ve(i.to(),t)>0||t.xRel<0)?function(e,t,r,n){var i=e.display,o=!1,u=jn(e,function(t){a&&(i.scroller.draggable=!1),e.state.draggingText=!1,tt(i.wrapper.ownerDocument,\"mouseup\",u),tt(i.wrapper.ownerDocument,\"mousemove\",c),tt(i.scroller,\"dragstart\",h),tt(i.scroller,\"drop\",u),o||(st(t),n.addNew||Bi(e.doc,r,null,null,n.extend),a||l&&9==s?setTimeout(function(){i.wrapper.ownerDocument.body.focus(),i.input.focus()},20):i.input.focus())}),c=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},h=function(){return o=!0};a&&(i.scroller.draggable=!0);e.state.draggingText=u,u.copy=!n.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop();Je(i.wrapper.ownerDocument,\"mouseup\",u),Je(i.wrapper.ownerDocument,\"mousemove\",c),Je(i.scroller,\"dragstart\",h),Je(i.scroller,\"drop\",u),dn(e),setTimeout(function(){return i.input.focus()},20)}(e,n,t,o):function(e,t,r,n){var i=e.display,o=e.doc;st(t);var l,s,a=o.sel,u=a.ranges;n.addNew&&!n.extend?(s=o.sel.contains(r),l=s>-1?u[s]:new gi(r,r)):(l=o.sel.primary(),s=o.sel.primIndex);if(\"rectangle\"==n.unit)n.addNew||(l=new gi(r,r)),r=nn(e,t,!0,!0),s=-1;else{var c=ul(e,r,n.unit);l=n.extend?Ri(l,c.anchor,c.head,n.extend):c}n.addNew?-1==s?(s=u.length,ji(o,vi(u.concat([l]),s),{scroll:!1,origin:\"*mouse\"})):u.length>1&&u[s].empty()&&\"char\"==n.unit&&!n.extend?(ji(o,vi(u.slice(0,s).concat(u.slice(s+1)),0),{scroll:!1,origin:\"*mouse\"}),a=o.sel):Ui(o,s,l,K):(s=0,ji(o,new pi([l],0),K),a=o.sel);var h=r;function f(t){if(0!=ve(h,t))if(h=t,\"rectangle\"==n.unit){for(var i=[],u=e.options.tabSize,c=I(se(o,r.line).text,r.ch,u),f=I(se(o,t.line).text,t.ch,u),d=Math.min(c,f),p=Math.max(c,f),g=Math.min(r.line,t.line),v=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=v;g++){var m=se(o,g).text,y=X(m,d,u);d==p?i.push(new gi(ge(g,y),ge(g,y))):m.length>y&&i.push(new gi(ge(g,y),ge(g,X(m,p,u))))}i.length||i.push(new gi(r,r)),ji(o,vi(a.ranges.slice(0,s).concat(i),s),{origin:\"*mouse\",scroll:!1}),e.scrollIntoView(t)}else{var b,w=l,x=ul(e,t,n.unit),C=w.anchor;ve(x.anchor,C)>0?(b=x.head,C=we(w.from(),x.anchor)):(b=x.anchor,C=be(w.to(),x.head));var S=a.ranges.slice(0);S[s]=function(e,t){var r=t.anchor,n=t.head,i=se(e.doc,r.line);if(0==ve(r,n)&&r.sticky==n.sticky)return t;var o=Ze(i);if(!o)return t;var l=qe(o,r.ch,r.sticky),s=o[l];if(s.from!=r.ch&&s.to!=r.ch)return t;var a,u=l+(s.from==r.ch==(1!=s.level)?0:1);if(0==u||u==o.length)return t;if(n.line!=r.line)a=(n.line-r.line)*(\"ltr\"==e.doc.direction?1:-1)>0;else{var c=qe(o,n.ch,n.sticky),h=c-l||(n.ch-r.ch)*(1==s.level?-1:1);a=c==u-1||c==u?h<0:h>0}var f=o[u+(a?-1:0)],d=a==(1==f.level),p=d?f.from:f.to,g=d?\"after\":\"before\";return r.ch==p&&r.sticky==g?t:new gi(new ge(r.line,p,g),n)}(e,new gi(Ce(o,C),b)),ji(o,vi(S,s),K)}}var d=i.wrapper.getBoundingClientRect(),p=0;function g(t){e.state.selectingText=!1,p=1/0,st(t),i.input.focus(),tt(i.wrapper.ownerDocument,\"mousemove\",v),tt(i.wrapper.ownerDocument,\"mouseup\",m),o.history.lastSelOrigin=null}var v=jn(e,function(t){ft(t)?function t(r){var l=++p;var s=nn(e,r,!0,\"rectangle\"==n.unit);if(!s)return;if(0!=ve(s,h)){e.curOp.focus=W(),f(s);var a=yn(i,o);(s.line>=a.to||s.line<a.from)&&setTimeout(jn(e,function(){p==l&&t(r)}),150)}else{var u=r.clientY<d.top?-20:r.clientY>d.bottom?20:0;u&&setTimeout(jn(e,function(){p==l&&(i.scroller.scrollTop+=u,t(r))}),50)}}(t):g(t)}),m=jn(e,g);e.state.selectingText=m,Je(i.wrapper.ownerDocument,\"mousemove\",v),Je(i.wrapper.ownerDocument,\"mouseup\",m)}(e,n,t,o)}(t,u,h,e):ht(e)==r.scroller&&st(e):2==c?(u&&Bi(t.doc,u),setTimeout(function(){return r.input.focus()},20)):3==c&&(S?fl(t,e):dn(t)))}}function ul(e,t,r){if(\"char\"==r)return new gi(t,t);if(\"word\"==r)return e.findWordAt(t);if(\"line\"==r)return new gi(ge(t.line,0),Ce(e.doc,ge(t.line+1,0)));var n=r(e,t);return new gi(n.from,n.to)}function cl(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&st(t);var l=e.display,s=l.lineDiv.getBoundingClientRect();if(o>s.bottom||!ot(e,r))return ut(t);o-=s.top-l.viewOffset;for(var a=0;a<e.options.gutters.length;++a){var u=l.gutters.childNodes[a];if(u&&u.getBoundingClientRect().right>=i)return rt(e,r,e,fe(e.doc,o),e.options.gutters[a],t),ut(t)}}function hl(e,t){return cl(e,t,\"gutterClick\",!0)}function fl(e,t){yr(e.display,t)||function(e,t){if(!ot(e,\"gutterContextMenu\"))return!1;return cl(e,t,\"gutterContextMenu\",!1)}(e,t)||nt(e,t,\"contextmenu\")||e.display.input.onContextMenu(t)}function dl(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\\s*cm-s-\\S+/g,\"\")+e.options.theme.replace(/(^|\\s)\\s*/g,\" cm-s-\"),Er(e)}sl.prototype.compare=function(e,t,r){return this.time+400>e&&0==ve(t,this.pos)&&r==this.button};var pl={toString:function(){return\"CodeMirror.Init\"}},gl={},vl={};function ml(e){si(e),_n(e),bn(e)}function yl(e,t,r){if(!t!=!(r&&r!=pl)){var n=e.display.dragFunctions,i=t?Je:tt;i(e.display.scroller,\"dragstart\",n.start),i(e.display.scroller,\"dragenter\",n.enter),i(e.display.scroller,\"dragover\",n.over),i(e.display.scroller,\"dragleave\",n.leave),i(e.display.scroller,\"drop\",n.drop)}}function bl(e){e.options.lineWrapping?(H(e.display.wrapper,\"CodeMirror-wrap\"),e.display.sizer.style.minWidth=\"\",e.display.sizerWidth=null):(T(e.display.wrapper,\"CodeMirror-wrap\"),Ye(e)),rn(e),_n(e),Er(e),setTimeout(function(){return Hn(e)},100)}function wl(e,t){var n=this;if(!(this instanceof wl))return new wl(e,t);this.options=t=t?z(t):{},z(gl,t,!1),ai(t);var i=t.value;\"string\"==typeof i&&(i=new So(i,t.mode,null,t.lineSeparator,t.direction)),this.doc=i;var o=new wl.inputStyles[t.inputStyle](this),u=this.display=new function(e,t,n){var i=this;this.input=n,i.scrollbarFiller=O(\"div\",null,\"CodeMirror-scrollbar-filler\"),i.scrollbarFiller.setAttribute(\"cm-not-content\",\"true\"),i.gutterFiller=O(\"div\",null,\"CodeMirror-gutter-filler\"),i.gutterFiller.setAttribute(\"cm-not-content\",\"true\"),i.lineDiv=A(\"div\",null,\"CodeMirror-code\"),i.selectionDiv=O(\"div\",null,null,\"position: relative; z-index: 1\"),i.cursorDiv=O(\"div\",null,\"CodeMirror-cursors\"),i.measure=O(\"div\",null,\"CodeMirror-measure\"),i.lineMeasure=O(\"div\",null,\"CodeMirror-measure\"),i.lineSpace=A(\"div\",[i.measure,i.lineMeasure,i.selectionDiv,i.cursorDiv,i.lineDiv],null,\"position: relative; outline: none\");var o=A(\"div\",[i.lineSpace],\"CodeMirror-lines\");i.mover=O(\"div\",[o],null,\"position: relative\"),i.sizer=O(\"div\",[i.mover],\"CodeMirror-sizer\"),i.sizerWidth=null,i.heightForcer=O(\"div\",null,null,\"position: absolute; height: \"+G+\"px; width: 1px;\"),i.gutters=O(\"div\",null,\"CodeMirror-gutters\"),i.lineGutter=null,i.scroller=O(\"div\",[i.sizer,i.heightForcer,i.gutters],\"CodeMirror-scroll\"),i.scroller.setAttribute(\"tabIndex\",\"-1\"),i.wrapper=O(\"div\",[i.scrollbarFiller,i.gutterFiller,i.scroller],\"CodeMirror\"),l&&s<8&&(i.gutters.style.zIndex=-1,i.scroller.style.paddingRight=0),a||r&&m||(i.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(i.wrapper):e(i.wrapper)),i.viewFrom=i.viewTo=t.first,i.reportedViewFrom=i.reportedViewTo=t.first,i.view=[],i.renderedView=null,i.externalMeasured=null,i.viewOffset=0,i.lastWrapHeight=i.lastWrapWidth=0,i.updateLineNumbers=null,i.nativeBarWidth=i.barHeight=i.barWidth=0,i.scrollbarsClipped=!1,i.lineNumWidth=i.lineNumInnerWidth=i.lineNumChars=null,i.alignWidgets=!1,i.cachedCharWidth=i.cachedTextHeight=i.cachedPaddingH=null,i.maxLine=null,i.maxLineLength=0,i.maxLineChanged=!1,i.wheelDX=i.wheelDY=i.wheelStartX=i.wheelStartY=null,i.shift=!1,i.selForContextMenu=null,i.activeTouch=null,n.init(i)}(e,i,o);for(var c in u.wrapper.CodeMirror=this,si(this),dl(this),t.lineWrapping&&(this.display.wrapper.className+=\" CodeMirror-wrap\"),En(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new R,keySeq:null,specialChars:null},t.autofocus&&!m&&u.input.focus(),l&&s<11&&setTimeout(function(){return n.display.input.reset(!0)},20),function(e){var t=e.display;Je(t.scroller,\"mousedown\",jn(e,al)),Je(t.scroller,\"dblclick\",l&&s<11?jn(e,function(t){if(!nt(e,t)){var r=nn(e,t);if(r&&!hl(e,t)&&!yr(e.display,t)){st(t);var n=e.findWordAt(r);Bi(e.doc,n.anchor,n.head)}}}):function(t){return nt(e,t)||st(t)});S||Je(t.scroller,\"contextmenu\",function(t){return fl(e,t)});var r,n={end:0};function i(){t.activeTouch&&(r=setTimeout(function(){return t.activeTouch=null},1e3),(n=t.activeTouch).end=+new Date)}function o(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}Je(t.scroller,\"touchstart\",function(i){if(!nt(e,i)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(i)&&!hl(e,i)){t.input.ensurePolled(),clearTimeout(r);var o=+new Date;t.activeTouch={start:o,moved:!1,prev:o-n.end<=300?n:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}}),Je(t.scroller,\"touchmove\",function(){t.activeTouch&&(t.activeTouch.moved=!0)}),Je(t.scroller,\"touchend\",function(r){var n=t.activeTouch;if(n&&!yr(t,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var l,s=e.coordsChar(t.activeTouch,\"page\");l=!n.prev||o(n,n.prev)?new gi(s,s):!n.prev.prev||o(n,n.prev.prev)?e.findWordAt(s):new gi(ge(s.line,0),Ce(e.doc,ge(s.line+1,0))),e.setSelection(l.anchor,l.head),e.focus(),st(r)}i()}),Je(t.scroller,\"touchcancel\",i),Je(t.scroller,\"scroll\",function(){t.scroller.clientHeight&&(Mn(e,t.scroller.scrollTop),On(e,t.scroller.scrollLeft,!0),rt(e,\"scroll\",e))}),Je(t.scroller,\"mousewheel\",function(t){return di(e,t)}),Je(t.scroller,\"DOMMouseScroll\",function(t){return di(e,t)}),Je(t.wrapper,\"scroll\",function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0}),t.dragFunctions={enter:function(t){nt(e,t)||ct(t)},over:function(t){nt(e,t)||(!function(e,t){var r=nn(e,t);if(r){var n=document.createDocumentFragment();an(e,r,n),e.display.dragCursor||(e.display.dragCursor=O(\"div\",null,\"CodeMirror-cursors CodeMirror-dragcursors\"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),N(e.display.dragCursor,n)}}(e,t),ct(t))},start:function(t){return function(e,t){if(l&&(!e.state.draggingText||+new Date-Lo<100))ct(t);else if(!nt(e,t)&&!yr(e.display,t)&&(t.dataTransfer.setData(\"Text\",e.getSelection()),t.dataTransfer.effectAllowed=\"copyMove\",t.dataTransfer.setDragImage&&!f)){var r=O(\"img\",null,null,\"position: fixed; left: 0; top: 0;\");r.src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",h&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),h&&r.parentNode.removeChild(r)}}(e,t)},drop:jn(e,ko),leave:function(t){nt(e,t)||To(e)}};var a=t.input.getField();Je(a,\"keyup\",function(t){return nl.call(e,t)}),Je(a,\"keydown\",jn(e,rl)),Je(a,\"keypress\",jn(e,il)),Je(a,\"focus\",function(t){return pn(e,t)}),Je(a,\"blur\",function(t){return gn(e,t)})}(this),Oo(),In(this),this.curOp.forceUpdate=!0,Mi(this,i),t.autofocus&&!m||this.hasFocus()?setTimeout(E(pn,this),20):gn(this),vl)vl.hasOwnProperty(c)&&vl[c](n,t[c],pl);wn(this),t.finishInit&&t.finishInit(this);for(var d=0;d<xl.length;++d)xl[d](n);Rn(this),a&&t.lineWrapping&&\"optimizelegibility\"==getComputedStyle(u.lineDiv).textRendering&&(u.lineDiv.style.textRendering=\"auto\")}wl.defaults=gl,wl.optionHandlers=vl;var xl=[];function Cl(e,t,r,n){var i,o=e.doc;null==r&&(r=\"add\"),\"smart\"==r&&(o.mode.indent?i=zt(e,t).state:r=\"prev\");var l=e.options.tabSize,s=se(o,t),a=I(s.text,null,l);s.stateAfter&&(s.stateAfter=null);var u,c=s.text.match(/^\\s*/)[0];if(n||/\\S/.test(s.text)){if(\"smart\"==r&&((u=o.mode.indent(i,s.text.slice(c.length),s.text))==U||u>150)){if(!n)return;r=\"prev\"}}else u=0,r=\"not\";\"prev\"==r?u=t>o.first?I(se(o,t-1).text,null,l):0:\"add\"==r?u=a+e.options.indentUnit:\"subtract\"==r?u=a-e.options.indentUnit:\"number\"==typeof r&&(u=a+r),u=Math.max(0,u);var h=\"\",f=0;if(e.options.indentWithTabs)for(var d=Math.floor(u/l);d;--d)f+=l,h+=\"\\t\";if(f<u&&(h+=_(u-f)),h!=c)return lo(o,h,ge(t,0),ge(t,c.length),\"+input\"),s.stateAfter=null,!0;for(var p=0;p<o.sel.ranges.length;p++){var g=o.sel.ranges[p];if(g.head.line==t&&g.head.ch<c.length){var v=ge(t,c.length);Ui(o,p,new gi(v,v));break}}}wl.defineInitHook=function(e){return xl.push(e)};var Sl=null;function Ll(e){Sl=e}function kl(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var l,s=e.state.pasteIncoming||\"paste\"==i,a=bt(t),u=null;if(s&&n.ranges.length>1)if(Sl&&Sl.text.join(\"\\n\")==t){if(n.ranges.length%Sl.text.length==0){u=[];for(var c=0;c<Sl.text.length;c++)u.push(o.splitLines(Sl.text[c]))}}else a.length==n.ranges.length&&e.options.pasteLinesPerSelection&&(u=$(a,function(e){return[e]}));for(var h=n.ranges.length-1;h>=0;h--){var f=n.ranges[h],d=f.from(),p=f.to();f.empty()&&(r&&r>0?d=ge(d.line,d.ch-r):e.state.overwrite&&!s?p=ge(p.line,Math.min(se(o,p.line).text.length,p.ch+q(a).length)):Sl&&Sl.lineWise&&Sl.text.join(\"\\n\")==t&&(d=p=ge(d.line,0))),l=e.curOp.updateInput;var g={from:d,to:p,text:u?u[h%u.length]:a,origin:i||(s?\"paste\":e.state.cutIncoming?\"cut\":\"+input\")};to(e.doc,g),or(e,\"inputRead\",e,g)}t&&!s&&Ml(e,t),Sn(e),e.curOp.updateInput=l,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Tl(e,t){var r=e.clipboardData&&e.clipboardData.getData(\"Text\");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Kn(t,function(){return kl(t,r,0,null,\"paste\")}),!0}function Ml(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(t.indexOf(o.electricChars.charAt(s))>-1){l=Cl(e,i.head.line,\"smart\");break}}else o.electricInput&&o.electricInput.test(se(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=Cl(e,i.head.line,\"smart\"));l&&or(e,\"electricInput\",e,i.head.line)}}}function Nl(e){for(var t=[],r=[],n=0;n<e.doc.sel.ranges.length;n++){var i=e.doc.sel.ranges[n].head.line,o={anchor:ge(i,0),head:ge(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function Ol(e,t){e.setAttribute(\"autocorrect\",\"off\"),e.setAttribute(\"autocapitalize\",\"off\"),e.setAttribute(\"spellcheck\",!!t)}function Al(){var e=O(\"textarea\",null,null,\"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none\"),t=O(\"div\",[e],null,\"overflow: hidden; position: relative; width: 3px; height: 0px;\");return a?e.style.width=\"1000px\":e.setAttribute(\"wrap\",\"off\"),g&&(e.style.border=\"1px solid black\"),Ol(e),t}function Dl(e,t,r,n,i){var o=t,l=r,s=se(e,t.line);function a(n){var o,l;if(null==(o=i?function(e,t,r,n){var i=Ze(t,e.doc.direction);if(!i)return jo(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky=\"before\"):r.ch<=0&&(r.ch=0,r.sticky=\"after\");var o=qe(i,r.ch,r.sticky),l=i[o];if(\"ltr\"==e.doc.direction&&l.level%2==0&&(n>0?l.to>r.ch:l.from<r.ch))return jo(t,r,n);var s,a=function(e,r){return Ko(t,e instanceof ge?e.ch:e,r)},u=function(r){return e.options.lineWrapping?(s=s||Nr(e,t),_r(e,t,s,r)):{begin:0,end:t.text.length}},c=u(\"before\"==r.sticky?a(r,-1):r.ch);if(\"rtl\"==e.doc.direction||1==l.level){var h=1==l.level==n<0,f=a(r,h?1:-1);if(null!=f&&(h?f<=l.to&&f<=c.end:f>=l.from&&f>=c.begin)){var d=h?\"before\":\"after\";return new ge(r.line,f,d)}}var p=function(e,t,n){for(var o=function(e,t){return t?new ge(r.line,a(e,1),\"before\"):new ge(r.line,e,\"after\")};e>=0&&e<i.length;e+=t){var l=i[e],s=t>0==(1!=l.level),u=s?n.begin:a(n.end,-1);if(l.from<=u&&u<l.to)return o(u,s);if(u=s?l.from:a(l.to,-1),n.begin<=u&&u<n.end)return o(u,s)}},g=p(o+n,n,c);if(g)return g;var v=n>0?c.end:a(c.begin,-1);return null==v||n>0&&v==t.text.length||!(g=p(n>0?0:i.length-1,n,u(v)))?null:g}(e.cm,s,t,r):jo(s,t,r))){if(n||(l=t.line+r)<e.first||l>=e.first+e.size||(t=new ge(l,t.ch,t.sticky),!(s=se(e,l))))return!1;t=Xo(i,e.cm,s,t.line,r)}else t=o;return!0}if(\"char\"==n)a();else if(\"column\"==n)a(!0);else if(\"word\"==n||\"group\"==n)for(var u=null,c=\"group\"==n,h=e.cm&&e.cm.getHelper(t,\"wordChars\"),f=!0;!(r<0)||a(!f);f=!1){var d=s.text.charAt(t.ch)||\"\\n\",p=te(d,h)?\"w\":c&&\"\\n\"==d?\"n\":!c||/\\s/.test(d)?null:\"p\";if(!c||f||p||(p=\"s\"),u&&u!=p){r<0&&(r=1,a(),t.sticky=\"after\");break}if(p&&(u=p),r>0&&!a(!f))break}var g=Zi(e,t,o,l,!0);return me(o,g)&&(g.hitSide=!0),g}function Wl(e,t,r,n){var i,o,l=e.doc,s=t.left;if(\"page\"==n){var a=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),u=Math.max(a-.5*Zr(e.display),3);i=(r>0?t.bottom:t.top)+r*u}else\"line\"==n&&(i=r>0?t.bottom+3:t.top-3);for(;(o=Xr(e,s,i)).outside;){if(r<0?i<=0:i>=l.height){o.hitSide=!0;break}i+=5*r}return o}var Hl=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new R,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Fl(e,t){var r=Mr(e,t.line);if(!r||r.hidden)return null;var n=se(e.doc,t.line),i=kr(r,n,t.line),o=Ze(n,e.doc.direction),l=\"left\";o&&(l=qe(o,t.ch)%2?\"right\":\"left\");var s=Wr(i.map,t.ch,l);return s.offset=\"right\"==s.collapse?s.end:s.start,s}function Pl(e,t){return t&&(e.bad=!0),e}function El(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return Pl(e.clipPos(ge(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==n)return zl(o,t,r)}}function zl(e,t,r){var n=e.text.firstChild,i=!1;if(!t||!D(n,t))return Pl(ge(he(e.line),0),!0);if(t==n&&(i=!0,t=n.childNodes[r],r=0,!t)){var o=e.rest?q(e.rest):e.line;return Pl(ge(he(o),o.text.length),i)}var l=3==t.nodeType?t:null,s=t;for(l||1!=t.childNodes.length||3!=t.firstChild.nodeType||(l=t.firstChild,r&&(r=l.nodeValue.length));s.parentNode!=n;)s=s.parentNode;var a=e.measure,u=a.maps;function c(t,r,n){for(var i=-1;i<(u?u.length:0);i++)for(var o=i<0?a.map:u[i],l=0;l<o.length;l+=3){var s=o[l+2];if(s==t||s==r){var c=he(i<0?e.line:e.rest[i]),h=o[l]+n;return(n<0||s!=t)&&(h=o[l+(n?1:0)]),ge(c,h)}}}var h=c(l,s,r);if(h)return Pl(h,i);for(var f=s.nextSibling,d=l?l.nodeValue.length-r:0;f;f=f.nextSibling){if(h=c(f,f.firstChild,0))return Pl(ge(h.line,h.ch-d),i);d+=f.textContent.length}for(var p=s.previousSibling,g=r;p;p=p.previousSibling){if(h=c(p,p.firstChild,-1))return Pl(ge(h.line,h.ch+g),i);g+=p.textContent.length}}Hl.prototype.init=function(e){var t=this,r=this,n=r.cm,i=r.div=e.lineDiv;function o(e){if(!nt(n,e)){if(n.somethingSelected())Ll({lineWise:!1,text:n.getSelections()}),\"cut\"==e.type&&n.replaceSelection(\"\",null,\"cut\");else{if(!n.options.lineWiseCopyCut)return;var t=Nl(n);Ll({lineWise:!0,text:t.text}),\"cut\"==e.type&&n.operation(function(){n.setSelections(t.ranges,0,V),n.replaceSelection(\"\",null,\"cut\")})}if(e.clipboardData){e.clipboardData.clearData();var o=Sl.text.join(\"\\n\");if(e.clipboardData.setData(\"Text\",o),e.clipboardData.getData(\"Text\")==o)return void e.preventDefault()}var l=Al(),s=l.firstChild;n.display.lineSpace.insertBefore(l,n.display.lineSpace.firstChild),s.value=Sl.text.join(\"\\n\");var a=document.activeElement;P(s),setTimeout(function(){n.display.lineSpace.removeChild(l),a.focus(),a==i&&r.showPrimarySelection()},50)}}Ol(i,n.options.spellcheck),Je(i,\"paste\",function(e){nt(n,e)||Tl(e,n)||s<=11&&setTimeout(jn(n,function(){return t.updateFromDOM()}),20)}),Je(i,\"compositionstart\",function(e){t.composing={data:e.data,done:!1}}),Je(i,\"compositionupdate\",function(e){t.composing||(t.composing={data:e.data,done:!1})}),Je(i,\"compositionend\",function(e){t.composing&&(e.data!=t.composing.data&&t.readFromDOMSoon(),t.composing.done=!0)}),Je(i,\"touchstart\",function(){return r.forceCompositionEnd()}),Je(i,\"input\",function(){t.composing||t.readFromDOMSoon()}),Je(i,\"copy\",o),Je(i,\"cut\",o)},Hl.prototype.prepareSelection=function(){var e=sn(this.cm,!1);return e.focus=this.cm.state.focused,e},Hl.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Hl.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,n=t.doc.sel.primary(),i=n.from(),o=n.to();if(t.display.viewTo==t.display.viewFrom||i.line>=t.display.viewTo||o.line<t.display.viewFrom)e.removeAllRanges();else{var l=El(t,e.anchorNode,e.anchorOffset),s=El(t,e.focusNode,e.focusOffset);if(!l||l.bad||!s||s.bad||0!=ve(we(l,s),i)||0!=ve(be(l,s),o)){var a=t.display.view,u=i.line>=t.display.viewFrom&&Fl(t,i)||{node:a[0].measure.map[2],offset:0},c=o.line<t.display.viewTo&&Fl(t,o);if(!c){var h=a[a.length-1].measure,f=h.maps?h.maps[h.maps.length-1]:h.map;c={node:f[f.length-1],offset:f[f.length-2]-f[f.length-3]}}if(u&&c){var d,p=e.rangeCount&&e.getRangeAt(0);try{d=k(u.node,u.offset,c.offset,c.node)}catch(e){}d&&(!r&&t.state.focused?(e.collapse(u.node,u.offset),d.collapsed||(e.removeAllRanges(),e.addRange(d))):(e.removeAllRanges(),e.addRange(d)),p&&null==e.anchorNode?e.addRange(p):r&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},Hl.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},Hl.prototype.showMultipleSelections=function(e){N(this.cm.display.cursorDiv,e.cursors),N(this.cm.display.selectionDiv,e.selection)},Hl.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Hl.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return D(this.div,t)},Hl.prototype.focus=function(){\"nocursor\"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Hl.prototype.blur=function(){this.div.blur()},Hl.prototype.getField=function(){return this.div},Hl.prototype.supportsTouch=function(){return!0},Hl.prototype.receivedFocus=function(){var e=this;this.selectionInEditor()?this.pollSelection():Kn(this.cm,function(){return e.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,function t(){e.cm.state.focused&&(e.pollSelection(),e.polling.set(e.cm.options.pollInterval,t))})},Hl.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Hl.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(v&&c&&this.cm.options.gutters.length&&function(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}(e.anchorNode))return this.cm.triggerOnKeyDown({type:\"keydown\",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var r=El(t,e.anchorNode,e.anchorOffset),n=El(t,e.focusNode,e.focusOffset);r&&n&&Kn(t,function(){ji(t.doc,mi(r,n),V),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},Hl.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e,t,r,n=this.cm,i=n.display,o=n.doc.sel.primary(),l=o.from(),s=o.to();if(0==l.ch&&l.line>n.firstLine()&&(l=ge(l.line-1,se(n.doc,l.line-1).length)),s.ch==se(n.doc,s.line).text.length&&s.line<n.lastLine()&&(s=ge(s.line+1,0)),l.line<i.viewFrom||s.line>i.viewTo-1)return!1;l.line==i.viewFrom||0==(e=on(n,l.line))?(t=he(i.view[0].line),r=i.view[0].node):(t=he(i.view[e].line),r=i.view[e-1].node.nextSibling);var a,u,c=on(n,s.line);if(c==i.view.length-1?(a=i.viewTo-1,u=i.lineDiv.lastChild):(a=he(i.view[c+1].line)-1,u=i.view[c+1].node.previousSibling),!r)return!1;for(var h=n.doc.splitLines(function(e,t,r,n,i){var o=\"\",l=!1,s=e.doc.lineSeparator();function a(){l&&(o+=s,l=!1)}function u(e){e&&(a(),o+=e)}function c(t){if(1==t.nodeType){var r=t.getAttribute(\"cm-text\");if(null!=r)return void u(r||t.textContent.replace(/\\u200b/g,\"\"));var o,h=t.getAttribute(\"cm-marker\");if(h){var f=e.findMarks(ge(n,0),ge(i+1,0),(g=+h,function(e){return e.id==g}));return void(f.length&&(o=f[0].find(0))&&u(ae(e.doc,o.from,o.to).join(s)))}if(\"false\"==t.getAttribute(\"contenteditable\"))return;var d=/^(pre|div|p)$/i.test(t.nodeName);d&&a();for(var p=0;p<t.childNodes.length;p++)c(t.childNodes[p]);d&&(l=!0)}else 3==t.nodeType&&u(t.nodeValue);var g}for(;c(t),t!=r;)t=t.nextSibling;return o}(n,r,u,t,a)),f=ae(n.doc,ge(t,0),ge(a,se(n.doc,a).text.length));h.length>1&&f.length>1;)if(q(h)==q(f))h.pop(),f.pop(),a--;else{if(h[0]!=f[0])break;h.shift(),f.shift(),t++}for(var d=0,p=0,g=h[0],v=f[0],m=Math.min(g.length,v.length);d<m&&g.charCodeAt(d)==v.charCodeAt(d);)++d;for(var y=q(h),b=q(f),w=Math.min(y.length-(1==h.length?d:0),b.length-(1==f.length?d:0));p<w&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)++p;if(1==h.length&&1==f.length&&t==l.line)for(;d&&d>l.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)d--,p++;h[h.length-1]=y.slice(0,y.length-p).replace(/^\\u200b+/,\"\"),h[0]=h[0].slice(d).replace(/\\u200b+$/,\"\");var x=ge(t,d),C=ge(a,f.length?q(f).length-p:0);return h.length>1||h[0]||ve(x,C)?(lo(n.doc,h,x,C,\"+input\"),!0):void 0},Hl.prototype.ensurePolled=function(){this.forceCompositionEnd()},Hl.prototype.reset=function(){this.forceCompositionEnd()},Hl.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Hl.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},Hl.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Kn(this.cm,function(){return _n(e.cm)})},Hl.prototype.setUneditable=function(e){e.contentEditable=\"false\"},Hl.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||jn(this.cm,kl)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Hl.prototype.readOnlyChanged=function(e){this.div.contentEditable=String(\"nocursor\"!=e)},Hl.prototype.onContextMenu=function(){},Hl.prototype.resetPosition=function(){},Hl.prototype.needsContentAttribute=!0;var Il,Rl,Bl,Gl=function(e){this.cm=e,this.prevInput=\"\",this.pollingFast=!1,this.polling=new R,this.hasSelection=!1,this.composing=null};Gl.prototype.init=function(e){var t=this,r=this,n=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!nt(n,e)){if(n.somethingSelected())Ll({lineWise:!1,text:n.getSelections()});else{if(!n.options.lineWiseCopyCut)return;var t=Nl(n);Ll({lineWise:!0,text:t.text}),\"cut\"==e.type?n.setSelections(t.ranges,null,V):(r.prevInput=\"\",i.value=t.text.join(\"\\n\"),P(i))}\"cut\"==e.type&&(n.state.cutIncoming=!0)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),g&&(i.style.width=\"0px\"),Je(i,\"input\",function(){l&&s>=9&&t.hasSelection&&(t.hasSelection=null),r.poll()}),Je(i,\"paste\",function(e){nt(n,e)||Tl(e,n)||(n.state.pasteIncoming=!0,r.fastPoll())}),Je(i,\"cut\",o),Je(i,\"copy\",o),Je(e.scroller,\"paste\",function(t){yr(e,t)||nt(n,t)||(n.state.pasteIncoming=!0,r.focus())}),Je(e.lineSpace,\"selectstart\",function(t){yr(e,t)||st(t)}),Je(i,\"compositionstart\",function(){var e=n.getCursor(\"from\");r.composing&&r.composing.range.clear(),r.composing={start:e,range:n.markText(e,n.getCursor(\"to\"),{className:\"CodeMirror-composing\"})}}),Je(i,\"compositionend\",function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)})},Gl.prototype.createField=function(e){this.wrapper=Al(),this.textarea=this.wrapper.firstChild},Gl.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=sn(e);if(e.options.moveInputWithCursor){var i=Vr(e,r.sel.primary().head,\"div\"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return n},Gl.prototype.showSelection=function(e){var t=this.cm.display;N(t.cursorDiv,e.cursors),N(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+\"px\",this.wrapper.style.left=e.teLeft+\"px\")},Gl.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput=\"\";var r=t.getSelection();this.textarea.value=r,t.state.focused&&P(this.textarea),l&&s>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value=\"\",l&&s>=9&&(this.hasSelection=null))}},Gl.prototype.getField=function(){return this.textarea},Gl.prototype.supportsTouch=function(){return!1},Gl.prototype.focus=function(){if(\"nocursor\"!=this.cm.options.readOnly&&(!m||W()!=this.textarea))try{this.textarea.focus()}catch(e){}},Gl.prototype.blur=function(){this.textarea.blur()},Gl.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Gl.prototype.receivedFocus=function(){this.slowPoll()},Gl.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Gl.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,function r(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,r))})},Gl.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||wt(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(l&&s>=9&&this.hasSelection===i||y&&/[\\uf700-\\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n=\"\"),8666==o)return this.reset(),this.cm.execCommand(\"undo\")}for(var a=0,u=Math.min(n.length,i.length);a<u&&n.charCodeAt(a)==i.charCodeAt(a);)++a;return Kn(t,function(){kl(t,i.slice(a),n.length-a,null,e.composing?\"*compose\":null),i.length>1e3||i.indexOf(\"\\n\")>-1?r.value=e.prevInput=\"\":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor(\"to\"),{className:\"CodeMirror-composing\"}))}),!0},Gl.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Gl.prototype.onKeyPress=function(){l&&s>=9&&(this.hasSelection=null),this.fastPoll()},Gl.prototype.onContextMenu=function(e){var t=this,r=t.cm,n=r.display,i=t.textarea,o=nn(r,e),u=n.scroller.scrollTop;if(o&&!h){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(o)&&jn(r,ji)(r.doc,mi(o),V);var c=i.style.cssText,f=t.wrapper.style.cssText;t.wrapper.style.cssText=\"position: absolute\";var d,p=t.wrapper.getBoundingClientRect();if(i.style.cssText=\"position: absolute; width: 30px; height: 30px;\\n top: \"+(e.clientY-p.top-5)+\"px; left: \"+(e.clientX-p.left-5)+\"px;\\n z-index: 1000; background: \"+(l?\"rgba(255, 255, 255, .05)\":\"transparent\")+\";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\",a&&(d=window.scrollY),n.input.focus(),a&&window.scrollTo(null,d),n.input.reset(),r.somethingSelected()||(i.value=t.prevInput=\" \"),t.contextMenuPending=!0,n.selForContextMenu=r.doc.sel,clearTimeout(n.detectingSelectAll),l&&s>=9&&v(),S){ct(e);var g=function(){tt(window,\"mouseup\",g),setTimeout(m,20)};Je(window,\"mouseup\",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var e=r.somethingSelected(),o=\"\"+(e?i.value:\"\");i.value=\"⇚\",i.value=o,t.prevInput=e?\"\":\"\",i.selectionStart=1,i.selectionEnd=o.length,n.selForContextMenu=r.doc.sel}}function m(){if(t.contextMenuPending=!1,t.wrapper.style.cssText=f,i.style.cssText=c,l&&s<9&&n.scrollbars.setScrollTop(n.scroller.scrollTop=u),null!=i.selectionStart){(!l||l&&s<9)&&v();var e=0,o=function(){n.selForContextMenu==r.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&\"\"==t.prevInput?jn(r,Ji)(r):e++<10?n.detectingSelectAll=setTimeout(o,500):(n.selForContextMenu=null,n.input.reset())};n.detectingSelectAll=setTimeout(o,200)}}},Gl.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled=\"nocursor\"==e},Gl.prototype.setUneditable=function(){},Gl.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function r(r,n,i,o){e.defaults[r]=n,i&&(t[r]=o?function(e,t,r){r!=pl&&i(e,t,r)}:i)}e.defineOption=r,e.Init=pl,r(\"value\",\"\",function(e,t){return e.setValue(t)},!0),r(\"mode\",null,function(e,t){e.doc.modeOption=t,Ci(e)},!0),r(\"indentUnit\",2,Ci,!0),r(\"indentWithTabs\",!1),r(\"smartIndent\",!0),r(\"tabSize\",4,function(e){Si(e),Er(e),_n(e)},!0),r(\"lineSeparator\",null,function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(ge(n,o))}n++});for(var i=r.length-1;i>=0;i--)lo(e.doc,t,r[i],ge(r[i].line,r[i].ch+t.length))}}),r(\"specialChars\",/[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b-\\u200f\\u2028\\u2029\\ufeff]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test(\"\\t\")?\"\":\"|\\t\"),\"g\"),r!=pl&&e.refresh()}),r(\"specialCharPlaceholder\",$t,function(e){return e.refresh()},!0),r(\"electricChars\",!0),r(\"inputStyle\",m?\"contenteditable\":\"textarea\",function(){throw new Error(\"inputStyle can not (yet) be changed in a running editor\")},!0),r(\"spellcheck\",!1,function(e,t){return e.getInputField().spellcheck=t},!0),r(\"rtlMoveVisually\",!w),r(\"wholeLineUpdateBefore\",!0),r(\"theme\",\"default\",function(e){dl(e),ml(e)},!0),r(\"keyMap\",\"default\",function(e,t,r){var n=Uo(t),i=r!=pl&&Uo(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),r(\"extraKeys\",null),r(\"configureMouse\",null),r(\"lineWrapping\",!1,bl,!0),r(\"gutters\",[],function(e){ai(e.options),ml(e)},!0),r(\"fixedGutter\",!0,function(e,t){e.display.gutters.style.left=t?en(e.display)+\"px\":\"0\",e.refresh()},!0),r(\"coverGutterNextToScrollbar\",!1,function(e){return Hn(e)},!0),r(\"scrollbarStyle\",\"native\",function(e){En(e),Hn(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),r(\"lineNumbers\",!1,function(e){ai(e.options),ml(e)},!0),r(\"firstLineNumber\",1,ml,!0),r(\"lineNumberFormatter\",function(e){return e},ml,!0),r(\"showCursorWhenSelecting\",!1,ln,!0),r(\"resetSelectionOnContextMenu\",!0),r(\"lineWiseCopyCut\",!0),r(\"pasteLinesPerSelection\",!0),r(\"readOnly\",!1,function(e,t){\"nocursor\"==t&&(gn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),r(\"disableInput\",!1,function(e,t){t||e.display.input.reset()},!0),r(\"dragDrop\",!0,yl),r(\"allowDropFileTypes\",null),r(\"cursorBlinkRate\",530),r(\"cursorScrollMargin\",0),r(\"cursorHeight\",1,ln,!0),r(\"singleCursorHeightPerLine\",!0,ln,!0),r(\"workTime\",100),r(\"workDelay\",100),r(\"flattenSpans\",!0,Si,!0),r(\"addModeClass\",!1,Si,!0),r(\"pollInterval\",100),r(\"undoDepth\",200,function(e,t){return e.doc.history.undoDepth=t}),r(\"historyEventDelay\",1250),r(\"viewportMargin\",10,function(e){return e.refresh()},!0),r(\"maxHighlightLength\",1e4,Si,!0),r(\"moveInputWithCursor\",!0,function(e,t){t||e.display.input.resetPosition()}),r(\"tabindex\",null,function(e,t){return e.display.input.getField().tabIndex=t||\"\"}),r(\"autofocus\",null),r(\"direction\",\"ltr\",function(e,t){return e.doc.setDirection(t)},!0)}(wl),Rl=(Il=wl).optionHandlers,Bl=Il.helpers={},Il.prototype={constructor:Il,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,t){var r=this.options,n=r[e];r[e]==t&&\"mode\"!=e||(r[e]=t,Rl.hasOwnProperty(e)&&jn(this,Rl[e])(this,t,n),rt(this,\"optionChange\",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?\"push\":\"unshift\"](Uo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;r<t.length;++r)if(t[r]==e||t[r].name==e)return t.splice(r,1),!0},addOverlay:Xn(function(e,t){var r=e.token?e:Il.getMode(this.options,e);if(r.startState)throw new Error(\"Overlays may not be stateful.\");!function(e,t,r){for(var n=0,i=r(t);n<e.length&&r(e[n])<=i;)n++;e.splice(n,0,t)}(this.state.overlays,{mode:r,modeSpec:e,opaque:t&&t.opaque,priority:t&&t.priority||0},function(e){return e.priority}),this.state.modeGen++,_n(this)}),removeOverlay:Xn(function(e){for(var t=this.state.overlays,r=0;r<t.length;++r){var n=t[r].modeSpec;if(n==e||\"string\"==typeof e&&n.name==e)return t.splice(r,1),this.state.modeGen++,void _n(this)}}),indentLine:Xn(function(e,t,r){\"string\"!=typeof t&&\"number\"!=typeof t&&(t=null==t?this.options.smartIndent?\"smart\":\"prev\":t?\"add\":\"subtract\"),de(this.doc,e)&&Cl(this,e,t,r)}),indentSelection:Xn(function(e){for(var t=this,r=this.doc.sel.ranges,n=-1,i=0;i<r.length;i++){var o=r[i];if(o.empty())o.head.line>n&&(Cl(t,o.head.line,e,!0),n=o.head.line,i==t.doc.sel.primIndex&&Sn(t));else{var l=o.from(),s=o.to(),a=Math.max(n,l.line);n=Math.min(t.lastLine(),s.line-(s.ch?0:1))+1;for(var u=a;u<n;++u)Cl(t,u,e);var c=t.doc.sel.ranges;0==l.ch&&r.length==c.length&&c[i].from().ch>0&&Ui(t.doc,i,new gi(l,c[i].to()),V)}}}),getTokenAt:function(e,t){return Ut(this,e,t)},getLineTokens:function(e,t){return Ut(this,ge(e),t,!0)},getTokenTypeAt:function(e){e=Ce(this.doc,e);var t,r=Et(this,se(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var l=n+i>>1;if((l?r[2*l-1]:0)>=o)i=l;else{if(!(r[2*l+1]<o)){t=r[2*l+2];break}n=l+1}}var s=t?t.indexOf(\"overlay \"):-1;return s<0?t:0==s?null:t.slice(0,s-1)},getModeAt:function(e){var t=this.doc.mode;return t.innerMode?Il.innerMode(t,this.getTokenAt(e).state).mode:t},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var r=[];if(!Bl.hasOwnProperty(t))return r;var n=Bl[t],i=this.getModeAt(e);if(\"string\"==typeof i[t])n[i[t]]&&r.push(n[i[t]]);else if(i[t])for(var o=0;o<i[t].length;o++){var l=n[i[t][o]];l&&r.push(l)}else i.helperType&&n[i.helperType]?r.push(n[i.helperType]):n[i.name]&&r.push(n[i.name]);for(var s=0;s<n._global.length;s++){var a=n._global[s];a.pred(i,this)&&-1==B(r,a.val)&&r.push(a.val)}return r},getStateAfter:function(e,t){var r=this.doc;return zt(this,(e=xe(r,null==e?r.first+r.size-1:e))+1,t).state},cursorCoords:function(e,t){var r=this.doc.sel.primary();return Vr(this,null==e?r.head:\"object\"==typeof e?Ce(this.doc,e):e?r.from():r.to(),t||\"page\")},charCoords:function(e,t){return Ur(this,Ce(this.doc,e),t||\"page\")},coordsChar:function(e,t){return Xr(this,(e=Gr(this,e,t||\"page\")).left,e.top)},lineAtHeight:function(e,t){return e=Gr(this,{top:e,left:0},t||\"page\").top,fe(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,r){var n,i=!1;if(\"number\"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),n=se(this.doc,e)}else n=e;return Br(this,n,{top:0,left:0},t||\"page\",r||i).top+(i?this.doc.height-je(n):0)},defaultTextHeight:function(){return Zr(this.display)},defaultCharWidth:function(){return Qr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o,l,s,a=this.display,u=(e=Vr(this,Ce(this.doc,e))).bottom,c=e.left;if(t.style.position=\"absolute\",t.setAttribute(\"cm-ignore-events\",\"true\"),this.display.input.setUneditable(t),a.sizer.appendChild(t),\"over\"==n)u=e.top;else if(\"above\"==n||\"near\"==n){var h=Math.max(a.wrapper.clientHeight,this.doc.height),f=Math.max(a.sizer.clientWidth,a.lineSpace.clientWidth);(\"above\"==n||e.bottom+t.offsetHeight>h)&&e.top>t.offsetHeight?u=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=h&&(u=e.bottom),c+t.offsetWidth>f&&(c=f-t.offsetWidth)}t.style.top=u+\"px\",t.style.left=t.style.right=\"\",\"right\"==i?(c=a.sizer.clientWidth-t.offsetWidth,t.style.right=\"0px\"):(\"left\"==i?c=0:\"middle\"==i&&(c=(a.sizer.clientWidth-t.offsetWidth)/2),t.style.left=c+\"px\"),r&&(o=this,l={left:c,top:u,right:c+t.offsetWidth,bottom:u+t.offsetHeight},null!=(s=xn(o,l)).scrollTop&&Mn(o,s.scrollTop),null!=s.scrollLeft&&On(o,s.scrollLeft))},triggerOnKeyDown:Xn(rl),triggerOnKeyPress:Xn(il),triggerOnKeyUp:nl,triggerOnMouseDown:Xn(al),execCommand:function(e){if(Yo.hasOwnProperty(e))return Yo[e].call(null,this)},triggerElectric:Xn(function(e){Ml(this,e)}),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=Ce(this.doc,e),l=0;l<t&&!(o=Dl(this.doc,o,i,r,n)).hitSide;++l);return o},moveH:Xn(function(e,t){var r=this;this.extendSelectionsBy(function(n){return r.display.shift||r.doc.extend||n.empty()?Dl(r.doc,n.head,e,t,r.options.rtlMoveVisually):e<0?n.from():n.to()},j)}),deleteH:Xn(function(e,t){var r=this.doc.sel,n=this.doc;r.somethingSelected()?n.replaceSelection(\"\",null,\"+delete\"):Vo(this,function(r){var i=Dl(n,r.head,e,t,!1);return e<0?{from:i,to:r.head}:{from:r.head,to:i}})}),findPosV:function(e,t,r,n){var i=1,o=n;t<0&&(i=-1,t=-t);for(var l=Ce(this.doc,e),s=0;s<t;++s){var a=Vr(this,l,\"div\");if(null==o?o=a.left:a.left=o,(l=Wl(this,a,i,r)).hitSide)break}return l},moveV:Xn(function(e,t){var r=this,n=this.doc,i=[],o=!this.display.shift&&!n.extend&&n.sel.somethingSelected();if(n.extendSelectionsBy(function(l){if(o)return e<0?l.from():l.to();var s=Vr(r,l.head,\"div\");null!=l.goalColumn&&(s.left=l.goalColumn),i.push(s.left);var a=Wl(r,s,e,t);return\"page\"==t&&l==n.sel.primary()&&Cn(r,Ur(r,a,\"div\").top-s.top),a},j),i.length)for(var l=0;l<n.sel.ranges.length;l++)n.sel.ranges[l].goalColumn=i[l]}),findWordAt:function(e){var t=se(this.doc,e.line).text,r=e.ch,n=e.ch;if(t){var i=this.getHelper(e,\"wordChars\");\"before\"!=e.sticky&&n!=t.length||!r?++n:--r;for(var o=t.charAt(r),l=te(o,i)?function(e){return te(e,i)}:/\\s/.test(o)?function(e){return/\\s/.test(e)}:function(e){return!/\\s/.test(e)&&!te(e)};r>0&&l(t.charAt(r-1));)--r;for(;n<t.length&&l(t.charAt(n));)++n}return new gi(ge(e.line,r),ge(e.line,n))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?H(this.display.cursorDiv,\"CodeMirror-overwrite\"):T(this.display.cursorDiv,\"CodeMirror-overwrite\"),rt(this,\"overwriteToggle\",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==W()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:Xn(function(e,t){Ln(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-Cr(this)-this.display.barHeight,width:e.scrollWidth-Cr(this)-this.display.barWidth,clientHeight:Lr(this),clientWidth:Sr(this)}},scrollIntoView:Xn(function(e,t){var r,n;null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):\"number\"==typeof e?e={from:ge(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?(n=e,kn(r=this),r.curOp.scrollToPos=n):Tn(this,e.from,e.to,e.margin)}),setSize:Xn(function(e,t){var r=this,n=function(e){return\"number\"==typeof e||/^\\d+$/.test(String(e))?e+\"px\":e};null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&Pr(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){qn(r,i,\"widget\");break}++i}),this.curOp.forceUpdate=!0,rt(this,\"refresh\",this)}),operation:function(e){return Kn(this,e)},startOperation:function(){return In(this)},endOperation:function(){return Rn(this)},refresh:Xn(function(){var e=this.display.cachedTextHeight;_n(this),this.curOp.forceUpdate=!0,Er(this),Ln(this,this.doc.scrollLeft,this.doc.scrollTop),oi(this),(null==e||Math.abs(e-Zr(this.display))>.5)&&rn(this),rt(this,\"refresh\",this)}),swapDoc:Xn(function(e){var t=this.doc;return t.cm=null,Mi(this,e),Er(this),this.display.input.reset(),Ln(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,or(this,\"swapDoc\",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},lt(Il),Il.registerHelper=function(e,t,r){Bl.hasOwnProperty(e)||(Bl[e]=Il[e]={_global:[]}),Bl[e][t]=r},Il.registerGlobalHelper=function(e,t,r,n){Il.registerHelper(e,t,n),Bl[e]._global.push({pred:r,val:n})};var Ul,Vl=\"iter insert remove copy getEditor constructor\".split(\" \");for(var Kl in So.prototype)So.prototype.hasOwnProperty(Kl)&&B(Vl,Kl)<0&&(wl.prototype[Kl]=function(e){return function(){return e.apply(this.doc,arguments)}}(So.prototype[Kl]));return lt(So),wl.inputStyles={textarea:Gl,contenteditable:Hl},wl.defineMode=function(e){wl.defaults.mode||\"null\"==e||(wl.defaults.mode=e),function(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),St[e]=t}.apply(this,arguments)},wl.defineMIME=function(e,t){Lt[e]=t},wl.defineMode(\"null\",function(){return{token:function(e){return e.skipToEnd()}}}),wl.defineMIME(\"text/plain\",\"null\"),wl.defineExtension=function(e,t){wl.prototype[e]=t},wl.defineDocExtension=function(e,t){So.prototype[e]=t},wl.fromTextArea=function(e,t){if((t=t?z(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=W();t.autofocus=r==e||null!=e.getAttribute(\"autofocus\")&&r==document.body}function n(){e.value=s.getValue()}var i;if(e.form&&(Je(e.form,\"submit\",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(t){t.save=n,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,n(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display=\"\",e.form&&(tt(e.form,\"submit\",n),\"function\"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display=\"none\";var s=wl(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s},(Ul=wl).off=tt,Ul.on=Je,Ul.wheelEventPixels=fi,Ul.Doc=So,Ul.splitLines=bt,Ul.countColumn=I,Ul.findColumn=X,Ul.isWordChar=ee,Ul.Pass=U,Ul.signal=rt,Ul.Line=jt,Ul.changeEnd=yi,Ul.scrollbarModel=Pn,Ul.Pos=ge,Ul.cmpPos=ve,Ul.modes=St,Ul.mimeModes=Lt,Ul.resolveMode=kt,Ul.getMode=Tt,Ul.modeExtensions=Mt,Ul.extendMode=Nt,Ul.copyState=Ot,Ul.startState=Dt,Ul.innerMode=At,Ul.commands=Yo,Ul.keyMap=Po,Ul.keyName=Go,Ul.isModifierKey=Ro,Ul.lookupKey=Io,Ul.normalizeKeyMap=zo,Ul.StringStream=Wt,Ul.SharedTextMarker=bo,Ul.TextMarker=mo,Ul.LineWidget=po,Ul.e_preventDefault=st,Ul.e_stopPropagation=at,Ul.e_stop=ct,Ul.addClass=H,Ul.contains=D,Ul.rmClass=T,Ul.keyNames=Do,wl.version=\"5.37.1\",wl});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/lib/codemirror.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/codemirror/lib/codemirror.css": {
"text": ".CodeMirror{font-family:monospace;height:300px;color:black;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:white}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:black}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{0%{}50%{background-color:transparent}}@-webkit-keyframes blink{0%{}50%{background-color:transparent}}@keyframes blink{0%{}50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:white}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:none}\n",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/tiddlywiki/codemirror/lib/codemirror.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.css": {
"text": ".CodeMirror-dialog {\n position: absolute;\n left: 0; right: 0;\n background: inherit;\n z-index: 15;\n padding: .1em .8em;\n overflow: hidden;\n color: inherit;\n}\n\n.CodeMirror-dialog-top {\n border-bottom: 1px solid #eee;\n top: 0;\n}\n\n.CodeMirror-dialog-bottom {\n border-top: 1px solid #eee;\n bottom: 0;\n}\n\n.CodeMirror-dialog input {\n border: none;\n outline: none;\n background: transparent;\n width: 20em;\n color: inherit;\n font-family: monospace;\n}\n\n.CodeMirror-dialog button {\n font-size: 70%;\n}\n",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.js": {
"text": "!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){function o(e,o,n){var t;return(t=e.getWrapperElement().appendChild(document.createElement(\"div\"))).className=n?\"CodeMirror-dialog CodeMirror-dialog-bottom\":\"CodeMirror-dialog CodeMirror-dialog-top\",\"string\"==typeof o?t.innerHTML=o:t.appendChild(o),t}function n(e,o){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=o}e.defineExtension(\"openDialog\",function(t,i,r){r||(r={}),n(this,null);var u=o(this,t,r.bottom),l=!1,c=this;function a(e){if(\"string\"==typeof e)s.value=e;else{if(l)return;l=!0,u.parentNode.removeChild(u),c.focus(),r.onClose&&r.onClose(u)}}var f,s=u.getElementsByTagName(\"input\")[0];return s?(s.focus(),r.value&&(s.value=r.value,!1!==r.selectValueOnOpen&&s.select()),r.onInput&&e.on(s,\"input\",function(e){r.onInput(e,s.value,a)}),r.onKeyUp&&e.on(s,\"keyup\",function(e){r.onKeyUp(e,s.value,a)}),e.on(s,\"keydown\",function(o){r&&r.onKeyDown&&r.onKeyDown(o,s.value,a)||((27==o.keyCode||!1!==r.closeOnEnter&&13==o.keyCode)&&(s.blur(),e.e_stop(o),a()),13==o.keyCode&&i(s.value,o))}),!1!==r.closeOnBlur&&e.on(s,\"blur\",a)):(f=u.getElementsByTagName(\"button\")[0])&&(e.on(f,\"click\",function(){a(),c.focus()}),!1!==r.closeOnBlur&&e.on(f,\"blur\",a),f.focus()),a}),e.defineExtension(\"openConfirm\",function(t,i,r){n(this,null);var u=o(this,t,r&&r.bottom),l=u.getElementsByTagName(\"button\"),c=!1,a=this,f=1;function s(){c||(c=!0,u.parentNode.removeChild(u),a.focus())}l[0].focus();for(var d=0;d<l.length;++d){var p=l[d];!function(o){e.on(p,\"click\",function(n){e.e_preventDefault(n),s(),o&&o(a)})}(i[d]),e.on(p,\"blur\",function(){--f,setTimeout(function(){f<=0&&s()},200)}),e.on(p,\"focus\",function(){++f})}}),e.defineExtension(\"openNotification\",function(t,i){n(this,a);var r,u=o(this,t,i&&i.bottom),l=!1,c=i&&void 0!==i.duration?i.duration:5e3;function a(){l||(l=!0,clearTimeout(r),u.parentNode.removeChild(u))}return e.on(u,\"click\",function(o){e.e_preventDefault(o),a()}),c&&(r=setTimeout(a,c)),a})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/selection/activeline.js": {
"text": "!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";var t=\"CodeMirror-activeline\",n=\"CodeMirror-activeline-background\",i=\"CodeMirror-activeline-gutter\";function r(e){for(var r=0;r<e.state.activeLines.length;r++)e.removeLineClass(e.state.activeLines[r],\"wrap\",t),e.removeLineClass(e.state.activeLines[r],\"background\",n),e.removeLineClass(e.state.activeLines[r],\"gutter\",i)}function o(e,o){for(var a=[],s=0;s<o.length;s++){var c=o[s],l=e.getOption(\"styleActiveLine\");if(\"object\"==typeof l&&l.nonEmpty?c.anchor.line==c.head.line:c.empty()){var f=e.getLineHandleVisualStart(c.head.line);a[a.length-1]!=f&&a.push(f)}}(function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0})(e.state.activeLines,a)||e.operation(function(){r(e);for(var o=0;o<a.length;o++)e.addLineClass(a[o],\"wrap\",t),e.addLineClass(a[o],\"background\",n),e.addLineClass(a[o],\"gutter\",i);e.state.activeLines=a})}function a(e,t){o(e,t.ranges)}e.defineOption(\"styleActiveLine\",!1,function(t,n,i){var s=i!=e.Init&&i;n!=s&&(s&&(t.off(\"beforeSelectionChange\",a),r(t),delete t.state.activeLines),n&&(t.state.activeLines=[],o(t,t.listSelections()),t.on(\"beforeSelectionChange\",a)))})});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/selection/activeline.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/mode/tw-meta.js": {
"text": "!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";e.modeInfo=[{name:\"CMake\",mime:\"text/x-cmake\",mode:\"cmake\",ext:[\"cmake\",\"cmake.in\"],file:/^CMakeLists.txt$/},{name:\"Cython\",mime:\"text/x-cython\",mode:\"python\",ext:[\"pyx\",\"pxd\",\"pxi\"]},{name:\"CSS\",mime:\"text/css\",mode:\"css\",ext:[\"css\"]},{name:\"diff\",mime:\"text/x-diff\",mode:\"diff\",ext:[\"diff\",\"patch\"]},{name:\"Embedded Javascript\",mime:\"application/x-ejs\",mode:\"htmlembedded\",ext:[\"ejs\"]},{name:\"Embedded Ruby\",mime:\"application/x-erb\",mode:\"htmlembedded\",ext:[\"erb\"]},{name:\"Erlang\",mime:\"text/x-erlang\",mode:\"erlang\",ext:[\"erl\"]},{name:\"GitHub Flavored Markdown\",mime:\"text/x-gfm\",mode:\"gfm\",file:/^(readme|contributing|history).md$/i},{name:\"Go\",mime:\"text/x-go\",mode:\"go\",ext:[\"go\"]},{name:\"ASP.NET\",mime:\"application/x-aspx\",mode:\"htmlembedded\",ext:[\"aspx\"],alias:[\"asp\",\"aspx\"]},{name:\"HTML\",mime:\"text/html\",mode:\"htmlmixed\",ext:[\"html\",\"htm\",\"handlebars\",\"hbs\"],alias:[\"xhtml\"]},{name:\"HTTP\",mime:\"message/http\",mode:\"http\"},{name:\"JavaScript\",mimes:[\"text/javascript\",\"text/ecmascript\",\"application/javascript\",\"application/x-javascript\",\"application/ecmascript\"],mode:\"javascript\",ext:[\"js\"],alias:[\"ecmascript\",\"js\",\"node\"]},{name:\"JSON\",mimes:[\"application/json\",\"application/x-json\"],mode:\"javascript\",ext:[\"json\",\"map\"],alias:[\"json5\"]},{name:\"JSON-LD\",mime:\"application/ld+json\",mode:\"javascript\",ext:[\"jsonld\"],alias:[\"jsonld\"]},{name:\"Lua\",mime:\"text/x-lua\",mode:\"lua\",ext:[\"lua\"]},{name:\"Markdown\",mime:\"text/x-markdown\",mode:\"markdown\",ext:[\"markdown\",\"md\",\"mkd\"]},{name:\"MySQL\",mime:\"text/x-mysql\",mode:\"sql\"},{name:\"Plain Text\",mime:\"text/plain\",mode:\"null\",ext:[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\"]},{name:\"Python\",mime:\"text/x-python\",mode:\"python\",ext:[\"BUILD\",\"bzl\",\"py\",\"pyw\"],file:/^(BUCK|BUILD)$/},{name:\"SCSS\",mime:\"text/x-scss\",mode:\"css\",ext:[\"scss\"]},{name:\"LaTeX\",mime:\"text/x-latex\",mode:\"stex\",ext:[\"text\",\"ltx\",\"tex\"],alias:[\"tex\"]},{name:\"TiddlyWiki \",mime:\"text/x-tiddlywiki\",mode:\"tiddlywiki\"}];for(var t=0;t<e.modeInfo.length;t++){var m=e.modeInfo[t];m.mimes&&(m.mime=m.mimes[0])}e.findModeByMIME=function(t){t=t.toLowerCase();for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.mime==t)return i;if(i.mimes)for(var a=0;a<i.mimes.length;a++)if(i.mimes[a]==t)return i}return/\\+xml$/.test(t)?e.findModeByMIME(\"application/xml\"):/\\+json$/.test(t)?e.findModeByMIME(\"application/json\"):void 0},e.findModeByExtension=function(t){for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.ext)for(var a=0;a<i.ext.length;a++)if(i.ext[a]==t)return i}},e.findModeByFileName=function(t){for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.file&&i.file.test(t))return i}var a=t.lastIndexOf(\".\"),o=a>-1&&t.substring(a+1,t.length);if(o)return e.findModeByExtension(o)},e.findModeByName=function(t){t=t.toLowerCase();for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.name.toLowerCase()==t)return i;if(i.alias)for(var a=0;a<i.alias.length;a++)if(i.alias[a].toLowerCase()==t)return i}}});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/mode/tw-meta.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/keyboard": {
"title": "$:/plugins/tiddlywiki/codemirror/keyboard",
"text": "\n!!Default keyboard shortcuts\n\n!!!Basic shortcuts\n\n|Shortcut |Function |h\n|Left |goCharLeft |\n|Right |goCharRight |\n|Up |goLineUp |\n|Down |goLineDown |\n|End |goLineEnd |\n|Home |goLineStartSmart |\n|~PageUp |goPageUp |\n|~PageDown |goPageDown |\n|Delete |delCharAfter |\n|Backspace |delCharBefore |\n|Shift-Backspace |delCharBefore |\n|Tab |defaultTab |\n|Shift-Tab |indentAuto |\n|Enter |newlineAndIndent |\n|Insert |toggleOverwrite |\n|Ctrl-Esc |singleSelection |\n\n\n!!!Shortcuts on Windows and Linux\n\n|Shortcut |Function |h\n|Ctrl-A |selectAll |\n|Ctrl-D |deleteLine |\n|Ctrl-Z |undo |\n|Shift-Ctrl-Z |redo |\n|Ctrl-Y |redo |\n|Ctrl-Home |goDocStart |\n|Ctrl-End |goDocEnd |\n|Ctrl-Up |goLineUp |\n|Ctrl-Down |goLineDown |\n|Ctrl-Left |goGroupLeft |\n|Ctrl-Right |goGroupRight |\n|Alt-Left |goLineStart |\n|Alt-Right |goLineEnd |\n|Ctrl-Backspace |delGroupBefore |\n|Ctrl-Delete |delGroupAfter |\n|Ctrl-F |find |\n|Ctrl-G |findNext |\n|Shift-Ctrl-G |findPrev |\n|Shift-Ctrl-F |replace |\n|Shift-Ctrl-R |replaceAll |\n|Ctrl-[ |indentLess |\n|Ctrl-] |indentMore |\n|Alt-U |undoSelection |\n|Shift-Ctrl-U |redoSelection |\n|Shift-Alt-U |redoSelection |\n\n\n!!!Shortcuts on ~MacOs\n\n|Shortcut |Function |h\n|Cmd-A |selectAll |\n|Cmd-D |deleteLine |\n|Cmd-Z |undo |\n|Shift-Cmd-Z |redo |\n|Cmd-Y |redo |\n|Cmd-Home |goDocStart |\n|Cmd-Up |goDocStart |\n|Cmd-End |goDocEnd |\n|Cmd-Down |goDocEnd |\n|Alt-Left |goGroupLeft |\n|Alt-Right |goGroupRight |\n|Cmd-Left |goLineLeft |\n|Cmd-Right |goLineRight |\n|Alt-Backspace |delGroupBefore |\n|Ctrl-Alt-Backspace |delGroupAfter |\n|Alt-Delete |delGroupAfter |\n|Cmd-F |find |\n|Cmd-G |findNext |\n|Shift-Cmd-G |findPrev |\n|Cmd-Alt-F |replace |\n|Shift-Cmd-Alt-F |replaceAll |\n|Cmd-[ |indentLess |\n|Cmd-] |indentMore |\n|Cmd-Backspace |delWrappedLineLeft |\n|Cmd-Delete |delWrappedLineRight |\n|Alt-U |undoSelection |\n|Shift-Alt-U |redoSelection |\n|Ctrl-Up |goDocStart |\n|Ctrl-Down |goDocEnd |\n|Ctrl-F |goCharRight |\n|Ctrl-B |goCharLeft |\n|Ctrl-P |goLineUp |\n|Ctrl-N |goLineDown |\n|Alt-F |goWordRight |\n|Alt-B |goWordLeft |\n|Ctrl-A |goLineStart |\n|Ctrl-E |goLineEnd |\n|Ctrl-V |goPageDown |\n|Shift-Ctrl-V |goPageUp |\n|Ctrl-D |delCharAfter |\n|Ctrl-H |delCharBefore |\n|Alt-D |delWordAfter |\n|Alt-Backspace |delWordBefore |\n|Ctrl-K |killLine |\n|Alt-T |transposeChars |\n|Ctrl-O |openLine |\n\n\n"
},
"$:/plugins/tiddlywiki/codemirror/license": {
"title": "$:/plugins/tiddlywiki/codemirror/license",
"text": "\"\"\"\n~CodeMirror, copyright (c) by Marijn Haverbeke and others\nDistributed under an MIT license: http://codemirror.net/LICENSE\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2018, UnaMesa Association\nDistributed under an BSD license: https://tiddlywiki.com/#License\n\"\"\"\n"
},
"$:/plugins/tiddlywiki/codemirror/readme": {
"title": "$:/plugins/tiddlywiki/codemirror/readme",
"text": "This plugin provides an enhanced text editor component based on [[CodeMirror|http://codemirror.net]]. The basic configuration is designed to be as lightweight as possible and is just around 235kb of size. Additional features can be installed with ~CodeMirror ~AddOns from the plugin library.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/codemirror]]\n\nBased on ~CodeMirror version 5.37.0\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/editorFont": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/editorFont",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/editorFont/hint}}",
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/keyMap": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/keyMap",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/keyMap/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/keyMap\n\n<$link to=\"$:/config/codemirror/keyMap\"><<lingo hint>></$link>\n\n<$select tiddler=\"$:/config/codemirror/keyMap\" default=\"default\">\n<option value=\"default\">default</option>\n<$list filter=\"[all[shadows+tiddlers]module-type[codemirror-keymap]!has[draft.of]get[text]]\">\n<option value=<<currentTiddler>>><$transclude><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/lineNumbers": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/lineNumbers",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/lineNumbers/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/lineNumbers/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/lineNumbers\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"false\"> <$link to=\"$:/config/codemirror/lineNumbers\"><<lingo info>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/lineWrapping": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/lineWrapping",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/lineWrapping/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/lineWrapping/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/lineWrapping\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/lineWrapping\"><<lingo info>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/showCursorWhenSelecting": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/showCursorWhenSelecting",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/showCursorWhenSelecting/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/showCursorWhenSelecting/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/showCursorWhenSelecting\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/showCursorWhenSelecting\"><<lingo info>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/styleActiveLine": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/styleActiveLine",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/styleActiveLine/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/styleActiveLine/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/styleActiveLine\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"false\"> <$link to=\"$:/config/codemirror/styleActiveLine\"><<lingo info>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/theme": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/theme",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/theme/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/\n\n<$link to=\"$:/config/codemirror/theme\"><<lingo hint>></$link>\n\n<$select tiddler=\"$:/config/codemirror/theme\" default=\"default\">\n<option value=\"default\">default</option>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]module-type[codemirror-theme]!has[draft.of]get[name]]\">\n<option value=<<currentTiddler>>><$transclude field=\"name\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n\n//see the [[CodeMirror Usage|$:/plugins/tiddlywiki/codemirror/usage]] how to add themes//\n"
},
"$:/plugins/tiddlywiki/codemirror/styles": {
"title": "$:/plugins/tiddlywiki/codemirror/styles",
"tags": "[[$:/tags/Stylesheet]]",
"text": "/* Make the editor resize to fit its content */\n\n.CodeMirror {\n\theight: auto;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tline-height: 1.5;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n}\n\n.CodeMirror-scroll {\n\toverflow-x: auto;\n\toverflow-y: hidden;\t\n}\n"
},
"$:/core/ui/ControlPanel/Settings/CodeMirror": {
"title": "$:/core/ui/ControlPanel/Settings/CodeMirror",
"tags": "$:/tags/ControlPanel/SettingsTab",
"caption": "CodeMirror",
"list-after": "$:/core/ui/ControlPanel/Settings/TiddlyWiki",
"text": "\\define lingo-base() $:/language/codemirror/controlPanel/\n\n<<lingo hint>>\n\n<$link to=\"$:/plugins/tiddlywiki/codemirror/usage\"><<lingo usage>></$link>\n\n<$link to=\"$:/plugins/tiddlywiki/codemirror/keyboard\"><<lingo keyboard>></$link>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings/CodeMirror]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ControlPanel/Settings": {
"title": "$:/core/ui/ControlPanel/Settings",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Settings/Caption}}",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/SettingsTab]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Settings/TiddlyWiki\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Settings/TiddlyWiki": {
"title": "$:/core/ui/ControlPanel/Settings/TiddlyWiki",
"tags": "$:/tags/ControlPanel/SettingsTab",
"caption": "TiddlyWiki",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/plugins/tiddlywiki/codemirror/usage": {
"title": "$:/plugins/tiddlywiki/codemirror/usage",
"text": "! Configuration\n\nConfiguration for the ~CodeMirror text-editor can be done from within the CodeMirror Settings Tab in the [[ControlPanel|$:/ControlPanel]] (Settings - ~CodeMirror)\n\n\n!!Setting a different Theme\n\n~CodeMirror themes are available in the [ext[official GitHub repository|https://github.com/codemirror/CodeMirror/tree/master/theme]]\n\nMore themes can be found at https://github.com/FarhadG/code-mirror-themes/tree/master/themes and previewed [ext[here|http://farhadg.github.io/code-mirror-themes/]]\n\n\nTo add a theme to your wiki, follow these four steps:\n\n* choose one of the CSS files and copy its content to a new tiddler\n* remove all comments from the top and tag the tiddler with <<tag-pill \"$:/tags/Stylesheet\">>\n* add a field \"module-type\" with the value \"codemirror-theme\". add a field \"name\" with the exact ''name'' of the theme as value\n* save the tiddler and go to the Settings tab in $:/ControlPanel - look for the \"theme\" dropdown to select your newly added theme\n\n\n!!Line Numbers\n\nTo show or hide the Line Numbers at the left, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Line Numbers\" checkbox\n\n\n!!Line Wrapping\n\nControls if long lines get visually wrapped to a new line if they're too long to fit the editor width or if the editor should scroll horizontally\n\nTo change the line-wrapping behaviour, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Line Wrapping\" checkbox\n\n\n!!Show Cursor when selecting\n\nDefines whether the Mouse cursor should be visually shown or hidden when making a text-selection\n\nTo change the show-cursor-when-selecting behaviour, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Show cursor when selecting\" checkbox\n\n\n!!~CodeMirror Font Family\n\nThe Font-Family used within the ~CodeMirror text-editor defaults to \"monospace\" which will choose your configured monospace system-font\n\nThat setting can be overridden entering one or more Font-Families in the \"Font Family\" input field at ~ControlPanel - Settings - ~CodeMirror\n\n* The entries must be separated by semicolons ','\n* Font-Family Names that contain spaces must be quoted like \"My Font\"\n* If a list of Font-Families is specified, the last Font-Family found on the user-system gets used, non-existing fonts get ignored\n* If none of the specified Font-Families is available, ~CodeMirror uses the default \"monospace\"\n\n\n!!\"Hidden\" Settings:\n\n!!!Cursor Blink Rate\n\nThe cursor blink-rate defines how fast (in milliseconds) the cursor blinks inside the textarea\n\nYou can change it by editing $:/config/codemirror/cursorBlinkRate\n\"0\" disables blinking\n\n!!!Tabsize\n\nThe Tabsize defines the width of a tab character. Default is 4.\n\nYou can change it by editing $:/config/codemirror/tabSize\n\n!!!Indent Unit\n\nNot enabled for vnd.tiddlywiki and x-tiddlywiki\n\nDefines how many spaces a text-block should be indented. Defaults to 2.\n\nYou can change it by editing $:/config/codemirror/indentUnit\n\n"
}
}
}
{
"tiddlers": {
"$:/config/HighlightPlugin/TypeMappings/application/javascript": {
"title": "$:/config/HighlightPlugin/TypeMappings/application/javascript",
"text": "javascript"
},
"$:/config/HighlightPlugin/TypeMappings/application/json": {
"title": "$:/config/HighlightPlugin/TypeMappings/application/json",
"text": "json"
},
"$:/config/HighlightPlugin/TypeMappings/text/css": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/css",
"text": "css"
},
"$:/config/HighlightPlugin/TypeMappings/text/html": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/html",
"text": "html"
},
"$:/config/HighlightPlugin/TypeMappings/image/svg+xml": {
"title": "$:/config/HighlightPlugin/TypeMappings/image/svg+xml",
"text": "xml"
},
"$:/config/HighlightPlugin/TypeMappings/text/x-markdown": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/x-markdown",
"text": "markdown"
},
"$:/plugins/tiddlywiki/highlight/highlight.js": {
"text": "var hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n/*! highlight.js v9.18.1 | BSD3 License | git.io/hljslicense */\n!function(e){var n=\"object\"==typeof window&&window||\"object\"==typeof self&&self;\"undefined\"==typeof exports||exports.nodeType?n&&(n.hljs=e({}),\"function\"==typeof define&&define.amd&&define([],function(){return n.hljs})):e(exports)}(function(a){var f=[],i=Object.keys,_={},c={},C=!0,n=/^(no-?highlight|plain|text)$/i,l=/\\blang(?:uage)?-([\\w-]+)\\b/i,t=/((^(<[^>]+>|\\t|)+|(?:\\n)))/gm,r={case_insensitive:\"cI\",lexemes:\"l\",contains:\"c\",keywords:\"k\",subLanguage:\"sL\",className:\"cN\",begin:\"b\",beginKeywords:\"bK\",end:\"e\",endsWithParent:\"eW\",illegal:\"i\",excludeBegin:\"eB\",excludeEnd:\"eE\",returnBegin:\"rB\",returnEnd:\"rE\",variants:\"v\",IDENT_RE:\"IR\",UNDERSCORE_IDENT_RE:\"UIR\",NUMBER_RE:\"NR\",C_NUMBER_RE:\"CNR\",BINARY_NUMBER_RE:\"BNR\",RE_STARTERS_RE:\"RSR\",BACKSLASH_ESCAPE:\"BE\",APOS_STRING_MODE:\"ASM\",QUOTE_STRING_MODE:\"QSM\",PHRASAL_WORDS_MODE:\"PWM\",C_LINE_COMMENT_MODE:\"CLCM\",C_BLOCK_COMMENT_MODE:\"CBCM\",HASH_COMMENT_MODE:\"HCM\",NUMBER_MODE:\"NM\",C_NUMBER_MODE:\"CNM\",BINARY_NUMBER_MODE:\"BNM\",CSS_NUMBER_MODE:\"CSSNM\",REGEXP_MODE:\"RM\",TITLE_MODE:\"TM\",UNDERSCORE_TITLE_MODE:\"UTM\",COMMENT:\"C\",beginRe:\"bR\",endRe:\"eR\",illegalRe:\"iR\",lexemesRe:\"lR\",terminators:\"t\",terminator_end:\"tE\"},m=\"</span>\",O=\"Could not find the language '{}', did you forget to load/include a language module?\",B={classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:void 0},o=\"of and for in not or if then\".split(\" \");function x(e){return e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\")}function g(e){return e.nodeName.toLowerCase()}function u(e){return n.test(e)}function s(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function E(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:\"start\",offset:t,node:r}),t=e(r,t),g(r).match(/br|hr|img|input/)||a.push({event:\"stop\",offset:t,node:r}));return t}(e,0),a}function d(e,n,t){var r=0,a=\"\",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:\"start\"===n[0].event?e:n:e.length?e:n}function c(e){a+=\"<\"+g(e)+f.map.call(e.attributes,function(e){return\" \"+e.nodeName+'=\"'+x(e.value).replace(/\"/g,\""\")+'\"'}).join(\"\")+\">\"}function l(e){a+=\"</\"+g(e)+\">\"}function u(e){(\"start\"===e.event?c:l)(e.node)}for(;e.length||n.length;){var s=o();if(a+=x(t.substring(r,s[0].offset)),r=s[0].offset,s===e){for(i.reverse().forEach(l);u(s.splice(0,1)[0]),(s=o())===e&&s.length&&s[0].offset===r;);i.reverse().forEach(c)}else\"start\"===s[0].event?i.push(s[0].node):i.pop(),u(s.splice(0,1)[0])}return a+x(t.substr(r))}function R(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return s(n,{v:null},e)})),n.cached_variants?n.cached_variants:function e(n){return!!n&&(n.eW||e(n.starts))}(n)?[s(n,{starts:n.starts?s(n.starts):null})]:Object.isFrozen(n)?[s(n)]:[n]}function p(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(p)}}function v(n,r){var a={};return\"string\"==typeof n?t(\"keyword\",n):i(n).forEach(function(e){t(e,n[e])}),a;function t(t,e){r&&(e=e.toLowerCase()),e.split(\" \").forEach(function(e){var n=e.split(\"|\");a[n[0]]=[t,function(e,n){return n?Number(n):function(e){return-1!=o.indexOf(e.toLowerCase())}(e)?0:1}(n[0],n[1])]})}}function S(r){function s(e){return e&&e.source||e}function f(e,n){return new RegExp(s(e),\"m\"+(r.cI?\"i\":\"\")+(n?\"g\":\"\"))}function a(a){var i,e,o={},c=[],l={},t=1;function n(e,n){o[t]=e,c.push([e,n]),t+=function(e){return new RegExp(e.toString()+\"|\").exec(\"\").length-1}(n)+1}for(var r=0;r<a.c.length;r++){n(e=a.c[r],e.bK?\"\\\\.?(?:\"+e.b+\")\\\\.?\":e.b)}a.tE&&n(\"end\",a.tE),a.i&&n(\"illegal\",a.i);var u=c.map(function(e){return e[1]});return i=f(function(e,n){for(var t=/\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./,r=0,a=\"\",i=0;i<e.length;i++){var o=r+=1,c=s(e[i]);for(0<i&&(a+=n),a+=\"(\";0<c.length;){var l=t.exec(c);if(null==l){a+=c;break}a+=c.substring(0,l.index),c=c.substring(l.index+l[0].length),\"\\\\\"==l[0][0]&&l[1]?a+=\"\\\\\"+String(Number(l[1])+o):(a+=l[0],\"(\"==l[0]&&r++)}a+=\")\"}return a}(u,\"|\"),!0),l.lastIndex=0,l.exec=function(e){var n;if(0===c.length)return null;i.lastIndex=l.lastIndex;var t=i.exec(e);if(!t)return null;for(var r=0;r<t.length;r++)if(null!=t[r]&&null!=o[\"\"+r]){n=o[\"\"+r];break}return\"string\"==typeof n?(t.type=n,t.extra=[a.i,a.tE]):(t.type=\"begin\",t.rule=n),t},l}if(r.c&&-1!=r.c.indexOf(\"self\")){if(!C)throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");r.c=r.c.filter(function(e){return\"self\"!=e})}!function n(t,e){t.compiled||(t.compiled=!0,t.k=t.k||t.bK,t.k&&(t.k=v(t.k,r.cI)),t.lR=f(t.l||/\\w+/,!0),e&&(t.bK&&(t.b=\"\\\\b(\"+t.bK.split(\" \").join(\"|\")+\")\\\\b\"),t.b||(t.b=/\\B|\\b/),t.bR=f(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\\B|\\b/),t.e&&(t.eR=f(t.e)),t.tE=s(t.e)||\"\",t.eW&&e.tE&&(t.tE+=(t.e?\"|\":\"\")+e.tE)),t.i&&(t.iR=f(t.i)),null==t.relevance&&(t.relevance=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return R(\"self\"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e),t.t=a(t))}(r)}function T(n,e,a,t){var i=e;function o(e,n){if(function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}if(e.eW)return o(e.parent,n)}function c(e,n,t,r){if(!t&&\"\"===n)return\"\";if(!e)return n;var a='<span class=\"'+(r?\"\":B.classPrefix);return(a+=e+'\">')+n+(t?\"\":m)}function l(){p+=null!=d.sL?function(){var e=\"string\"==typeof d.sL;if(e&&!_[d.sL])return x(v);var n=e?T(d.sL,v,!0,R[d.sL]):w(v,d.sL.length?d.sL:void 0);return 0<d.relevance&&(M+=n.relevance),e&&(R[d.sL]=n.top),c(n.language,n.value,!1,!0)}():function(){var e,n,t,r,a,i,o;if(!d.k)return x(v);for(r=\"\",n=0,d.lR.lastIndex=0,t=d.lR.exec(v);t;)r+=x(v.substring(n,t.index)),a=d,i=t,void 0,o=g.cI?i[0].toLowerCase():i[0],(e=a.k.hasOwnProperty(o)&&a.k[o])?(M+=e[1],r+=c(e[0],x(t[0]))):r+=x(t[0]),n=d.lR.lastIndex,t=d.lR.exec(v);return r+x(v.substr(n))}(),v=\"\"}function u(e){p+=e.cN?c(e.cN,\"\",!0):\"\",d=Object.create(e,{parent:{value:d}})}function s(e){var n=e[0],t=e.rule;return t&&t.endSameAsBegin&&(t.eR=function(e){return new RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"),\"m\")}(n)),t.skip?v+=n:(t.eB&&(v+=n),l(),t.rB||t.eB||(v=n)),u(t),t.rB?0:n.length}var f={};function r(e,n){var t=n&&n[0];if(v+=e,null==t)return l(),0;if(\"begin\"==f.type&&\"end\"==n.type&&f.index==n.index&&\"\"===t)return v+=i.slice(n.index,n.index+1),1;if(\"begin\"===(f=n).type)return s(n);if(\"illegal\"===n.type&&!a)throw new Error('Illegal lexeme \"'+t+'\" for mode \"'+(d.cN||\"<unnamed>\")+'\"');if(\"end\"===n.type){var r=function(e){var n=e[0],t=i.substr(e.index),r=o(d,t);if(r){var a=d;for(a.skip?v+=n:(a.rE||a.eE||(v+=n),l(),a.eE&&(v=n));d.cN&&(p+=m),d.skip||d.sL||(M+=d.relevance),(d=d.parent)!==r.parent;);return r.starts&&(r.endSameAsBegin&&(r.starts.eR=r.eR),u(r.starts)),a.rE?0:n.length}}(n);if(null!=r)return r}return v+=t,t.length}var g=D(n);if(!g)throw console.error(O.replace(\"{}\",n)),new Error('Unknown language: \"'+n+'\"');S(g);var E,d=t||g,R={},p=\"\";for(E=d;E!==g;E=E.parent)E.cN&&(p=c(E.cN,\"\",!0)+p);var v=\"\",M=0;try{for(var b,h,N=0;d.t.lastIndex=N,b=d.t.exec(i);)h=r(i.substring(N,b.index),b),N=b.index+h;for(r(i.substr(N)),E=d;E.parent;E=E.parent)E.cN&&(p+=m);return{relevance:M,value:p,i:!1,language:n,top:d}}catch(e){if(e.message&&-1!==e.message.indexOf(\"Illegal\"))return{i:!0,relevance:0,value:x(i)};if(C)return{relevance:0,value:x(i),language:n,top:d,errorRaised:e};throw e}}function w(t,e){e=e||B.languages||i(_);var r={relevance:0,value:x(t)},a=r;return e.filter(D).filter(L).forEach(function(e){var n=T(e,t,!1);n.language=e,n.relevance>a.relevance&&(a=n),n.relevance>r.relevance&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function M(e){return B.tabReplace||B.useBR?e.replace(t,function(e,n){return B.useBR&&\"\\n\"===e?\"<br>\":B.tabReplace?n.replace(/\\t/g,B.tabReplace):\"\"}):e}function b(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+\" \";if(i+=e.parentNode?e.parentNode.className:\"\",t=l.exec(i)){var o=D(t[1]);return o||(console.warn(O.replace(\"{}\",t[1])),console.warn(\"Falling back to no-highlight mode for this block.\",e)),o?t[1]:\"no-highlight\"}for(n=0,r=(i=i.split(/\\s+/)).length;n<r;n++)if(u(a=i[n])||D(a))return a}(e);u(o)||(B.useBR?(n=document.createElement(\"div\")).innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(/<br[ \\/]*>/g,\"\\n\"):n=e,i=n.textContent,r=o?T(o,i,!0):w(i),(t=E(n)).length&&((a=document.createElement(\"div\")).innerHTML=r.value,r.value=d(t,E(a),i)),r.value=M(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),-1===e.indexOf(r)&&a.push(r),a.join(\" \").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function h(){if(!h.called){h.called=!0;var e=document.querySelectorAll(\"pre code\");f.forEach.call(e,b)}}var N={disableAutodetect:!0};function D(e){return e=(e||\"\").toLowerCase(),_[e]||_[c[e]]}function L(e){var n=D(e);return n&&!n.disableAutodetect}return a.highlight=T,a.highlightAuto=w,a.fixMarkup=M,a.highlightBlock=b,a.configure=function(e){B=s(B,e)},a.initHighlighting=h,a.initHighlightingOnLoad=function(){window.addEventListener(\"DOMContentLoaded\",h,!1),window.addEventListener(\"load\",h,!1)},a.registerLanguage=function(n,e){var t;try{t=e(a)}catch(e){if(console.error(\"Language definition for '{}' could not be registered.\".replace(\"{}\",n)),!C)throw e;console.error(e),t=N}p(_[n]=t),t.rawDefinition=e.bind(null,a),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return i(_)},a.getLanguage=D,a.requireLanguage=function(e){var n=D(e);if(n)return n;throw new Error(\"The '{}' language is required, but not loaded.\".replace(\"{}\",e))},a.autoDetection=L,a.inherit=s,a.debugMode=function(){C=!1},a.IR=a.IDENT_RE=\"[a-zA-Z]\\\\w*\",a.UIR=a.UNDERSCORE_IDENT_RE=\"[a-zA-Z_]\\\\w*\",a.NR=a.NUMBER_RE=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",a.CNR=a.C_NUMBER_RE=\"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",a.BNR=a.BINARY_NUMBER_RE=\"\\\\b(0b[01]+)\",a.RSR=a.RE_STARTERS_RE=\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",a.BE=a.BACKSLASH_ESCAPE={b:\"\\\\\\\\[\\\\s\\\\S]\",relevance:0},a.ASM=a.APOS_STRING_MODE={cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:\"string\",b:'\"',e:'\"',i:\"\\\\n\",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:\"comment\",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:\"doctag\",b:\"(?:TODO|FIXME|NOTE|BUG|XXX):\",relevance:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C(\"//\",\"$\"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C(\"/\\\\*\",\"\\\\*/\"),a.HCM=a.HASH_COMMENT_MODE=a.C(\"#\",\"$\"),a.NM=a.NUMBER_MODE={cN:\"number\",b:a.NR,relevance:0},a.CNM=a.C_NUMBER_MODE={cN:\"number\",b:a.CNR,relevance:0},a.BNM=a.BINARY_NUMBER_MODE={cN:\"number\",b:a.BNR,relevance:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:\"number\",b:a.NR+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",relevance:0},a.RM=a.REGEXP_MODE={cN:\"regexp\",b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[a.BE,{b:/\\[/,e:/\\]/,relevance:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:\"title\",b:a.IR,relevance:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:\"title\",b:a.UIR,relevance:0},a.METHOD_GUARD={b:\"\\\\.\\\\s*\"+a.UIR,relevance:0},[a.BE,a.ASM,a.QSM,a.PWM,a.C,a.CLCM,a.CBCM,a.HCM,a.NM,a.CNM,a.BNM,a.CSSNM,a.RM,a.TM,a.UTM,a.METHOD_GUARD].forEach(function(e){!function n(t){Object.freeze(t);var r=\"function\"==typeof t;Object.getOwnPropertyNames(t).forEach(function(e){!t.hasOwnProperty(e)||null===t[e]||\"object\"!=typeof t[e]&&\"function\"!=typeof t[e]||r&&(\"caller\"===e||\"callee\"===e||\"arguments\"===e)||Object.isFrozen(t[e])||n(t[e])});return t}(e)}),a});hljs.registerLanguage(\"swift\",function(e){var i={keyword:\"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet\",literal:\"true false nil\",built_in:\"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip\"},t=e.C(\"/\\\\*\",\"\\\\*/\",{c:[\"self\"]}),n={cN:\"subst\",b:/\\\\\\(/,e:\"\\\\)\",k:i,c:[]},r={cN:\"string\",c:[e.BE,n],v:[{b:/\"\"\"/,e:/\"\"\"/},{b:/\"/,e:/\"/}]},a={cN:\"number\",b:\"\\\\b([\\\\d_]+(\\\\.[\\\\deE_]+)?|0x[a-fA-F0-9_]+(\\\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\\\b\",relevance:0};return n.c=[a],{k:i,c:[r,e.CLCM,t,{cN:\"type\",b:\"\\\\b[A-Z][\\\\wÀ-ʸ']*[!?]\"},{cN:\"type\",b:\"\\\\b[A-Z][\\\\wÀ-ʸ']*\",relevance:0},a,{cN:\"function\",bK:\"func\",e:\"{\",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{b:/</,e:/>/},{cN:\"params\",b:/\\(/,e:/\\)/,endsParent:!0,k:i,c:[\"self\",a,r,e.CBCM,{b:\":\"}],i:/[\"']/}],i:/\\[|%/},{cN:\"class\",bK:\"struct protocol class extension enum\",k:i,e:\"\\\\{\",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/})]},{cN:\"meta\",b:\"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\"},{bK:\"import\",e:/$/,c:[e.CLCM,t]}]}});hljs.registerLanguage(\"less\",function(e){function r(e){return{cN:\"string\",b:\"~?\"+e+\".*?\"+e}}function t(e,r,t){return{cN:e,b:r,relevance:t}}var a=\"[\\\\w-]+\",c=\"(\"+a+\"|@{\"+a+\"})\",s=[],n=[],b={b:\"\\\\(\",e:\"\\\\)\",c:n,relevance:0};n.push(e.CLCM,e.CBCM,r(\"'\"),r('\"'),e.CSSNM,{b:\"(url|data-uri)\\\\(\",starts:{cN:\"string\",e:\"[\\\\)\\\\n]\",eE:!0}},t(\"number\",\"#[0-9A-Fa-f]+\\\\b\"),b,t(\"variable\",\"@@?\"+a,10),t(\"variable\",\"@{\"+a+\"}\"),t(\"built_in\",\"~?`[^`]*?`\"),{cN:\"attribute\",b:a+\"\\\\s*:\",e:\":\",rB:!0,eE:!0},{cN:\"meta\",b:\"!important\"});var i=n.concat({b:\"{\",e:\"}\",c:s}),l={bK:\"when\",eW:!0,c:[{bK:\"and not\"}].concat(n)},o={b:c+\"\\\\s*:\",rB:!0,e:\"[;}]\",relevance:0,c:[{cN:\"attribute\",b:c,e:\":\",eE:!0,starts:{eW:!0,i:\"[<=$]\",relevance:0,c:n}}]},u={cN:\"keyword\",b:\"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b\",starts:{e:\"[;{}]\",rE:!0,c:n,relevance:0}},v={cN:\"variable\",v:[{b:\"@\"+a+\"\\\\s*:\",relevance:15},{b:\"@\"+a}],starts:{e:\"[;}]\",rE:!0,c:i}},C={v:[{b:\"[\\\\.#:&\\\\[>]\",e:\"[;{}]\"},{b:c,e:\"{\"}],rB:!0,rE:!0,i:\"[<='$\\\"]\",relevance:0,c:[e.CLCM,e.CBCM,l,t(\"keyword\",\"all\\\\b\"),t(\"variable\",\"@{\"+a+\"}\"),t(\"selector-tag\",c+\"%?\",0),t(\"selector-id\",\"#\"+c),t(\"selector-class\",\"\\\\.\"+c,0),t(\"selector-tag\",\"&\",0),{cN:\"selector-attr\",b:\"\\\\[\",e:\"\\\\]\"},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"\\\\(\",e:\"\\\\)\",c:i},{b:\"!important\"}]};return s.push(e.CLCM,e.CBCM,u,v,o,C),{cI:!0,i:\"[=>'/<($\\\"]\",c:s}});hljs.registerLanguage(\"armasm\",function(s){return{cI:!0,aliases:[\"arm\"],l:\"\\\\.?\"+s.IR,k:{meta:\".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND \",built_in:\"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @\"},c:[{cN:\"keyword\",b:\"\\\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?\",e:\"\\\\s\"},s.C(\"[;@]\",\"$\",{relevance:0}),s.CBCM,s.QSM,{cN:\"string\",b:\"'\",e:\"[^\\\\\\\\]'\",relevance:0},{cN:\"title\",b:\"\\\\|\",e:\"\\\\|\",i:\"\\\\n\",relevance:0},{cN:\"number\",v:[{b:\"[#$=]?0x[0-9a-f]+\"},{b:\"[#$=]?0b[01]+\"},{b:\"[#$=]\\\\d+\"},{b:\"\\\\b\\\\d+\"}],relevance:0},{cN:\"symbol\",v:[{b:\"^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+\"},{b:\"^\\\\s*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:\"},{b:\"[=#]\\\\w+\"}],relevance:0}]}});hljs.registerLanguage(\"ruby\",function(e){var c=\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\",b={keyword:\"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor\",literal:\"true false nil\"},r={cN:\"doctag\",b:\"@[A-Za-z]+\"},a={b:\"#<\",e:\">\"},n=[e.C(\"#\",\"$\",{c:[r]}),e.C(\"^\\\\=begin\",\"^\\\\=end\",{c:[r],relevance:10}),e.C(\"^__END__\",\"\\\\n$\")],s={cN:\"subst\",b:\"#\\\\{\",e:\"}\",k:b},t={cN:\"string\",c:[e.BE,s],v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/`/,e:/`/},{b:\"%[qQwWx]?\\\\(\",e:\"\\\\)\"},{b:\"%[qQwWx]?\\\\[\",e:\"\\\\]\"},{b:\"%[qQwWx]?{\",e:\"}\"},{b:\"%[qQwWx]?<\",e:\">\"},{b:\"%[qQwWx]?/\",e:\"/\"},{b:\"%[qQwWx]?%\",e:\"%\"},{b:\"%[qQwWx]?-\",e:\"-\"},{b:\"%[qQwWx]?\\\\|\",e:\"\\\\|\"},{b:/\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b/},{b:/<<[-~]?'?(\\w+)(?:.|\\n)*?\\n\\s*\\1\\b/,rB:!0,c:[{b:/<<[-~]?'?/},{b:/\\w+/,endSameAsBegin:!0,c:[e.BE,s]}]}]},i={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",endsParent:!0,k:b},l=[t,a,{cN:\"class\",bK:\"class module\",e:\"$|;\",i:/=/,c:[e.inherit(e.TM,{b:\"[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|\\\\!)?\"}),{b:\"<\\\\s*\",c:[{b:\"(\"+e.IR+\"::)?\"+e.IR}]}].concat(n)},{cN:\"function\",bK:\"def\",e:\"$|;\",c:[e.inherit(e.TM,{b:c}),i].concat(n)},{b:e.IR+\"::\"},{cN:\"symbol\",b:e.UIR+\"(\\\\!|\\\\?)?:\",relevance:0},{cN:\"symbol\",b:\":(?!\\\\s)\",c:[t,{b:c}],relevance:0},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",relevance:0},{b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{cN:\"params\",b:/\\|/,e:/\\|/,k:b},{b:\"(\"+e.RSR+\"|unless)\\\\s*\",k:\"unless\",c:[a,{cN:\"regexp\",c:[e.BE,s],i:/\\n/,v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r{\",e:\"}[a-z]*\"},{b:\"%r\\\\(\",e:\"\\\\)[a-z]*\"},{b:\"%r!\",e:\"![a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}].concat(n),relevance:0}].concat(n);s.c=l;var d=[{b:/^\\s*=>/,starts:{e:\"$\",c:i.c=l}},{cN:\"meta\",b:\"^([>?]>|[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>|(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d(p\\\\d+)?[^>]+>)\",starts:{e:\"$\",c:l}}];return{aliases:[\"rb\",\"gemspec\",\"podspec\",\"thor\",\"irb\"],k:b,i:/\\/\\*/,c:n.concat(d).concat(l)}});hljs.registerLanguage(\"lua\",function(e){var t=\"\\\\[=*\\\\[\",a=\"\\\\]=*\\\\]\",n={b:t,e:a,c:[\"self\"]},l=[e.C(\"--(?!\"+t+\")\",\"$\"),e.C(\"--\"+t,a,{c:[n],relevance:10})];return{l:e.UIR,k:{literal:\"true false nil\",keyword:\"and break do else elseif end for goto if in local not or repeat return then until while\",built_in:\"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstringmodule next pairs pcall print rawequal rawget rawset require select setfenvsetmetatable tonumber tostring type unpack xpcall arg selfcoroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove\"},c:l.concat([{cN:\"function\",bK:\"function\",e:\"\\\\)\",c:[e.inherit(e.TM,{b:\"([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*\"}),{cN:\"params\",b:\"\\\\(\",eW:!0,c:l}].concat(l)},e.CNM,e.ASM,e.QSM,{cN:\"string\",b:t,e:a,c:[n],relevance:5}])}});hljs.registerLanguage(\"matlab\",function(e){var a=\"('|\\\\.')+\",s={relevance:0,c:[{b:a}]};return{k:{keyword:\"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while\",built_in:\"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell \"},i:'(//|\"|#|/\\\\*|\\\\s+/\\\\w+)',c:[{cN:\"function\",bK:\"function\",e:\"$\",c:[e.UTM,{cN:\"params\",v:[{b:\"\\\\(\",e:\"\\\\)\"},{b:\"\\\\[\",e:\"\\\\]\"}]}]},{cN:\"built_in\",b:/true|false/,relevance:0,starts:s},{b:\"[a-zA-Z][a-zA-Z_0-9]*\"+a,relevance:0},{cN:\"number\",b:e.CNR,relevance:0,starts:s},{cN:\"string\",b:\"'\",e:\"'\",c:[e.BE,{b:\"''\"}]},{b:/\\]|}|\\)/,relevance:0,starts:s},{cN:\"string\",b:'\"',e:'\"',c:[e.BE,{b:'\"\"'}],starts:s},e.C(\"^\\\\s*\\\\%\\\\{\\\\s*$\",\"^\\\\s*\\\\%\\\\}\\\\s*$\"),e.C(\"\\\\%\",\"$\")]}});hljs.registerLanguage(\"apache\",function(e){var r={cN:\"number\",b:\"[\\\\$%]\\\\d+\"};return{aliases:[\"apacheconf\"],cI:!0,c:[e.HCM,{cN:\"section\",b:\"</?\",e:\">\"},{cN:\"attribute\",b:/\\w+/,relevance:0,k:{nomarkup:\"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername\"},starts:{e:/$/,relevance:0,k:{literal:\"on off all\"},c:[{cN:\"meta\",b:\"\\\\s\\\\[\",e:\"\\\\]$\"},{cN:\"variable\",b:\"[\\\\$%]\\\\{\",e:\"\\\\}\",c:[\"self\",r]},r,e.QSM]}}],i:/\\S/}});hljs.registerLanguage(\"yaml\",function(e){var b=\"true false yes no null\",a={cN:\"string\",relevance:0,v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/\\S+/}],c:[e.BE,{cN:\"template-variable\",v:[{b:\"{{\",e:\"}}\"},{b:\"%{\",e:\"}\"}]}]};return{cI:!0,aliases:[\"yml\",\"YAML\",\"yaml\"],c:[{cN:\"attr\",v:[{b:\"\\\\w[\\\\w :\\\\/.-]*:(?=[ \\t]|$)\"},{b:'\"\\\\w[\\\\w :\\\\/.-]*\":(?=[ \\t]|$)'},{b:\"'\\\\w[\\\\w :\\\\/.-]*':(?=[ \\t]|$)\"}]},{cN:\"meta\",b:\"^---s*$\",relevance:10},{cN:\"string\",b:\"[\\\\|>]([0-9]?[+-])?[ ]*\\\\n( *)[\\\\S ]+\\\\n(\\\\2[\\\\S ]+\\\\n?)*\"},{b:\"<%[%=-]?\",e:\"[%-]?%>\",sL:\"ruby\",eB:!0,eE:!0,relevance:0},{cN:\"type\",b:\"!\"+e.UIR},{cN:\"type\",b:\"!!\"+e.UIR},{cN:\"meta\",b:\"&\"+e.UIR+\"$\"},{cN:\"meta\",b:\"\\\\*\"+e.UIR+\"$\"},{cN:\"bullet\",b:\"\\\\-(?=[ ]|$)\",relevance:0},e.HCM,{bK:b,k:{literal:b}},{cN:\"number\",b:e.CNR+\"\\\\b\"},a]}});hljs.registerLanguage(\"plaintext\",function(e){return{disableAutodetect:!0}});hljs.registerLanguage(\"erlang-repl\",function(e){return{k:{built_in:\"spawn spawn_link self\",keyword:\"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor\"},c:[{cN:\"meta\",b:\"^[0-9]+> \",relevance:10},e.C(\"%\",\"$\"),{cN:\"number\",b:\"\\\\b(\\\\d+#[a-fA-F0-9]+|\\\\d+(\\\\.\\\\d+)?([eE][-+]?\\\\d+)?)\",relevance:0},e.ASM,e.QSM,{b:\"\\\\?(::)?([A-Z]\\\\w*(::)?)+\"},{b:\"->\"},{b:\"ok\"},{b:\"!\"},{b:\"(\\\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\\\b[a-z'][a-zA-Z0-9_']*)\",relevance:0},{b:\"[A-Z][a-zA-Z0-9_']*\",relevance:0}]}});hljs.registerLanguage(\"cmake\",function(e){return{aliases:[\"cmake.in\"],cI:!0,k:{keyword:\"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined\"},c:[{cN:\"variable\",b:\"\\\\${\",e:\"}\"},e.HCM,e.QSM,e.NM]}});hljs.registerLanguage(\"kotlin\",function(e){var t={keyword:\"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default\",built_in:\"Byte Short Char Int Long Boolean Float Double Void Unit Nothing\",literal:\"true false null\"},a={cN:\"symbol\",b:e.UIR+\"@\"},n={cN:\"subst\",b:\"\\\\${\",e:\"}\",c:[e.CNM]},c={cN:\"variable\",b:\"\\\\$\"+e.UIR},r={cN:\"string\",v:[{b:'\"\"\"',e:'\"\"\"(?=[^\"])',c:[c,n]},{b:\"'\",e:\"'\",i:/\\n/,c:[e.BE]},{b:'\"',e:'\"',i:/\\n/,c:[e.BE,c,n]}]};n.c.push(r);var i={cN:\"meta\",b:\"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*\"+e.UIR+\")?\"},l={cN:\"meta\",b:\"@\"+e.UIR,c:[{b:/\\(/,e:/\\)/,c:[e.inherit(r,{cN:\"meta-string\"})]}]},s={cN:\"number\",b:\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",relevance:0},b=e.C(\"/\\\\*\",\"\\\\*/\",{c:[e.CBCM]}),o={v:[{cN:\"type\",b:e.UIR},{b:/\\(/,e:/\\)/,c:[]}]},d=o;return d.v[1].c=[o],o.v[1].c=[d],{aliases:[\"kt\"],k:t,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,b,{cN:\"keyword\",b:/\\b(break|continue|return|this)\\b/,starts:{c:[{cN:\"symbol\",b:/@\\w+/}]}},a,i,l,{cN:\"function\",bK:\"fun\",e:\"[(]|$\",rB:!0,eE:!0,k:t,i:/fun\\s+(<.*>)?[^\\s\\(]+(\\s+[^\\s\\(]+)\\s*=/,relevance:5,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,relevance:0,c:[e.UTM]},{cN:\"type\",b:/</,e:/>/,k:\"reified\",relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,endsParent:!0,k:t,relevance:0,c:[{b:/:/,e:/[=,\\/]/,eW:!0,c:[o,e.CLCM,b],relevance:0},e.CLCM,b,i,l,r,e.CNM]},b]},{cN:\"class\",bK:\"class interface trait\",e:/[:\\{(]|$/,eE:!0,i:\"extends implements\",c:[{bK:\"public protected internal private constructor\"},e.UTM,{cN:\"type\",b:/</,e:/>/,eB:!0,eE:!0,relevance:0},{cN:\"type\",b:/[,:]\\s*/,e:/[<\\(,]|$/,eB:!0,rE:!0},i,l]},r,{cN:\"meta\",b:\"^#!/usr/bin/env\",e:\"$\",i:\"\\n\"},s]}});hljs.registerLanguage(\"javascript\",function(e){var r=\"<>\",a=\"</>\",t={b:/<[A-Za-z0-9\\\\._:-]+/,e:/\\/[A-Za-z0-9\\\\._:-]+>|\\/>/},c=\"[A-Za-z$_][0-9A-Za-z$_]*\",n={keyword:\"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise\"},s={cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)n?\"},{b:\"\\\\b(0[oO][0-7]+)n?\"},{b:e.CNR+\"n?\"}],relevance:0},o={cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\",k:n,c:[]},i={b:\"html`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"xml\"}},b={b:\"css`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"css\"}},l={cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,o]};o.c=[e.ASM,e.QSM,i,b,l,s,e.RM];var u=o.c.concat([e.CBCM,e.CLCM]);return{aliases:[\"js\",\"jsx\",\"mjs\",\"cjs\"],k:n,c:[{cN:\"meta\",relevance:10,b:/^\\s*['\"]use (strict|asm)['\"]/},{cN:\"meta\",b:/^#!/,e:/$/},e.ASM,e.QSM,i,b,l,e.CLCM,e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\",c:[{cN:\"type\",b:\"\\\\{\",e:\"\\\\}\",relevance:0},{cN:\"variable\",b:c+\"(?=\\\\s*(-)|$)\",endsParent:!0,relevance:0},{b:/(?=[^\\n])\\s/,relevance:0}]}]}),e.CBCM,s,{b:/[{,\\n]\\s*/,relevance:0,c:[{b:c+\"\\\\s*:\",rB:!0,relevance:0,c:[{cN:\"attr\",b:c,relevance:0}]}]},{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{cN:\"function\",b:\"(\\\\(.*?\\\\)|\"+c+\")\\\\s*=>\",rB:!0,e:\"\\\\s*=>\",c:[{cN:\"params\",v:[{b:c},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:n,c:u}]}]},{cN:\"\",b:/\\s/,e:/\\s*/,skip:!0},{v:[{b:r,e:a},{b:t.b,e:t.e}],sL:\"xml\",c:[{b:t.b,e:t.e,skip:!0,c:[\"self\"]}]}],relevance:0},{cN:\"function\",bK:\"function\",e:/\\{/,eE:!0,c:[e.inherit(e.TM,{b:c}),{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,c:u}],i:/\\[|%/},{b:/\\$[(.]/},e.METHOD_GUARD,{cN:\"class\",bK:\"class\",e:/[{;=]/,eE:!0,i:/[:\"\\[\\]]/,c:[{bK:\"extends\"},e.UTM]},{bK:\"constructor get set\",e:/\\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage(\"scss\",function(e){var t=\"@[a-z-]+\",r={cN:\"variable\",b:\"(\\\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\\\b\"},i={cN:\"number\",b:\"#[0-9A-Fa-f]+\"};e.CSSNM,e.QSM,e.ASM,e.CBCM;return{cI:!0,i:\"[=/|']\",c:[e.CLCM,e.CBCM,{cN:\"selector-id\",b:\"\\\\#[A-Za-z0-9_-]+\",relevance:0},{cN:\"selector-class\",b:\"\\\\.[A-Za-z0-9_-]+\",relevance:0},{cN:\"selector-attr\",b:\"\\\\[\",e:\"\\\\]\",i:\"$\"},{cN:\"selector-tag\",b:\"\\\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\\\b\",relevance:0},{cN:\"selector-pseudo\",b:\":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)\"},{cN:\"selector-pseudo\",b:\"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)\"},r,{cN:\"attribute\",b:\"\\\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\\\b\",i:\"[^\\\\s]\"},{b:\"\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b\"},{b:\":\",e:\";\",c:[r,i,e.CSSNM,e.QSM,e.ASM,{cN:\"meta\",b:\"!important\"}]},{b:\"@(page|font-face)\",l:t,k:\"@page @font-face\"},{b:\"@\",e:\"[{;]\",rB:!0,k:\"and or not only\",c:[{b:t,cN:\"keyword\"},r,e.QSM,e.ASM,i,e.CSSNM]}]}});hljs.registerLanguage(\"perl\",function(e){var t=\"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when\",r={cN:\"subst\",b:\"[$@]\\\\{\",e:\"\\\\}\",k:t},s={b:\"->{\",e:\"}\"},n={v:[{b:/\\$\\d/},{b:/[\\$%@](\\^\\w\\b|#\\w+(::\\w+)*|{\\w+}|\\w+(::\\w*)*)/},{b:/[\\$%@][^\\s\\w{]/,relevance:0}]},c=[e.BE,r,n],a=[n,e.HCM,e.C(\"^\\\\=\\\\w\",\"\\\\=cut\",{eW:!0}),s,{cN:\"string\",c:c,v:[{b:\"q[qwxr]?\\\\s*\\\\(\",e:\"\\\\)\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\[\",e:\"\\\\]\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\{\",e:\"\\\\}\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\|\",e:\"\\\\|\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\<\",e:\"\\\\>\",relevance:5},{b:\"qw\\\\s+q\",e:\"q\",relevance:5},{b:\"'\",e:\"'\",c:[e.BE]},{b:'\"',e:'\"'},{b:\"`\",e:\"`\",c:[e.BE]},{b:\"{\\\\w+}\",c:[],relevance:0},{b:\"-?\\\\w+\\\\s*\\\\=\\\\>\",c:[],relevance:0}]},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",relevance:0},{b:\"(\\\\/\\\\/|\"+e.RSR+\"|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*\",k:\"split return print reverse grep\",relevance:0,c:[e.HCM,{cN:\"regexp\",b:\"(s|tr|y)/(\\\\\\\\.|[^/])*/(\\\\\\\\.|[^/])*/[a-z]*\",relevance:10},{cN:\"regexp\",b:\"(m|qr)?/\",e:\"/[a-z]*\",c:[e.BE],relevance:0}]},{cN:\"function\",bK:\"sub\",e:\"(\\\\s*\\\\(.*?\\\\))?[;{]\",eE:!0,relevance:5,c:[e.TM]},{b:\"-\\\\w\\\\b\",relevance:0},{b:\"^__DATA__$\",e:\"^__END__$\",sL:\"mojolicious\",c:[{b:\"^@@.*\",e:\"$\",cN:\"comment\"}]}];return r.c=a,{aliases:[\"pl\",\"pm\"],l:/[\\w\\.]+/,k:t,c:s.c=a}});hljs.registerLanguage(\"go\",function(e){var n={keyword:\"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune\",literal:\"true false iota nil\",built_in:\"append cap close complex copy imag len make new panic print println real recover delete\"};return{aliases:[\"golang\"],k:n,i:\"</\",c:[e.CLCM,e.CBCM,{cN:\"string\",v:[e.QSM,e.ASM,{b:\"`\",e:\"`\"}]},{cN:\"number\",v:[{b:e.CNR+\"[i]\",relevance:1},e.CNM]},{b:/:=/},{cN:\"function\",bK:\"func\",e:\"\\\\s*(\\\\{|$)\",eE:!0,c:[e.TM,{cN:\"params\",b:/\\(/,e:/\\)/,k:n,i:/[\"']/}]}]}});hljs.registerLanguage(\"x86asm\",function(s){return{cI:!0,l:\"[.%]?\"+s.IR,k:{keyword:\"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63\",built_in:\"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr\",meta:\"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__\"},c:[s.C(\";\",\"$\",{relevance:0}),{cN:\"number\",v:[{b:\"\\\\b(?:([0-9][0-9_]*)?\\\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\\\b\",relevance:0},{b:\"\\\\$[0-9][0-9A-Fa-f]*\",relevance:0},{b:\"\\\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\\\b\"},{b:\"\\\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\\\b\"}]},s.QSM,{cN:\"string\",v:[{b:\"'\",e:\"[^\\\\\\\\]'\"},{b:\"`\",e:\"[^\\\\\\\\]`\"}],relevance:0},{cN:\"symbol\",v:[{b:\"^\\\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\\\s+label)\"},{b:\"^\\\\s*%%[A-Za-z0-9_$#@~.?]*:\"}],relevance:0},{cN:\"subst\",b:\"%[0-9]+\",relevance:0},{cN:\"subst\",b:\"%!S+\",relevance:0},{cN:\"meta\",b:/^\\s*\\.[\\w_-]+/}]}});hljs.registerLanguage(\"cpp\",function(e){function t(e){return\"(?:\"+e+\")?\"}var r=\"decltype\\\\(auto\\\\)\",a=\"[a-zA-Z_]\\\\w*::\",i=\"(\"+r+\"|\"+t(a)+\"[a-zA-Z_]\\\\w*\"+t(\"<.*?>\")+\")\",c={cN:\"keyword\",b:\"\\\\b[a-z\\\\d_]*_t\\\\b\"},s={cN:\"string\",v:[{b:'(u8?|U|L)?\"',e:'\"',i:\"\\\\n\",c:[e.BE]},{b:\"(u8?|U|L)?'(\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)|.)\",e:\"'\",i:\".\"},{b:/(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\((?:.|\\n)*?\\)\\1\"/}]},n={cN:\"number\",v:[{b:\"\\\\b(0b[01']+)\"},{b:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{b:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"}],relevance:0},o={cN:\"meta\",b:/#\\s*[a-z]+\\b/,e:/$/,k:{\"meta-keyword\":\"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include\"},c:[{b:/\\\\\\n/,relevance:0},e.inherit(s,{cN:\"meta-string\"}),{cN:\"meta-string\",b:/<.*?>/,e:/$/,i:\"\\\\n\"},e.CLCM,e.CBCM]},l={cN:\"title\",b:t(a)+e.IR,relevance:0},u=t(a)+e.IR+\"\\\\s*\\\\(\",p={keyword:\"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_tshort reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq\",built_in:\"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary\",literal:\"true false nullptr NULL\"},m=[c,e.CLCM,e.CBCM,n,s],d={v:[{b:/=/,e:/;/},{b:/\\(/,e:/\\)/},{bK:\"new throw return else\",e:/;/}],k:p,c:m.concat([{b:/\\(/,e:/\\)/,k:p,c:m.concat([\"self\"]),relevance:0}]),relevance:0},b={cN:\"function\",b:\"(\"+i+\"[\\\\*&\\\\s]+)+\"+u,rB:!0,e:/[{;=]/,eE:!0,k:p,i:/[^\\w\\s\\*&:<>]/,c:[{b:r,k:p,relevance:0},{b:u,rB:!0,c:[l],relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,k:p,relevance:0,c:[e.CLCM,e.CBCM,s,n,c,{b:/\\(/,e:/\\)/,k:p,relevance:0,c:[\"self\",e.CLCM,e.CBCM,s,n,c]}]},c,e.CLCM,e.CBCM,o]};return{aliases:[\"c\",\"cc\",\"h\",\"c++\",\"h++\",\"hpp\",\"hh\",\"hxx\",\"cxx\"],k:p,i:\"</\",c:[].concat(d,b,m,[o,{b:\"\\\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<\",e:\">\",k:p,c:[\"self\",c]},{b:e.IR+\"::\",k:p},{cN:\"class\",bK:\"class struct\",e:/[{;:]/,c:[{b:/</,e:/>/,c:[\"self\"]},e.TM]}]),exports:{preprocessor:o,strings:s,k:p}}});hljs.registerLanguage(\"arduino\",function(e){var t=\"boolean byte word String\",r=\"setup loopKeyboardController MouseController SoftwareSerial EthernetServer EthernetClient LiquidCrystal RobotControl GSMVoiceCall EthernetUDP EsploraTFT HttpClient RobotMotor WiFiClient GSMScanner FileSystem Scheduler GSMServer YunClient YunServer IPAddress GSMClient GSMModem Keyboard Ethernet Console GSMBand Esplora Stepper Process WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage Client Server GSMPIN FileIO Bridge Serial EEPROM Stream Mouse Audio Servo File Task GPRS WiFi Wire TFT GSM SPI SD runShellCommandAsynchronously analogWriteResolution retrieveCallingNumber printFirmwareVersion analogReadResolution sendDigitalPortPair noListenOnLocalhost readJoystickButton setFirmwareVersion readJoystickSwitch scrollDisplayRight getVoiceCallStatus scrollDisplayLeft writeMicroseconds delayMicroseconds beginTransmission getSignalStrength runAsynchronously getAsynchronously listenOnLocalhost getCurrentCarrier readAccelerometer messageAvailable sendDigitalPorts lineFollowConfig countryNameWrite runShellCommand readStringUntil rewindDirectory readTemperature setClockDivider readLightSensor endTransmission analogReference detachInterrupt countryNameRead attachInterrupt encryptionType readBytesUntil robotNameWrite readMicrophone robotNameRead cityNameWrite userNameWrite readJoystickY readJoystickX mouseReleased openNextFile scanNetworks noInterrupts digitalWrite beginSpeaker mousePressed isActionDone mouseDragged displayLogos noAutoscroll addParameter remoteNumber getModifiers keyboardRead userNameRead waitContinue processInput parseCommand printVersion readNetworks writeMessage blinkVersion cityNameRead readMessage setDataMode parsePacket isListening setBitOrder beginPacket isDirectory motorsWrite drawCompass digitalRead clearScreen serialEvent rightToLeft setTextSize leftToRight requestFrom keyReleased compassRead analogWrite interrupts WiFiServer disconnect playMelody parseFloat autoscroll getPINUsed setPINUsed setTimeout sendAnalog readSlider analogRead beginWrite createChar motorsStop keyPressed tempoWrite readButton subnetMask debugPrint macAddress writeGreen randomSeed attachGPRS readString sendString remotePort releaseAll mouseMoved background getXChange getYChange answerCall getResult voiceCall endPacket constrain getSocket writeJSON getButton available connected findUntil readBytes exitValue readGreen writeBlue startLoop IPAddress isPressed sendSysex pauseMode gatewayIP setCursor getOemKey tuneWrite noDisplay loadImage switchPIN onRequest onReceive changePIN playFile noBuffer parseInt overflow checkPIN knobRead beginTFT bitClear updateIR bitWrite position writeRGB highByte writeRed setSpeed readBlue noStroke remoteIP transfer shutdown hangCall beginSMS endWrite attached maintain noCursor checkReg checkPUK shiftOut isValid shiftIn pulseIn connect println localIP pinMode getIMEI display noBlink process getBand running beginSD drawBMP lowByte setBand release bitRead prepare pointTo readRed setMode noFill remove listen stroke detach attach noTone exists buffer height bitSet circle config cursor random IRread setDNS endSMS getKey micros millis begin print write ready flush width isPIN blink clear press mkdir rmdir close point yield image BSSID click delay read text move peek beep rect line open seek fill size turn stop home find step tone sqrt RSSI SSID end bit tan cos sin pow map abs max min get run put\",i=\"DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL DEFAULT OUTPUT INPUT HIGH LOW\",o=e.requireLanguage(\"cpp\").rawDefinition(),a=o.k;return a.keyword+=\" \"+t,a.literal+=\" \"+i,a.built_in+=\" \"+r,o});hljs.registerLanguage(\"nginx\",function(e){var r={cN:\"variable\",v:[{b:/\\$\\d+/},{b:/\\$\\{/,e:/}/},{b:\"[\\\\$\\\\@]\"+e.UIR}]},b={eW:!0,l:\"[a-z/_]+\",k:{literal:\"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll\"},relevance:0,i:\"=>\",c:[e.HCM,{cN:\"string\",c:[e.BE,r],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/}]},{b:\"([a-z]+):/\",e:\"\\\\s\",eW:!0,eE:!0,c:[r]},{cN:\"regexp\",c:[e.BE,r],v:[{b:\"\\\\s\\\\^\",e:\"\\\\s|{|;\",rE:!0},{b:\"~\\\\*?\\\\s+\",e:\"\\\\s|{|;\",rE:!0},{b:\"\\\\*(\\\\.[a-z\\\\-]+)+\"},{b:\"([a-z\\\\-]+\\\\.)+\\\\*\"}]},{cN:\"number\",b:\"\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b\"},{cN:\"number\",b:\"\\\\b\\\\d+[kKmMgGdshdwy]*\\\\b\",relevance:0},r]};return{aliases:[\"nginxconf\"],c:[e.HCM,{b:e.UIR+\"\\\\s+{\",rB:!0,e:\"{\",c:[{cN:\"section\",b:e.UIR}],relevance:0},{b:e.UIR+\"\\\\s\",e:\";|{\",rB:!0,c:[{cN:\"attribute\",b:e.UIR,starts:b}],relevance:0}],i:\"[^\\\\s\\\\}]\"}});hljs.registerLanguage(\"xml\",function(e){var c={cN:\"symbol\",b:\"&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;\"},s={b:\"\\\\s\",c:[{cN:\"meta-keyword\",b:\"#?[a-z_][a-z1-9_-]+\",i:\"\\\\n\"}]},a=e.inherit(s,{b:\"\\\\(\",e:\"\\\\)\"}),t=e.inherit(e.ASM,{cN:\"meta-string\"}),l=e.inherit(e.QSM,{cN:\"meta-string\"}),r={eW:!0,i:/</,relevance:0,c:[{cN:\"attr\",b:\"[A-Za-z0-9\\\\._:-]+\",relevance:0},{b:/=\\s*/,relevance:0,c:[{cN:\"string\",endsParent:!0,v:[{b:/\"/,e:/\"/,c:[c]},{b:/'/,e:/'/,c:[c]},{b:/[^\\s\"'=<>`]+/}]}]}]};return{aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xjb\",\"xsd\",\"xsl\",\"plist\",\"wsf\",\"svg\"],cI:!0,c:[{cN:\"meta\",b:\"<![a-z]\",e:\">\",relevance:10,c:[s,l,t,a,{b:\"\\\\[\",e:\"\\\\]\",c:[{cN:\"meta\",b:\"<![a-z]\",e:\">\",c:[s,a,l,t]}]}]},e.C(\"\\x3c!--\",\"--\\x3e\",{relevance:10}),{b:\"<\\\\!\\\\[CDATA\\\\[\",e:\"\\\\]\\\\]>\",relevance:10},c,{cN:\"meta\",b:/<\\?xml/,e:/\\?>/,relevance:10},{b:/<\\?(php)?/,e:/\\?>/,sL:\"php\",c:[{b:\"/\\\\*\",e:\"\\\\*/\",skip:!0},{b:'b\"',e:'\"',skip:!0},{b:\"b'\",e:\"'\",skip:!0},e.inherit(e.ASM,{i:null,cN:null,c:null,skip:!0}),e.inherit(e.QSM,{i:null,cN:null,c:null,skip:!0})]},{cN:\"tag\",b:\"<style(?=\\\\s|>)\",e:\">\",k:{name:\"style\"},c:[r],starts:{e:\"</style>\",rE:!0,sL:[\"css\",\"xml\"]}},{cN:\"tag\",b:\"<script(?=\\\\s|>)\",e:\">\",k:{name:\"script\"},c:[r],starts:{e:\"<\\/script>\",rE:!0,sL:[\"actionscript\",\"javascript\",\"handlebars\",\"xml\"]}},{cN:\"tag\",b:\"</?\",e:\"/?>\",c:[{cN:\"name\",b:/[^\\/><\\s]+/,relevance:0},r]}]}});hljs.registerLanguage(\"markdown\",function(e){return{aliases:[\"md\",\"mkdown\",\"mkd\"],c:[{cN:\"section\",v:[{b:\"^#{1,6}\",e:\"$\"},{b:\"^.+?\\\\n[=-]{2,}$\"}]},{b:\"<\",e:\">\",sL:\"xml\",relevance:0},{cN:\"bullet\",b:\"^\\\\s*([*+-]|(\\\\d+\\\\.))\\\\s+\"},{cN:\"strong\",b:\"[*_]{2}.+?[*_]{2}\"},{cN:\"emphasis\",v:[{b:\"\\\\*.+?\\\\*\"},{b:\"_.+?_\",relevance:0}]},{cN:\"quote\",b:\"^>\\\\s+\",e:\"$\"},{cN:\"code\",v:[{b:\"^```\\\\w*\\\\s*$\",e:\"^```[ ]*$\"},{b:\"`.+?`\"},{b:\"^( {4}|\\\\t)\",e:\"$\",relevance:0}]},{b:\"^[-\\\\*]{3,}\",e:\"$\"},{b:\"\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]\",rB:!0,c:[{cN:\"string\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,rE:!0,relevance:0},{cN:\"link\",b:\"\\\\]\\\\(\",e:\"\\\\)\",eB:!0,eE:!0},{cN:\"symbol\",b:\"\\\\]\\\\[\",e:\"\\\\]\",eB:!0,eE:!0}],relevance:10},{b:/^\\[[^\\n]+\\]:/,rB:!0,c:[{cN:\"symbol\",b:/\\[/,e:/\\]/,eB:!0,eE:!0},{cN:\"link\",b:/:\\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage(\"properties\",function(e){var r=\"[ \\\\t\\\\f]*\",t=\"(\"+r+\"[:=]\"+r+\"|[ \\\\t\\\\f]+)\",n=\"([^\\\\\\\\\\\\W:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\",a=\"([^\\\\\\\\:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\",c={e:t,relevance:0,starts:{cN:\"string\",e:/$/,relevance:0,c:[{b:\"\\\\\\\\\\\\n\"}]}};return{cI:!0,i:/\\S/,c:[e.C(\"^\\\\s*[!#]\",\"$\"),{b:n+t,rB:!0,c:[{cN:\"attr\",b:n,endsParent:!0,relevance:0}],starts:c},{b:a+t,rB:!0,relevance:0,c:[{cN:\"meta\",b:a,endsParent:!0,relevance:0}],starts:c},{cN:\"attr\",relevance:0,b:a+r+\"$\"}]}});hljs.registerLanguage(\"bash\",function(e){var t={cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},a={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,t,{cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]}]};return{aliases:[\"sh\",\"zsh\"],l:/\\b-?[a-z\\._]+\\b/,k:{keyword:\"if then else elif fi for while in do done case esac function\",literal:\"true false\",built_in:\"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp\",_:\"-ne -eq -lt -gt -f -d -e -s -l -a\"},c:[{cN:\"meta\",b:/^#![^\\n]+sh\\s*$/,relevance:10},{cN:\"function\",b:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,rB:!0,c:[e.inherit(e.TM,{b:/\\w[\\w\\d_]*/})],relevance:0},e.HCM,a,{cN:\"\",b:/\\\\\"/},{cN:\"string\",b:/'/,e:/'/},t]}});hljs.registerLanguage(\"dockerfile\",function(e){return{aliases:[\"docker\"],cI:!0,k:\"from maintainer expose env arg user onbuild stopsignal\",c:[e.HCM,e.ASM,e.QSM,e.NM,{bK:\"run cmd entrypoint volume add copy workdir label healthcheck shell\",starts:{e:/[^\\\\]$/,sL:\"bash\"}}],i:\"</\"}});hljs.registerLanguage(\"python\",function(e){var r={keyword:\"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10\",built_in:\"Ellipsis NotImplemented\",literal:\"False None True\"},b={cN:\"meta\",b:/^(>>>|\\.\\.\\.) /},c={cN:\"subst\",b:/\\{/,e:/\\}/,k:r,i:/#/},a={b:/\\{\\{/,relevance:0},l={cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[e.BE,b],relevance:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,c:[e.BE,b],relevance:10},{b:/(fr|rf|f)'''/,e:/'''/,c:[e.BE,b,a,c]},{b:/(fr|rf|f)\"\"\"/,e:/\"\"\"/,c:[e.BE,b,a,c]},{b:/(u|r|ur)'/,e:/'/,relevance:10},{b:/(u|r|ur)\"/,e:/\"/,relevance:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},{b:/(fr|rf|f)'/,e:/'/,c:[e.BE,a,c]},{b:/(fr|rf|f)\"/,e:/\"/,c:[e.BE,a,c]},e.ASM,e.QSM]},n={cN:\"number\",relevance:0,v:[{b:e.BNR+\"[lLjJ]?\"},{b:\"\\\\b(0o[0-7]+)[lLjJ]?\"},{b:e.CNR+\"[lLjJ]?\"}]},i={cN:\"params\",b:/\\(/,e:/\\)/,c:[\"self\",b,n,l,e.HCM]};return c.c=[l,n,b],{aliases:[\"py\",\"gyp\",\"ipython\"],k:r,i:/(<\\/|->|\\?)|=>/,c:[b,n,{bK:\"if\",relevance:0},l,e.HCM,{v:[{cN:\"function\",bK:\"def\"},{cN:\"class\",bK:\"class\"}],e:/:/,i:/[${=;\\n,]/,c:[e.UTM,i,{b:/->/,eW:!0,k:\"None\"}]},{cN:\"meta\",b:/^[\\t ]*@/,e:/$/},{b:/\\b(print|exec)\\(/}]}});hljs.registerLanguage(\"ini\",function(e){var b={cN:\"number\",relevance:0,v:[{b:/([\\+\\-]+)?[\\d]+_[\\d_]+/},{b:e.NR}]},a=e.C();a.v=[{b:/;/,e:/$/},{b:/#/,e:/$/}];var c={cN:\"variable\",v:[{b:/\\$[\\w\\d\"][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},r={cN:\"literal\",b:/\\bon|off|true|false|yes|no\\b/},n={cN:\"string\",c:[e.BE],v:[{b:\"'''\",e:\"'''\",relevance:10},{b:'\"\"\"',e:'\"\"\"',relevance:10},{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]};return{aliases:[\"toml\"],cI:!0,i:/\\S/,c:[a,{cN:\"section\",b:/\\[+/,e:/\\]+/},{b:/^[a-z0-9\\[\\]_\\.-]+(?=\\s*=\\s*)/,cN:\"attr\",starts:{e:/$/,c:[a,{b:/\\[/,e:/\\]/,c:[a,r,c,n,b,\"self\"],relevance:0},r,c,n,b]}}]}});hljs.registerLanguage(\"diff\",function(e){return{aliases:[\"patch\"],c:[{cN:\"meta\",relevance:10,v:[{b:/^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@$/},{b:/^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/},{b:/^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$/}]},{cN:\"comment\",v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\\-{3}/,e:/$/},{b:/^\\*{3} /,e:/$/},{b:/^\\+{3}/,e:/$/},{b:/^\\*{15}$/}]},{cN:\"addition\",b:\"^\\\\+\",e:\"$\"},{cN:\"deletion\",b:\"^\\\\-\",e:\"$\"},{cN:\"addition\",b:\"^\\\\!\",e:\"$\"}]}});hljs.registerLanguage(\"http\",function(e){var t=\"HTTP/[0-9\\\\.]+\";return{aliases:[\"https\"],i:\"\\\\S\",c:[{b:\"^\"+t,e:\"$\",c:[{cN:\"number\",b:\"\\\\b\\\\d{3}\\\\b\"}]},{b:\"^[A-Z]+ (.*?) \"+t+\"$\",rB:!0,e:\"$\",c:[{cN:\"string\",b:\" \",e:\" \",eB:!0,eE:!0},{b:t},{cN:\"keyword\",b:\"[A-Z]+\"}]},{cN:\"attribute\",b:\"^\\\\w\",e:\": \",eE:!0,i:\"\\\\n|\\\\s|=\",starts:{e:\"$\",relevance:0}},{b:\"\\\\n\\\\n\",starts:{sL:[],eW:!0}}]}});hljs.registerLanguage(\"sql\",function(e){var t=e.C(\"--\",\"$\");return{cI:!0,i:/[<>{}*]/,c:[{bK:\"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with\",e:/;/,eW:!0,l:/[\\w\\.]+/,k:{keyword:\"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek\",literal:\"true false null unknown\",built_in:\"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void\"},c:[{cN:\"string\",b:\"'\",e:\"'\",c:[{b:\"''\"}]},{cN:\"string\",b:'\"',e:'\"',c:[{b:'\"\"'}]},{cN:\"string\",b:\"`\",e:\"`\"},e.CNM,e.CBCM,t,e.HCM]},e.CBCM,t,e.HCM]}});hljs.registerLanguage(\"vala\",function(e){return{k:{keyword:\"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var\",built_in:\"DBus GLib CCode Gee Object Gtk Posix\",literal:\"false true null\"},c:[{cN:\"class\",bK:\"class interface namespace\",e:\"{\",eE:!0,i:\"[^,:\\\\n\\\\s\\\\.]\",c:[e.UTM]},e.CLCM,e.CBCM,{cN:\"string\",b:'\"\"\"',e:'\"\"\"',relevance:5},e.ASM,e.QSM,e.CNM,{cN:\"meta\",b:\"^#\",e:\"$\",relevance:2}]}});hljs.registerLanguage(\"asciidoc\",function(e){return{aliases:[\"adoc\"],c:[e.C(\"^/{4,}\\\\n\",\"\\\\n/{4,}$\",{relevance:10}),e.C(\"^//\",\"$\",{relevance:0}),{cN:\"title\",b:\"^\\\\.\\\\w.*$\"},{b:\"^[=\\\\*]{4,}\\\\n\",e:\"\\\\n^[=\\\\*]{4,}$\",relevance:10},{cN:\"section\",relevance:10,v:[{b:\"^(={1,5}) .+?( \\\\1)?$\"},{b:\"^[^\\\\[\\\\]\\\\n]+?\\\\n[=\\\\-~\\\\^\\\\+]{2,}$\"}]},{cN:\"meta\",b:\"^:.+?:\",e:\"\\\\s\",eE:!0,relevance:10},{cN:\"meta\",b:\"^\\\\[.+?\\\\]$\",relevance:0},{cN:\"quote\",b:\"^_{4,}\\\\n\",e:\"\\\\n_{4,}$\",relevance:10},{cN:\"code\",b:\"^[\\\\-\\\\.]{4,}\\\\n\",e:\"\\\\n[\\\\-\\\\.]{4,}$\",relevance:10},{b:\"^\\\\+{4,}\\\\n\",e:\"\\\\n\\\\+{4,}$\",c:[{b:\"<\",e:\">\",sL:\"xml\",relevance:0}],relevance:10},{cN:\"bullet\",b:\"^(\\\\*+|\\\\-+|\\\\.+|[^\\\\n]+?::)\\\\s+\"},{cN:\"symbol\",b:\"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\\\s+\",relevance:10},{cN:\"strong\",b:\"\\\\B\\\\*(?![\\\\*\\\\s])\",e:\"(\\\\n{2}|\\\\*)\",c:[{b:\"\\\\\\\\*\\\\w\",relevance:0}]},{cN:\"emphasis\",b:\"\\\\B'(?!['\\\\s])\",e:\"(\\\\n{2}|')\",c:[{b:\"\\\\\\\\'\\\\w\",relevance:0}],relevance:0},{cN:\"emphasis\",b:\"_(?![_\\\\s])\",e:\"(\\\\n{2}|_)\",relevance:0},{cN:\"string\",v:[{b:\"``.+?''\"},{b:\"`.+?'\"}]},{cN:\"code\",b:\"(`.+?`|\\\\+.+?\\\\+)\",relevance:0},{cN:\"code\",b:\"^[ \\\\t]\",e:\"$\",relevance:0},{b:\"^'{3,}[ \\\\t]*$\",relevance:10},{b:\"(link:)?(http|https|ftp|file|irc|image:?):\\\\S+\\\\[.*?\\\\]\",rB:!0,c:[{b:\"(link|image:?):\",relevance:0},{cN:\"link\",b:\"\\\\w\",e:\"[^\\\\[]+\",relevance:0},{cN:\"string\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,eE:!0,relevance:0}],relevance:10}]}});hljs.registerLanguage(\"json\",function(e){var i={literal:\"true false null\"},n=[e.CLCM,e.CBCM],c=[e.QSM,e.CNM],r={e:\",\",eW:!0,eE:!0,c:c,k:i},t={b:\"{\",e:\"}\",c:[{cN:\"attr\",b:/\"/,e:/\"/,c:[e.BE],i:\"\\\\n\"},e.inherit(r,{b:/:/})].concat(n),i:\"\\\\S\"},a={b:\"\\\\[\",e:\"\\\\]\",c:[e.inherit(r)],i:\"\\\\S\"};return c.push(t,a),n.forEach(function(e){c.push(e)}),{c:c,k:i,i:\"\\\\S\"}});hljs.registerLanguage(\"rust\",function(e){var t=\"([ui](8|16|32|64|128|size)|f(32|64))?\",r=\"drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!\";return{aliases:[\"rs\"],k:{keyword:\"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield\",literal:\"true false Some None Ok Err\",built_in:r},l:e.IR+\"!?\",i:\"</\",c:[e.CLCM,e.C(\"/\\\\*\",\"\\\\*/\",{c:[\"self\"]}),e.inherit(e.QSM,{b:/b?\"/,i:null}),{cN:\"string\",v:[{b:/r(#*)\"(.|\\n)*?\"\\1(?!#)/},{b:/b?'\\\\?(x\\w{2}|u\\w{4}|U\\w{8}|.)'/}]},{cN:\"symbol\",b:/'[a-zA-Z_][a-zA-Z0-9_]*/},{cN:\"number\",v:[{b:\"\\\\b0b([01_]+)\"+t},{b:\"\\\\b0o([0-7_]+)\"+t},{b:\"\\\\b0x([A-Fa-f0-9_]+)\"+t},{b:\"\\\\b(\\\\d[\\\\d_]*(\\\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)\"+t}],relevance:0},{cN:\"function\",bK:\"fn\",e:\"(\\\\(|<)\",eE:!0,c:[e.UTM]},{cN:\"meta\",b:\"#\\\\!?\\\\[\",e:\"\\\\]\",c:[{cN:\"meta-string\",b:/\"/,e:/\"/}]},{cN:\"class\",bK:\"type\",e:\";\",c:[e.inherit(e.UTM,{endsParent:!0})],i:\"\\\\S\"},{cN:\"class\",bK:\"trait enum struct union\",e:\"{\",c:[e.inherit(e.UTM,{endsParent:!0})],i:\"[\\\\w\\\\d]\"},{b:e.IR+\"::\",k:{built_in:r}},{b:\"->\"}]}});hljs.registerLanguage(\"awk\",function(e){return{k:{keyword:\"BEGIN END if else while do for in break continue delete next nextfile function func exit|10\"},c:[{cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},{cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,relevance:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,relevance:10},{b:/(u|r|ur)'/,e:/'/,relevance:10},{b:/(u|r|ur)\"/,e:/\"/,relevance:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},e.ASM,e.QSM]},e.RM,e.HCM,e.NM]}});hljs.registerLanguage(\"java\",function(e){var a=\"false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do\",t={cN:\"number\",b:\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",relevance:0};return{aliases:[\"jsp\"],k:a,i:/<\\/|#/,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{b:/\\w+@/,relevance:0},{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:\"class\",bK:\"class interface\",e:/[{;=]/,eE:!0,k:\"class interface\",i:/[:\"\\[\\]]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"new throw return else\",relevance:0},{cN:\"function\",b:\"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\\\s*,\\\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\\\s+)+\"+e.UIR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:a,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,relevance:0,c:[e.UTM]},{cN:\"params\",b:/\\(/,e:/\\)/,k:a,relevance:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},t,{cN:\"meta\",b:\"@[A-Za-z]+\"}]}});hljs.registerLanguage(\"cs\",function(e){var a={keyword:\"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield\",literal:\"null false true\"},i={cN:\"number\",v:[{b:\"\\\\b(0b[01']+)\"},{b:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{b:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"}],relevance:0},c={cN:\"string\",b:'@\"',e:'\"',c:[{b:'\"\"'}]},r=e.inherit(c,{i:/\\n/}),n={cN:\"subst\",b:\"{\",e:\"}\",k:a},t=e.inherit(n,{i:/\\n/}),s={cN:\"string\",b:/\\$\"/,e:'\"',i:/\\n/,c:[{b:\"{{\"},{b:\"}}\"},e.BE,t]},l={cN:\"string\",b:/\\$@\"/,e:'\"',c:[{b:\"{{\"},{b:\"}}\"},{b:'\"\"'},n]},b=e.inherit(l,{i:/\\n/,c:[{b:\"{{\"},{b:\"}}\"},{b:'\"\"'},t]});n.c=[l,s,c,e.ASM,e.QSM,i,e.CBCM],t.c=[b,s,r,e.ASM,e.QSM,i,e.inherit(e.CBCM,{i:/\\n/})];var o={v:[l,s,c,e.ASM,e.QSM]},d=e.IR+\"(<\"+e.IR+\"(\\\\s*,\\\\s*\"+e.IR+\")*>)?(\\\\[\\\\])?\";return{aliases:[\"csharp\",\"c#\"],k:a,i:/::/,c:[e.C(\"///\",\"$\",{rB:!0,c:[{cN:\"doctag\",v:[{b:\"///\",relevance:0},{b:\"\\x3c!--|--\\x3e\"},{b:\"</?\",e:\">\"}]}]}),e.CLCM,e.CBCM,{cN:\"meta\",b:\"#\",e:\"$\",k:{\"meta-keyword\":\"if else elif endif define undef warning error line region endregion pragma checksum\"}},o,i,{bK:\"class interface\",e:/[{;=]/,i:/[^\\s:,]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:\"namespace\",e:/[{;=]/,i:/[^\\s:]/,c:[e.inherit(e.TM,{b:\"[a-zA-Z](\\\\.?\\\\w)*\"}),e.CLCM,e.CBCM]},{cN:\"meta\",b:\"^\\\\s*\\\\[\",eB:!0,e:\"\\\\]\",eE:!0,c:[{cN:\"meta-string\",b:/\"/,e:/\"/}]},{bK:\"new return throw await else\",relevance:0},{cN:\"function\",b:\"(\"+d+\"\\\\s+)+\"+e.IR+\"\\\\s*\\\\(\",rB:!0,e:/\\s*[{;=]/,eE:!0,k:a,c:[{b:e.IR+\"\\\\s*\\\\(\",rB:!0,c:[e.TM],relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:a,relevance:0,c:[o,i,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage(\"mathematica\",function(e){return{aliases:[\"mma\",\"wl\"],l:\"(\\\\$|\\\\b)\"+e.IR+\"\\\\b\",k:\"AASTriangle AbelianGroup Abort AbortKernels AbortProtect AbortScheduledTask Above Abs AbsArg AbsArgPlot Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AcceptanceThreshold AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Activate Active ActiveClassification ActiveClassificationObject ActiveItem ActivePrediction ActivePredictionObject ActiveStyle AcyclicGraphQ AddOnHelpPath AddSides AddTo AddToSearchIndex AddUsers AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AdministrativeDivisionData AffineHalfSpace AffineSpace AffineStateSpaceModel AffineTransform After AggregatedEntityClass AggregationLayer AircraftData AirportData AirPressureData AirTemperatureData AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowAdultContent AllowedCloudExtraParameters AllowedCloudParameterExtensions AllowedDimensions AllowedFrequencyRange AllowedHeads AllowGroupClose AllowIncomplete AllowInlineCells AllowKernelInitialization AllowLooseGrammar AllowReverseGroupClose AllowScriptLevelChange AllTrue Alphabet AlphabeticOrder AlphabeticSort AlphaChannel AlternateImage AlternatingFactorial AlternatingGroup AlternativeHypothesis Alternatives AltitudeMethod AmbientLight AmbiguityFunction AmbiguityList Analytic AnatomyData AnatomyForm AnatomyPlot3D AnatomySkinStyle AnatomyStyling AnchoredSearch And AndersonDarlingTest AngerJ AngleBisector AngleBracket AnglePath AnglePath3D AngleVector AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning AnimationRunTime AnimationTimeIndex Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotate Annotation AnnotationDelete AnnotationNames AnnotationRules AnnotationValue Annuity AnnuityDue Annulus AnomalyDetection AnomalyDetectorFunction Anonymous Antialiasing AntihermitianMatrixQ Antisymmetric AntisymmetricMatrixQ Antonyms AnyOrder AnySubset AnyTrue Apart ApartSquareFree APIFunction Appearance AppearanceElements AppearanceRules AppellF1 Append AppendCheck AppendLayer AppendTo ApplicationIdentificationKey Apply ApplySides ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcCurvature ARCHProcess ArcLength ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Area Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess Around AroundReplace ARProcess Array ArrayComponents ArrayDepth ArrayFilter ArrayFlatten ArrayMesh ArrayPad ArrayPlot ArrayQ ArrayResample ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads ASATriangle Ask AskAppend AskConfirm AskDisplay AskedQ AskedValue AskFunction AskState AskTemplateDisplay AspectRatio AspectRatioFixed Assert AssociateTo Association AssociationFormat AssociationMap AssociationQ AssociationThread AssumeDeterministic Assuming Assumptions AstronomicalData AsymptoticDSolveValue AsymptoticEqual AsymptoticEquivalent AsymptoticGreater AsymptoticGreaterEqual AsymptoticIntegrate AsymptoticLess AsymptoticLessEqual AsymptoticOutputTracker AsymptoticRSolveValue AsymptoticSolve AsymptoticSum Asynchronous AsynchronousTaskObject AsynchronousTasks Atom AtomCoordinates AtomCount AtomDiagramCoordinates AtomList AtomQ AttentionLayer Attributes Audio AudioAmplify AudioAnnotate AudioAnnotationLookup AudioBlockMap AudioCapture AudioChannelAssignment AudioChannelCombine AudioChannelMix AudioChannels AudioChannelSeparate AudioData AudioDelay AudioDelete AudioDevice AudioDistance AudioFade AudioFrequencyShift AudioGenerator AudioIdentify AudioInputDevice AudioInsert AudioIntervals AudioJoin AudioLabel AudioLength AudioLocalMeasurements AudioLooping AudioLoudness AudioMeasurements AudioNormalize AudioOutputDevice AudioOverlay AudioPad AudioPan AudioPartition AudioPause AudioPitchShift AudioPlay AudioPlot AudioQ AudioRecord AudioReplace AudioResample AudioReverb AudioSampleRate AudioSpectralMap AudioSpectralTransformation AudioSplit AudioStop AudioStream AudioStreams AudioTimeStretch AudioTrim AudioType AugmentedPolyhedron AugmentedSymmetricPolynomial Authenticate Authentication AuthenticationDialog AutoAction Autocomplete AutocompletionFunction AutoCopy AutocorrelationTest AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutoQuoteCharacters AutoRefreshed AutoRemove AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords AutoSubmitting Axes AxesEdge AxesLabel AxesOrigin AxesStyle AxiomaticTheory AxisBabyMonsterGroupB Back Background BackgroundAppearance BackgroundTasksSettings Backslash Backsubstitution Backward Ball Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarcodeImage BarcodeRecognize BaringhausHenzeTest BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseDecode BaseEncode BaseForm Baseline BaselinePosition BaseStyle BasicRecurrentLayer BatchNormalizationLayer BatchSize BatesDistribution BattleLemarieWavelet BayesianMaximization BayesianMaximizationObject BayesianMinimization BayesianMinimizationObject Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized Between BetweennessCentrality BeveledPolyhedron BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryDeserialize BinaryDistance BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinarySerialize BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BiquadraticFilterModel BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor BiweightLocation BiweightMidvariance Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockchainAddressData BlockchainBase BlockchainBlockData BlockchainContractValue BlockchainData BlockchainGet BlockchainKeyEncode BlockchainPut BlockchainTokenData BlockchainTransaction BlockchainTransactionData BlockchainTransactionSign BlockchainTransactionSubmit BlockMap BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bond BondCount BondList BondQ Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms BooleanQ BooleanRegion Booleans BooleanStrings BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryDiscretizeGraphics BoundaryDiscretizeRegion BoundaryMesh BoundaryMeshRegion BoundaryMeshRegionQ BoundaryStyle BoundedRegionQ BoundingRegion Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxObject BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break BridgeData BrightnessEqualize BroadcastStationData Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurve3DBoxOptions BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BSplineSurface3DBoxOptions BubbleChart BubbleChart3D BubbleScale BubbleSizes BuildingData BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteArray ByteArrayFormat ByteArrayQ ByteArrayToString ByteCount ByteOrderingC CachedValue CacheGraphics CachePersistence CalendarConvert CalendarData CalendarType Callout CalloutMarker CalloutStyle CallPacket CanberraDistance Cancel CancelButton CandlestickChart CanonicalGraph CanonicalizePolygon CanonicalizePolyhedron CanonicalName CanonicalWarpingCorrespondence CanonicalWarpingDistance CantorMesh CantorStaircase Cap CapForm CapitalDifferentialD Capitalize CapsuleShape CaptureRunning CardinalBSplineBasis CarlemanLinearize CarmichaelLambda CaseOrdering Cases CaseSensitive Cashflow Casoratian Catalan CatalanNumber Catch Catenate CatenateLayer CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling CelestialSystem Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEvaluationLanguage CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellLabelStyle CellLabelTemplate CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterArray CenterDot CentralFeature CentralMoment CentralMomentGeneratingFunction Cepstrogram CepstrogramArray CepstrumArray CForm ChampernowneNumber ChangeOptions ChannelBase ChannelBrokerAction ChannelDatabin ChannelHistoryLength ChannelListen ChannelListener ChannelListeners ChannelListenerWait ChannelObject ChannelPreSendFunction ChannelReceiverFunction ChannelSend ChannelSubscribers ChanVeseBinarize Character CharacterCounts CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterName CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop ChromaticityPlot ChromaticityPlot3D ChromaticPolynomial Circle CircleBox CircleDot CircleMinus CirclePlus CirclePoints CircleThrough CircleTimes CirculantGraph CircularOrthogonalMatrixDistribution CircularQuaternionMatrixDistribution CircularRealMatrixDistribution CircularSymplecticMatrixDistribution CircularUnitaryMatrixDistribution Circumsphere CityData ClassifierFunction ClassifierInformation ClassifierMeasurements ClassifierMeasurementsObject Classify ClassPriors Clear ClearAll ClearAttributes ClearCookies ClearPermissions ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipPlanesStyle ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent CloudAccountData CloudBase CloudConnect CloudDeploy CloudDirectory CloudDisconnect CloudEvaluate CloudExport CloudExpression CloudExpressions CloudFunction CloudGet CloudImport CloudLoggingData CloudObject CloudObjectInformation CloudObjectInformationData CloudObjectNameFormat CloudObjects CloudObjectURLType CloudPublish CloudPut CloudRenderingMethod CloudSave CloudShare CloudSubmit CloudSymbol CloudUnshare ClusterClassify ClusterDissimilarityFunction ClusteringComponents ClusteringTree CMYKColor Coarse CodeAssistOptions Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorBalance ColorCombine ColorConvert ColorCoverage ColorData ColorDataFunction ColorDetect ColorDistance ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQ ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorsNear ColorSpace ColorToneMapping Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CombinedEntityClass CombinerFunction CometData CommonDefaultFormatTypes Commonest CommonestFilter CommonName CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompanyData CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledCodeFunction CompiledFunction CompilerOptions Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComplexListPlot ComplexPlot ComplexPlot3D ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries CompositeQ Composition CompoundElement CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData ComputeUncertainty Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath ConformAudio ConformImages Congruent ConicHullRegion ConicHullRegion3DBox ConicHullRegionBox ConicOptimization Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphComponents ConnectedGraphQ ConnectedMeshComponents ConnectedMoleculeComponents ConnectedMoleculeQ ConnectionSettings ConnectLibraryCallbackFunction ConnectSystemModelComponents ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray ConstantArrayLayer ConstantImage ConstantPlusLayer ConstantRegionQ Constants ConstantTimesLayer ConstellationData ConstrainedMax ConstrainedMin Construct Containing ContainsAll ContainsAny ContainsExactly ContainsNone ContainsOnly ContentFieldOptions ContentLocationFunction ContentObject ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTask ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean ContrastiveLossLayer Control ControlActive ControlAlignment ControlGroupContentsBox ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket ConvexHullMesh ConvexPolygonQ ConvexPolyhedronQ ConvolutionLayer Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CookieFunction Cookies CoordinateBoundingBox CoordinateBoundingBoxArray CoordinateBounds CoordinateBoundsArray CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDatabin CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CountDistinct CountDistinctBy CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Counts CountsBy Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateCellID CreateChannel CreateCloudExpression CreateDatabin CreateDataSystemModel CreateDialog CreateDirectory CreateDocument CreateFile CreateIntermediateDirectories CreateManagedLibraryExpression CreateNotebook CreatePalette CreatePalettePacket CreatePermissionsGroup CreateScheduledTask CreateSearchIndex CreateSystemModel CreateTemporary CreateUUID CreateWindow CriterionFunction CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossEntropyLossLayer CrossingCount CrossingDetect CrossingPolygon CrossMatrix Csc Csch CTCLossLayer Cube CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrencyConvert CurrentDate CurrentImage CurrentlySpeakingPacket CurrentNotebookImage CurrentScreenImage CurrentValue Curry CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecompositionD DagumDistribution DamData DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DatabaseConnect DatabaseDisconnect DatabaseReference Databin DatabinAdd DatabinRemove Databins DatabinUpload DataCompression DataDistribution DataRange DataReversed Dataset Date DateBounds Dated DateDelimiters DateDifference DatedUnit DateFormat DateFunction DateHistogram DateList DateListLogPlot DateListPlot DateListStepPlot DateObject DateObjectQ DateOverlapsQ DatePattern DatePlus DateRange DateReduction DateString DateTicksFormat DateValue DateWithinQ DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayHemisphere DaylightQ DayMatchQ DayName DayNightTerminator DayPlus DayRange DayRound DeBruijnGraph DeBruijnSequence Debug DebugTag Decapitalize Decimal DecimalForm DeclareKnownSymbols DeclarePackage Decompose DeconvolutionLayer Decrement Decrypt DecryptFile DedekindEta DeepSpaceProbeData Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultPrintPrecision DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValue DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod DefineResourceFunction Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic DEigensystem DEigenvalues Deinitialization Del DelaunayMesh Delayed Deletable Delete DeleteAnomalies DeleteBorderComponents DeleteCases DeleteChannel DeleteCloudExpression DeleteContents DeleteDirectory DeleteDuplicates DeleteDuplicatesBy DeleteFile DeleteMissing DeleteObject DeletePermissionsKey DeleteSearchIndex DeleteSmallComponents DeleteStopwords DeleteWithContents DeletionWarning DelimitedArray DelimitedSequence Delimiter DelimiterFlashTime DelimiterMatching Delimiters DeliveryFunction Dendrogram Denominator DensityGraphics DensityHistogram DensityPlot DensityPlot3D DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DerivedKey DescriptorStateSpace DesignMatrix DestroyAfterEvaluation Det DeviceClose DeviceConfigure DeviceExecute DeviceExecuteAsynchronous DeviceObject DeviceOpen DeviceOpenQ DeviceRead DeviceReadBuffer DeviceReadLatest DeviceReadList DeviceReadTimeSeries Devices DeviceStreams DeviceWrite DeviceWriteBuffer DGaussianWavelet DiacriticalPositioning Diagonal DiagonalizableMatrixQ DiagonalMatrix DiagonalMatrixQ Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DictionaryWordQ DifferenceDelta DifferenceOrder DifferenceQuotient DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitalSignature DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralAngle DihedralGroup Dilation DimensionalCombinations DimensionalMeshComponents DimensionReduce DimensionReducerFunction DimensionReduction Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletBeta DirichletCharacter DirichletCondition DirichletConvolve DirichletDistribution DirichletEta DirichletL DirichletLambda DirichletTransform DirichletWindow DisableConsolePrintPacket DisableFormatting DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLimit DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscreteMaxLimit DiscreteMinLimit DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform DiscretizeGraphics DiscretizeRegion Discriminant DisjointQ Disjunction Disk DiskBox DiskMatrix DiskSegment Dispatch DispatchQ DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceMatrix DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers DivideSides Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentGenerator DocumentGeneratorInformation DocumentGeneratorInformationData DocumentGenerators DocumentNotebook DocumentWeightingRules Dodecahedron DomainRegistrationInformation DominantColors DOSTextFormat Dot DotDashed DotEqual DotLayer DotPlusLayer Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DropoutLayer DSolve DSolveValue Dt DualLinearProgramming DualPolyhedron DualSystemsModel DumpGet DumpSave DuplicateFreeQ Duration Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicGeoGraphics DynamicImage DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptionsE EarthImpactData EarthquakeData EccentricityCentrality Echo EchoFunction EclipseType EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeContract EdgeCost EdgeCount EdgeCoverQ EdgeCycleMatrix EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight EdgeWeightedGraphQ Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData ElementwiseLayer ElidedForms Eliminate EliminationOrder Ellipsoid EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmbedCode EmbeddedHTML EmbeddedService EmbeddingLayer EmbeddingObject EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EmptyRegion EnableConsolePrintPacket Enabled Encode Encrypt EncryptedObject EncryptFile End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfBuffer EndOfFile EndOfLine EndOfString EndPackage EngineEnvironment EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entity EntityClass EntityClassList EntityCopies EntityFunction EntityGroup EntityInstance EntityList EntityPrefetch EntityProperties EntityProperty EntityPropertyClass EntityRegister EntityStore EntityStores EntityTypeName EntityUnregister EntityValue Entropy EntropyFilter Environment Epilog EpilogFunction Equal EqualColumns EqualRows EqualTilde EqualTo EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EscapeRadius EstimatedBackground EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerAngles EulerCharacteristic EulerE EulerGamma EulerianGraphQ EulerMatrix EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluateScheduledTask EvaluationBox EvaluationCell EvaluationCompletionAction EvaluationData EvaluationElements EvaluationEnvironment EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels EventSeries ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludedLines ExcludedPhysicalQuantities ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog ExoplanetData Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi ExpirationDate Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportByteArray ExportForm ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpressionUUID ExpToTrig ExtendedEntityClass ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalBundle ExternalCall ExternalDataCharacterEncoding ExternalEvaluate ExternalFunction ExternalFunctionName ExternalObject ExternalOptions ExternalSessionObject ExternalSessions ExternalTypeSignature ExternalValue Extract ExtractArchive ExtractLayer ExtremeValueDistributionFaceForm FaceGrids FaceGridsStyle FacialFeatures Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail Failure FailureAction FailureDistribution FailureQ False FareySequence FARIMAProcess FeatureDistance FeatureExtract FeatureExtraction FeatureExtractor FeatureExtractorFunction FeatureNames FeatureNearest FeatureSpacePlot FeatureSpacePlot3D FeatureTypes FEDisableConsolePrintPacket FeedbackLinearize FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket FetalGrowthData Fibonacci Fibonorial FieldCompletionFunction FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileConvert FileDate FileExistsQ FileExtension FileFormat FileHandler FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameForms FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileSize FileSystemMap FileSystemScan FileTemplate FileTemplateApply FileType FilledCurve FilledCurveBox FilledCurveBoxOptions Filling FillingStyle FillingTransform FilteredEntityClass FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindAnomalies FindArgMax FindArgMin FindChannels FindClique FindClusters FindCookies FindCurvePath FindCycle FindDevices FindDistribution FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEdgeIndependentPaths FindEquationalProof FindEulerianCycle FindExternalEvaluators FindFaces FindFile FindFit FindFormula FindFundamentalCycles FindGeneratingFunction FindGeoLocation FindGeometricConjectures FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindHamiltonianPath FindHiddenMarkovStates FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMatchingColor FindMaximum FindMaximumFlow FindMaxValue FindMeshDefects FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindMoleculeSubstructure FindPath FindPeaks FindPermutation FindPostmanTour FindProcessParameters FindRepeat FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindSpanningTree FindSystemModelEquilibrium FindTextualAnswer FindThreshold FindTransientRepeat FindVertexCover FindVertexCut FindVertexIndependentPaths Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstCase FirstPassageTimeDistribution FirstPosition FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FitRegularization FittedModel FixedOrder FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlattenLayer FlatTopWindow FlipView Floor FlowPolynomial FlushPrintOutputPacket Fold FoldList FoldPair FoldPairList FollowRedirects Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FormControl FormFunction FormLayoutFunction FormObject FormPage FormTheme FormulaData FormulaLookup FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalGaussianNoiseProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameRate FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrenetSerretSystem FrequencySamplingFilterKernel FresnelC FresnelF FresnelG FresnelS Friday FrobeniusNumber FrobeniusSolve FromAbsoluteTime FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS FromEntity FromJulianDate FromLetterNumber FromPolarCoordinates FromRomanNumeral FromSphericalCoordinates FromUnixTime Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullInformationOutputRegulator FullOptions FullRegion FullSimplify Function FunctionCompile FunctionCompileExport FunctionCompileExportByteArray FunctionCompileExportLibrary FunctionCompileExportString FunctionDomain FunctionExpand FunctionInterpolation FunctionPeriod FunctionRange FunctionSpace FussellVeselyImportanceGaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins GalaxyData GalleryView Gamma GammaDistribution GammaRegularized GapPenalty GARCHProcess GatedRecurrentLayer Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianOrthogonalMatrixDistribution GaussianSymplecticMatrixDistribution GaussianUnitaryMatrixDistribution GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateAsymmetricKeyPair GenerateConditions GeneratedCell GeneratedDocumentBinding GenerateDerivedKey GenerateDigitalSignature GenerateDocument GeneratedParameters GeneratedQuantityMagnitudes GenerateHTTPResponse GenerateSecuredAuthenticationKey GenerateSymmetricKey GeneratingFunction GeneratorDescription GeneratorHistoryLength GeneratorOutputType Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeoAntipode GeoArea GeoArraySize GeoBackground GeoBoundingBox GeoBounds GeoBoundsRegion GeoBubbleChart GeoCenter GeoCircle GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDisk GeoDisplacement GeoDistance GeoDistanceList GeoElevationData GeoEntities GeoGraphics GeogravityModelData GeoGridDirectionDifference GeoGridLines GeoGridLinesStyle GeoGridPosition GeoGridRange GeoGridRangePadding GeoGridUnitArea GeoGridUnitDistance GeoGridVector GeoGroup GeoHemisphere GeoHemisphereBoundary GeoHistogram GeoIdentify GeoImage GeoLabels GeoLength GeoListPlot GeoLocation GeologicalPeriodData GeomagneticModelData GeoMarker GeometricAssertion GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricScene GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoModel GeoNearest GeoPath GeoPosition GeoPositionENU GeoPositionXYZ GeoProjection GeoProjectionData GeoRange GeoRangePadding GeoRegionValuePlot GeoResolution GeoScaleBar GeoServer GeoSmoothHistogram GeoStreamPlot GeoStyling GeoStylingImageFunction GeoVariant GeoVector GeoVectorENU GeoVectorPlot GeoVectorXYZ GeoVisibleRegion GeoVisibleRegionBoundary GeoWithinQ GeoZoomLevel GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenAngle GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter GrammarApply GrammarRules GrammarToken Graph Graph3D GraphAssortativity GraphAutomorphismGroup GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel Greater GreaterEqual GreaterEqualLess GreaterEqualThan GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterThan GreaterTilde Green GreenFunction Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupBy GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators Groupings GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain GroupTogetherGrouping GroupTogetherNestedGrouping GrowCutComponents Gudermannian GuidedFilter GumbelDistributionHaarWavelet HadamardMatrix HalfLine HalfNormalDistribution HalfPlane HalfSpace HamiltonianGraphQ HammingDistance HammingWindow HandlerFunctions HandlerFunctionsKeys HankelH1 HankelH2 HankelMatrix HankelTransform HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash Haversine HazardFunction Head HeadCompose HeaderLines Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings Here HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenMarkovProcess HiddenSurface Highlighted HighlightGraph HighlightImage HighlightMesh HighpassFilter HigmanSimsGroupHS HilbertCurve HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HistoricalPeriodData HitMissTransform HITSCentrality HjorthDistribution HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HostLookup HotellingTSquareDistribution HoytDistribution HTMLSave HTTPErrorResponse HTTPRedirect HTTPRequest HTTPRequestData HTTPResponse Hue HumanGrowthData HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyperplane Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestDataI IconData Iconize IconizedObject IconRules Icosahedron Identity IdentityMatrix If IgnoreCase IgnoreDiacritics IgnorePunctuation IgnoreSpellCheck IgnoringInactive Im Image Image3D Image3DProjection Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageApplyIndexed ImageAspectRatio ImageAssemble ImageAugmentationLayer ImageBoundingBoxes ImageCache ImageCacheValid ImageCapture ImageCaptureFunction ImageCases ImageChannels ImageClip ImageCollage ImageColorSpace ImageCompose ImageContainsQ ImageContents ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDisplacements ImageDistance ImageEffect ImageExposureCombine ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageFocusCombine ImageForestingComponents ImageFormattingWidth ImageForwardTransformation ImageGraphics ImageHistogram ImageIdentify ImageInstanceQ ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarker ImageMarkers ImageMeasurements ImageMesh ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImagePosition ImagePreviewFunction ImagePyramid ImagePyramidApply ImageQ ImageRangeCache ImageRecolor ImageReflect ImageRegion ImageResize ImageResolution ImageRestyle ImageRotate ImageRotated ImageSaliencyFilter ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions ImagingDevice ImplicitRegion Implies Import ImportAutoReplacements ImportByteArray ImportOptions ImportString ImprovementImportance In Inactivate Inactive IncidenceGraph IncidenceList IncidenceMatrix IncludeAromaticBonds IncludeConstantBasis IncludeDefinitions IncludeDirectories IncludeFileExtension IncludeGeneratorTasks IncludeHydrogens IncludeInflections IncludeMetaInformation IncludePods IncludeQuantities IncludeRelatedTables IncludeSingularTerm IncludeWindowTimes Increment IndefiniteMatrixQ Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentPhysicalQuantity IndependentUnit IndependentUnitDimension IndependentVertexSetQ Indeterminate IndeterminateThreshold IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers InfiniteLine InfinitePlane Infinity Infix InflationAdjust InflationMethod Information InformationData InformationDataGrid Inherited InheritScope InhomogeneousPoissonProcess InitialEvaluationHistory Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InitializationObjects InitializationValue Initialize InitialSeeding InlineCounterAssignments InlineCounterIncrements InlineRules Inner InnerPolygon InnerPolyhedron Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionFunction InsertionPointObject InsertLinebreaks InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Insphere Install InstallService InstanceNormalizationLayer InString Integer IntegerDigits IntegerExponent IntegerLength IntegerName IntegerPart IntegerPartitions IntegerQ IntegerReverse Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction Interpreter InterpretTemplate InterquartileRange Interrupt InterruptSettings IntersectingQ Intersection Interval IntervalIntersection IntervalMarkers IntervalMarkersStyle IntervalMemberQ IntervalSlider IntervalUnion Into Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHankelTransform InverseHaversine InverseImagePyramid InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InverseMellinTransform InversePermutation InverseRadon InverseRadonTransform InverseSeries InverseShortTimeFourier InverseSpectrogram InverseSurvivalFunction InverseTransformedRegion InverseWaveletTransform InverseWeierstrassP InverseWishartMatrixDistribution InverseZTransform Invisible InvisibleApplication InvisibleTimes IPAddress IrreduciblePolynomialQ IslandData IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemAspectRatio ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcessJaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join JoinAcross Joined JoinedCurve JoinedCurveBox JoinedCurveBoxOptions JoinForm JordanDecomposition JordanModelDecomposition JulianDate JuliaSetBoettcher JuliaSetIterationCount JuliaSetPlot JuliaSetPointsK KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KEdgeConnectedComponents KEdgeConnectedGraphQ KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelFunction KernelMixtureDistribution Kernels Ket Key KeyCollisionFunction KeyComplement KeyDrop KeyDropFrom KeyExistsQ KeyFreeQ KeyIntersection KeyMap KeyMemberQ KeypointStrength Keys KeySelect KeySort KeySortBy KeyTake KeyUnion KeyValueMap KeyValuePattern Khinchin KillProcess KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnapsackSolve KnightTourGraph KnotData KnownUnitQ KochCurve KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter KVertexConnectedComponents KVertexConnectedGraphQLABColor Label Labeled LabeledSlider LabelingFunction LabelingSize LabelStyle LabelVisibility LaguerreL LakeData LambdaComponents LambertW LaminaData LanczosWindow LandauDistribution Language LanguageCategory LanguageData LanguageIdentify LanguageOptions LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCHColor LCM LeaderSize LeafCount LeapYearQ LearnDistribution LearnedDistribution LearningRate LearningRateMultipliers LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessEqualThan LessFullEqual LessGreater LessLess LessSlantEqual LessThan LessTilde LetterCharacter LetterCounts LetterNumber LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryDataType LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox Line3DBoxOptions LinearFilter LinearFractionalOptimization LinearFractionalTransform LinearGradientImage LinearizingTransformationData LinearLayer LinearModelFit LinearOffsetFunction LinearOptimization LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBoxOptions LineBreak LinebreakAdjustments LineBreakChart LinebreakSemicolonWeighting LineBreakWithin LineColor LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRankCentrality LinkRead LinkReadHeld LinkReadyQ Links LinkService LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot ListDensityPlot3D Listen ListFormat ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListSliceContourPlot3D ListSliceDensityPlot3D ListSliceVectorPlot3D ListStepPlot ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalAdaptiveBinarize LocalCache LocalClusteringCoefficient LocalizeDefinitions LocalizeVariables LocalObject LocalObjects LocalResponseNormalizationLayer LocalSubmit LocalSymbol LocalTime LocalTimeZone LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogisticSigmoid LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongestOrderedSequence LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow LongShortTermMemoryLayer Lookup Loopback LoopFreeGraphQ LossFunction LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowerTriangularMatrixQ LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LunarEclipse LUVColor LyapunovSolve LyonsGroupLyMachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MailAddressValidation MailExecute MailFolder MailItem MailReceiverFunction MailResponseFunction MailSearch MailServerConnect MailServerConnection MailSettings MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules ManagedLibraryExpressionID ManagedLibraryExpressionQ MandelbrotSetBoettcher MandelbrotSetDistance MandelbrotSetIterationCount MandelbrotSetMemberQ MandelbrotSetPlot MangoldtLambda ManhattanDistance Manipulate Manipulator MannedSpaceMissionData MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarchenkoPasturDistribution MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicalFunctionData MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixNormalDistribution MatrixPlot MatrixPower MatrixPropertyDistribution MatrixQ MatrixRank MatrixTDistribution Max MaxBend MaxCellMeasure MaxColorDistance MaxDetect MaxDuration MaxExtraBandwidths MaxExtraConditions MaxFeatureDisplacement MaxFeatures MaxFilter MaximalBy Maximize MaxItems MaxIterations MaxLimit MaxMemoryUsed MaxMixtureKernels MaxOverlapFraction MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxTrainingRounds MaxValue MaxwellDistribution MaxWordGap McLaughlinGroupMcL Mean MeanAbsoluteLossLayer MeanAround MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter MeanSquaredLossLayer Median MedianDeviation MedianFilter MedicalTestData Medium MeijerG MeijerGReduce MeixnerDistribution MellinConvolve MellinTransform MemberQ MemoryAvailable MemoryConstrained MemoryConstraint MemoryInUse MengerMesh Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuList MenuPacket MenuSortingValue MenuStyle MenuView Merge MergeDifferences MergingFunction MersennePrimeExponent MersennePrimeExponentQ Mesh MeshCellCentroid MeshCellCount MeshCellHighlight MeshCellIndex MeshCellLabel MeshCellMarker MeshCellMeasure MeshCellQuality MeshCells MeshCellShapeFunction MeshCellStyle MeshCoordinates MeshFunctions MeshPrimitives MeshQualityGoal MeshRange MeshRefinementFunction MeshRegion MeshRegionQ MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageObject MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation MeteorShowerData Method MethodOptions MexicanHatWavelet MeyerWavelet Midpoint Min MinColorDistance MinDetect MineralData MinFilter MinimalBy MinimalPolynomial MinimalStateSpaceModel Minimize MinimumTimeIncrement MinIntervalSize MinkowskiQuestionMark MinLimit MinMax MinorPlanetData Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingBehavior MissingDataMethod MissingDataRules MissingQ MissingString MissingStyle MissingValuePattern MittagLefflerE MixedFractionParts MixedGraphQ MixedMagnitude MixedRadix MixedRadixQuantity MixedUnit MixtureDistribution Mod Modal Mode Modular ModularInverse ModularLambda Module Modulus MoebiusMu Molecule MoleculeContainsQ MoleculeEquivalentQ MoleculeGraph MoleculeModify MoleculePattern MoleculePlot MoleculePlot3D MoleculeProperty MoleculeQ MoleculeValue Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction MomentOfInertia Monday Monitor MonomialList MonomialOrder MonsterGroupM MoonPhase MoonPosition MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform MortalityData Most MountainData MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovieData MovingAverage MovingMap MovingMedian MoyalDistribution Multicolumn MultiedgeStyle MultigraphQ MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity MultiplySides Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistributionN NakagamiDistribution NameQ Names NamespaceBox NamespaceBoxOptions Nand NArgMax NArgMin NBernoulliB NBodySimulation NBodySimulationData NCache NDEigensystem NDEigenvalues NDSolve NDSolveValue Nearest NearestFunction NearestNeighborGraph NearestTo NebulaData NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeDefiniteMatrixQ NegativeIntegers NegativeMultinomialDistribution NegativeRationals NegativeReals NegativeSemidefiniteMatrixQ NeighborhoodData NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestGraph NestList NestWhile NestWhileList NetAppend NetBidirectionalOperator NetChain NetDecoder NetDelete NetDrop NetEncoder NetEvaluationMode NetExtract NetFlatten NetFoldOperator NetGraph NetInformation NetInitialize NetInsert NetInsertSharedArrays NetJoin NetMapOperator NetMapThreadOperator NetMeasurements NetModel NetNestOperator NetPairEmbeddingOperator NetPort NetPortGradient NetPrepend NetRename NetReplace NetReplacePart NetSharedArray NetStateObject NetTake NetTrain NetTrainResultsObject NetworkPacketCapture NetworkPacketRecording NetworkPacketRecordingDuring NetworkPacketTrace NeumannValue NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextCell NextDate NextPrime NextScheduledTaskTime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NightHemisphere NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants NondimensionalizationTransform None NoneTrue NonlinearModelFit NonlinearStateSpaceModel NonlocalMeansFilter NonNegative NonNegativeIntegers NonNegativeRationals NonNegativeReals NonPositive NonPositiveIntegers NonPositiveRationals NonPositiveReals Nor NorlundB Norm Normal NormalDistribution NormalGrouping NormalizationLayer Normalize Normalized NormalizedSquaredEuclideanDistance NormalMatrixQ NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookImport NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookTemplate NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde Nothing NotHumpDownHump NotHumpEqual NotificationFunction NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar Now NoWhitespace NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms NuclearExplosionData NuclearReactorData Null NullRecords NullSpace NullWords Number NumberCompose NumberDecompose NumberExpand NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberLinePlot NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumeratorDenominator NumericalOrder NumericalSort NumericArray NumericArrayQ NumericArrayType NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlotO ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OceanData Octahedron OddQ Off Offset OLEData On ONanGroupON Once OneIdentity Opacity OpacityFunction OpacityFunctionScaling Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionalElement OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering OrderingBy OrderingLayer Orderless OrderlessPatternSequence OrnsteinUhlenbeckProcess Orthogonalize OrthogonalMatrixQ Out Outer OuterPolygon OuterPolyhedron OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OverwriteTarget OwenT OwnValuesPackage PackingMethod PaddedForm Padding PaddingLayer PaddingSize PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageTheme PageWidth Pagination PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath PalindromeQ Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo Parallelepiped ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds Parallelogram ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParametricRegion ParentBox ParentCell ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParentNotebook ParetoDistribution ParetoPickandsDistribution ParkData Part PartBehavior PartialCorrelationFunction PartialD ParticleAcceleratorData ParticleData Partition PartitionGranularity PartitionsP PartitionsQ PartLayer PartOfSpeech PartProtection ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteAutoQuoteCharacters PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PeakDetect PeanoCurve PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PercentForm PerfectNumber PerfectNumberQ PerformanceGoal Perimeter PeriodicBoundaryCondition PeriodicInterpolation Periodogram PeriodogramArray Permanent Permissions PermissionsGroup PermissionsGroupMemberQ PermissionsGroups PermissionsKey PermissionsKeys PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PerpendicularBisector PersistenceLocation PersistenceTime PersistentObject PersistentObjects PersistentValue PersonData PERTDistribution PetersenGraph PhaseMargins PhaseRange PhysicalSystemData Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest PingTime Pink PitchRecognize Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarAngle PlanarGraph PlanarGraphQ PlanckRadiationLaw PlaneCurveData PlanetaryMoonData PlanetData PlantData Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLabels PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangeClipPlanesStyle PlotRangePadding PlotRegion PlotStyle PlotTheme Pluralize Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox Point3DBoxOptions PointBox PointBoxOptions PointFigureChart PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonalNumber PolygonAngle PolygonBox PolygonBoxOptions PolygonCoordinates PolygonDecomposition PolygonHoleScale PolygonIntersections PolygonScale Polyhedron PolyhedronAngle PolyhedronCoordinates PolyhedronData PolyhedronDecomposition PolyhedronGenus PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PoolingLayer PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position PositionIndex Positive PositiveDefiniteMatrixQ PositiveIntegers PositiveRationals PositiveReals PositiveSemidefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerRange PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement Predict PredictionRoot PredictorFunction PredictorInformation PredictorMeasurements PredictorMeasurementsObject PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependLayer PrependTo PreprocessingRules PreserveColor PreserveImageOptions Previous PreviousCell PreviousDate PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitivePolynomialQ PrimitiveRoot PrimitiveRootList PrincipalComponents PrincipalValue Print PrintableASCIIQ PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment Printout3D Printout3DPreviewer PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateKey PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessConnection ProcessDirectory ProcessEnvironment Processes ProcessEstimator ProcessInformation ProcessObject ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessStatus ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm ProofObject Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse PsychrometricPropertyData PublicKey PublisherID PulsarData PunctuationCharacter Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptionsQBinomial QFactorial QGamma QHypergeometricPFQ QnDispersion QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ QuadraticOptimization Quantile QuantilePlot Quantity QuantityArray QuantityDistribution QuantityForm QuantityMagnitude QuantityQ QuantityUnit QuantityVariable QuantityVariableCanonicalUnit QuantityVariableDimensions QuantityVariableIdentifier QuantityVariablePhysicalQuantity Quartics QuartileDeviation Quartiles QuartileSkewness Query QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainderRadialGradientImage RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RadonTransform RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Ramp Random RandomChoice RandomColor RandomComplex RandomEntity RandomFunction RandomGeoPosition RandomGraph RandomImage RandomInstance RandomInteger RandomPermutation RandomPoint RandomPolygon RandomPolyhedron RandomPrime RandomReal RandomSample RandomSeed RandomSeeding RandomVariate RandomWalkProcess RandomWord Range RangeFilter RangeSpecification RankedMax RankedMin RarerProbability Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadByteArray ReadLine ReadList ReadProtected ReadString Real RealAbs RealBlockDiagonalForm RealDigits RealExponent Reals RealSign Reap RecognitionPrior RecognitionThreshold Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RectangularRepeatingElement RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate Region RegionBinarize RegionBoundary RegionBounds RegionCentroid RegionDifference RegionDimension RegionDisjoint RegionDistance RegionDistanceFunction RegionEmbeddingDimension RegionEqual RegionFunction RegionImage RegionIntersection RegionMeasure RegionMember RegionMemberFunction RegionMoment RegionNearest RegionNearestFunction RegionPlot RegionPlot3D RegionProduct RegionQ RegionResize RegionSize RegionSymmetricDifference RegionUnion RegionWithin RegisterExternalEvaluator RegularExpression Regularization RegularlySampledQ RegularPolygon ReIm ReImLabels ReImPlot ReImStyle Reinstall RelationalDatabase RelationGraph Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot RemoteAuthorizationCaching RemoteConnect RemoteConnectionObject RemoteFile RemoteRun RemoteRunProcess Remove RemoveAlphaChannel RemoveAsynchronousTask RemoveAudioStream RemoveBackground RemoveChannelListener RemoveChannelSubscribers Removed RemoveDiacritics RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RemoveUsers RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart RepairMesh Repeated RepeatedNull RepeatedString RepeatedTiming RepeatingElement Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated ReplicateLayer RequiredPhysicalQuantities Resampling ResamplingAlgorithmData ResamplingMethod Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask ReshapeLayer Residue ResizeLayer Resolve ResourceAcquire ResourceData ResourceFunction ResourceObject ResourceRegister ResourceRemove ResourceSearch ResourceSubmissionObject ResourceSubmit ResourceSystemBase ResourceUpdate ResponseForm Rest RestartInterval Restricted Resultant ResumePacket Return ReturnEntersInput ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnReceiptFunction ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseSort ReverseSortBy ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ RiemannXi Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightComposition RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity RollPitchYawAngles RollPitchYawMatrix RomanNumeral Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RSolveValue RudinShapiro RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulePlot RulerUnits Run RunProcess RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilaritySameQ SameTest SampledEntityClass SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SASTriangle SatelliteData SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveConnection SaveDefinitions SavitzkyGolayMatrix SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTask ScheduledTaskActiveQ ScheduledTaskInformation ScheduledTaskInformationData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScientificNotationThreshold ScorerGi ScorerGiPrime ScorerHi ScorerHiPrime ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptForm ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition SearchAdjustment SearchIndexObject SearchIndices SearchQueryString SearchResultObject Sec Sech SechDistribution SecondOrderConeOptimization SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SecuredAuthenticationKey SecuredAuthenticationKeys SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook SelectFirst Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemanticImport SemanticImportString SemanticInterpretation SemialgebraicComponentInstances SemidefiniteOptimization SendMail SendMessage Sequence SequenceAlignment SequenceAttentionLayer SequenceCases SequenceCount SequenceFold SequenceFoldList SequenceForm SequenceHold SequenceLastLayer SequenceMostLayer SequencePosition SequencePredict SequencePredictorFunction SequenceReplace SequenceRestLayer SequenceReverseLayer SequenceSplit Series SeriesCoefficient SeriesData ServiceConnect ServiceDisconnect ServiceExecute ServiceObject ServiceRequest ServiceResponse ServiceSubmit SessionSubmit SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetCloudDirectory SetCookies SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPermissions SetPrecision SetProperty SetSecuredAuthenticationKey SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemModel SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetUsers SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share SharingList Sharpen ShearingMatrix ShearingTransform ShellRegion ShenCastanMatrix ShiftedGompertzDistribution ShiftRegisterSequence Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortTimeFourier ShortTimeFourierData ShortUpArrow Show ShowAutoConvert ShowAutoSpellCheck ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowCodeAssist ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiderealTime SiegelTheta SiegelTukeyTest SierpinskiCurve SierpinskiMesh Sign Signature SignedRankTest SignedRegionDistance SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ SimplePolygonQ SimplePolyhedronQ Simplex Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution SkinStyle Skip SliceContourPlot3D SliceDensityPlot3D SliceDistribution SliceVectorPlot3D Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDecomposition SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SnDispersion Snippet SnubPolyhedron SocialMediaData Socket SocketConnect SocketListen SocketListener SocketObject SocketOpen SocketReadMessage SocketReadyQ Sockets SocketWaitAll SocketWaitNext SoftmaxLayer SokalSneathDissimilarity SolarEclipse SolarSystemFeatureData SolidAngle SolidData SolidRegionQ Solve SolveAlways SolveDelayed Sort SortBy SortedBy SortedEntityClass Sound SoundAndGraphics SoundNote SoundVolume SourceLink Sow Space SpaceCurveData SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution SpatialMedian SpatialTransformationLayer Speak SpeakTextPacket SpearmanRankTest SpearmanRho SpeciesData SpecificityGoal SpectralLineData Spectrogram SpectrogramArray Specularity SpeechRecognize SpeechSynthesize SpellingCorrection SpellingCorrectionList SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SpherePoints SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SphericalShell SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquareMatrixQ SquareRepeatingElement SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave SSSTriangle StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackedDateListPlot StackedListPlot StackInhibit StadiumShape StandardAtmosphereData StandardDeviation StandardDeviationFilter StandardForm Standardize Standardized StandardOceanData StandbyDistribution Star StarClusterData StarData StarGraph StartAsynchronousTask StartExternalSession StartingStepSize StartOfLine StartOfString StartProcess StartScheduledTask StartupSound StartWebSession StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StateTransformationLinearize StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StereochemistryElements StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StoppingPowerData StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamMarkers StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringContainsQ StringCount StringDelete StringDrop StringEndsQ StringExpression StringExtract StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPadLeft StringPadRight StringPart StringPartition StringPosition StringQ StringRepeat StringReplace StringReplaceList StringReplacePart StringReverse StringRiffle StringRotateLeft StringRotateRight StringSkeleton StringSplit StringStartsQ StringTake StringTemplate StringToByteArray StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleData StyleDefinitions StyleForm StyleHints StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subdivide Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subsequences Subset SubsetEqual SubsetMap SubsetQ Subsets SubStar SubstitutionSystem Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubtractSides SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde Success SuchThat Sum SumConvergence SummationLayer Sunday SunPosition Sunrise Sunset SuperDagger SuperMinus SupernovaData SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceArea SurfaceColor SurfaceData SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricKey SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Synonyms Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SynthesizeMissingValues SystemDialogInput SystemException SystemGet SystemHelpPath SystemInformation SystemInformationData SystemInstall SystemModel SystemModeler SystemModelExamples SystemModelLinearize SystemModelParametricSimulate SystemModelPlot SystemModelProgressReporting SystemModelReliability SystemModels SystemModelSimulate SystemModelSimulateSensitivity SystemModelSimulationData SystemOpen SystemOptions SystemProcessData SystemProcesses SystemsConnectionsModel SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelLinearity SystemsModelMerge SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemsModelVectorRelativeOrders SystemStub SystemTestTab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TableViewBoxBackground TableViewBoxOptions TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeDrop TakeLargest TakeLargestBy TakeList TakeSmallest TakeSmallestBy TakeWhile Tally Tan Tanh TargetDevice TargetFunctions TargetSystem TargetUnits TaskAbort TaskExecute TaskObject TaskRemove TaskResume Tasks TaskSuspend TaskWait TautologyQ TelegraphProcess TemplateApply TemplateArgBox TemplateBox TemplateBoxOptions TemplateEvaluate TemplateExpression TemplateIf TemplateObject TemplateSequence TemplateSlot TemplateSlotSequence TemplateUnevaluated TemplateVerbatim TemplateWith TemporalData TemporalRegularity Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge TestID TestReport TestReportObject TestResultObject Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCases TextCell TextClipboardType TextContents TextData TextElement TextForm TextGrid TextJustification TextLine TextPacket TextParagraph TextPosition TextRecognize TextSearch TextSearchReport TextSentences TextString TextStructure TextStyle TextTranslation Texture TextureCoordinateFunction TextureCoordinateScaling TextWords Therefore ThermodynamicData ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreadingLayer ThreeJSymbol Threshold Through Throw ThueMorse Thumbnail Thursday Ticks TicksStyle TideData Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint TimeDirection TimeFormat TimeGoal TimelinePlot TimeObject TimeObjectQ Times TimesBy TimeSeries TimeSeriesAggregate TimeSeriesForecast TimeSeriesInsert TimeSeriesInvertibility TimeSeriesMap TimeSeriesMapThread TimeSeriesModel TimeSeriesModelFit TimeSeriesResample TimeSeriesRescale TimeSeriesShift TimeSeriesThread TimeSeriesWindow TimeUsed TimeValue TimeWarpingCorrespondence TimeWarpingDistance TimeZone TimeZoneConvert TimeZoneOffset Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate Today ToDiscreteTimeModel ToEntity ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase Tomorrow ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform ToPolarCoordinates TopologicalSort ToRadicals ToRules ToSphericalCoordinates ToString Total TotalHeight TotalLayer TotalVariationFilter TotalWidth TouchPosition TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TrackingFunction TracyWidomDistribution TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TrainingProgressCheckpointing TrainingProgressFunction TrainingProgressMeasurements TrainingProgressReporting TrainingStoppingCriterion TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationClass TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField TransformedProcess TransformedRegion TransitionDirection TransitionDuration TransitionEffect TransitiveClosureGraph TransitiveReductionGraph Translate TranslationOptions TranslationTransform Transliterate Transparent TransparentColor Transpose TransposeLayer TrapSelection TravelDirections TravelDirectionsData TravelDistance TravelDistanceList TravelMethod TravelTime TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle Triangle TriangleCenter TriangleConstruct TriangleMeasurement TriangleWave TriangularDistribution TriangulateMesh Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean TrimmedVariance TropicalStormData True TrueQ TruncatedDistribution TruncatedPolyhedron TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBoxOptions TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow TunnelData Tuples TuranGraph TuringMachine TuttePolynomial TwoWayRule Typed TypeSpecifierUnateQ Uncompress UnconstrainedParameters Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UnderseaFeatureData UndirectedEdge UndirectedGraph UndirectedGraphQ UndoOptions UndoTrackedVariables Unequal UnequalTo Unevaluated UniformDistribution UniformGraphDistribution UniformPolyhedron UniformSumDistribution Uninstall Union UnionPlus Unique UnitaryMatrixQ UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitSystem UnitTriangle UnitVector UnitVectorLayer UnityDimensions UniverseModelData UniversityData UnixTime Unprotect UnregisterExternalEvaluator UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpdateSearchIndex UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize UpperTriangularMatrixQ Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpTo UpValues URL URLBuild URLDecode URLDispatcher URLDownload URLDownloadSubmit URLEncode URLExecute URLExpand URLFetch URLFetchAsynchronous URLParse URLQueryDecode URLQueryEncode URLRead URLResponseTime URLSave URLSaveAsynchronous URLShorten URLSubmit UseGraphicsRange UserDefinedWavelet Using UsingFrontEnd UtilityFunctionV2Get ValenceErrorHandling ValidationLength ValidationSet Value ValueBox ValueBoxOptions ValueDimensions ValueForm ValuePreprocessingFunction ValueQ Values ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorAround VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorGreater VectorGreaterEqual VectorLess VectorLessEqual VectorMarkers VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerificationTest VerifyConvergence VerifyDerivedKey VerifyDigitalSignature VerifyInterpretation VerifySecurityCertificates VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexContract VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight VertexWeightedGraphQ Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewProjection ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoiceStyleData VoigtDistribution VolcanoData Volume VonMisesDistribution VoronoiMeshWaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WarpingCorrespondence WarpingDistance WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeatherForecastData WebAudioSearch WebElementObject WeberE WebExecute WebImage WebImageSearch WebSearch WebSessionObject WebSessions WebWindowObject Wedge Wednesday WeibullDistribution WeierstrassE1 WeierstrassE2 WeierstrassE3 WeierstrassEta1 WeierstrassEta2 WeierstrassEta3 WeierstrassHalfPeriods WeierstrassHalfPeriodW1 WeierstrassHalfPeriodW2 WeierstrassHalfPeriodW3 WeierstrassInvariantG2 WeierstrassInvariantG3 WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White WhiteNoiseProcess WhitePoint Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WikipediaData WikipediaSearch WilksW WilksWTest WindDirectionData WindingCount WindingPolygon WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowPersistentStyles WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth WindSpeedData WindVectorData WinsorizedMean WinsorizedVariance WishartMatrixDistribution With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult WolframLanguageData Word WordBoundary WordCharacter WordCloud WordCount WordCounts WordData WordDefinition WordFrequency WordFrequencyData WordList WordOrientation WordSearch WordSelectionFunction WordSeparators WordSpacings WordStem WordTranslation WorkingPrecision WrapAround Write WriteLine WriteString WronskianXMLElement XMLObject XMLTemplate Xnor Xor XYZColorYellow Yesterday YuleDissimilarityZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZIPCodeData ZipfDistribution ZoomCenter ZoomFactor ZTest ZTransform$Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AllowExternalChannelFunctions $AssertFunction $Assumptions $AsynchronousTask $AudioInputDevices $AudioOutputDevices $BaseDirectory $BatchInput $BatchOutput $BlockchainBase $BoxForms $ByteOrdering $CacheBaseDirectory $Canceled $ChannelBase $CharacterEncoding $CharacterEncodings $CloudBase $CloudConnected $CloudCreditsAvailable $CloudEvaluation $CloudExpressionBase $CloudObjectNameFormat $CloudObjectURLType $CloudRootDirectory $CloudSymbolBase $CloudUserID $CloudUserUUID $CloudVersion $CloudVersionNumber $CloudWolframEngineVersionNumber $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $Cookies $CookieStore $CreationDate $CurrentLink $CurrentTask $CurrentWebSession $DateStringFormat $DefaultAudioInputDevice $DefaultAudioOutputDevice $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultLocalBase $DefaultMailbox $DefaultNetworkInterface $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $EmbedCodeEnvironments $EmbeddableServices $EntityStores $Epilog $EvaluationCloudBase $EvaluationCloudObject $EvaluationEnvironment $ExportFormats $Failed $FinancialDataSource $FontFamilies $FormatType $FrontEnd $FrontEndSession $GeoEntityTypes $GeoLocation $GeoLocationCity $GeoLocationCountry $GeoLocationPrecision $GeoLocationSource $HistoryLength $HomeDirectory $HTMLExportRules $HTTPCookies $HTTPRequest $IgnoreEOF $ImageFormattingWidth $ImagingDevice $ImagingDevices $ImportFormats $IncomingMailSettings $InitialDirectory $Initialization $InitializationContexts $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $InterpreterTypes $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $LocalBase $LocalSymbolBase $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $MobilePhone $ModuleNumber $NetworkConnected $NetworkInterfaces $NetworkLicense $NewMessage $NewSymbol $Notebooks $NoValue $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $Permissions $PermissionsGroupBase $PersistenceBase $PersistencePath $PipeSupported $PlotTheme $Post $Pre $PreferencesDirectory $PreInitialization $PrePrint $PreRead $PrintForms $PrintLiteral $Printout3DPreviewer $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $PublisherID $RandomState $RecursionLimit $RegisteredDeviceClasses $RegisteredUserName $ReleaseNumber $RequesterAddress $RequesterWolframID $RequesterWolframUUID $ResourceSystemBase $RootDirectory $ScheduledTask $ScriptCommandLine $ScriptInputString $SecuredAuthenticationKeyTokens $ServiceCreditsAvailable $Services $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SourceLink $SSHAuthentication $SummaryBoxDataSizeLimit $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemMemory $SystemShell $SystemTimeZone $SystemWordLength $TemplatePath $TemporaryDirectory $TemporaryPrefix $TestFileName $TextStyle $TimedOut $TimeUnit $TimeZone $TimeZoneEntity $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $UnitSystem $Urgent $UserAddOnsDirectory $UserAgentLanguages $UserAgentMachine $UserAgentName $UserAgentOperatingSystem $UserAgentString $UserAgentVersion $UserBaseDirectory $UserDocumentsDirectory $Username $UserName $UserURLBase $Version $VersionNumber $VoiceStyles $WolframID $WolframUUID\",c:[e.C(\"\\\\(\\\\*\",\"\\\\*\\\\)\",{c:[\"self\"]}),e.QSM,e.CNM]}});hljs.registerLanguage(\"vim\",function(e){return{l:/[!#@\\w]+/,k:{keyword:\"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank\",built_in:\"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp\"},i:/;/,c:[e.NM,{cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\"},{cN:\"string\",b:/\"(\\\\\"|\\n\\\\|[^\"\\n])*\"/},e.C('\"',\"$\"),{cN:\"variable\",b:/[bwtglsav]:[\\w\\d_]*/},{cN:\"function\",bK:\"function function!\",e:\"$\",relevance:0,c:[e.TM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\"}]},{cN:\"symbol\",b:/<[\\w-]+>/}]}});hljs.registerLanguage(\"makefile\",function(e){var i={cN:\"variable\",v:[{b:\"\\\\$\\\\(\"+e.UIR+\"\\\\)\",c:[e.BE]},{b:/\\$[@%<?\\^\\+\\*]/}]},r={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,i]},a={cN:\"variable\",b:/\\$\\([\\w-]+\\s/,e:/\\)/,k:{built_in:\"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value\"},c:[i]},n={b:\"^\"+e.UIR+\"\\\\s*(?=[:+?]?=)\"},t={cN:\"section\",b:/^[^\\s]+:/,e:/$/,c:[i]};return{aliases:[\"mk\",\"mak\"],k:\"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath\",l:/[\\w-]+/,c:[e.HCM,i,r,a,n,{cN:\"meta\",b:/^\\.PHONY:/,e:/$/,k:{\"meta-keyword\":\".PHONY\"},l:/[\\.\\w]+/},t]}});hljs.registerLanguage(\"objectivec\",function(e){var t=/[a-zA-Z@][a-zA-Z0-9_]*/,i=\"@interface @class @protocol @implementation\";return{aliases:[\"mm\",\"objc\",\"obj-c\"],k:{keyword:\"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN\",literal:\"false true FALSE TRUE nil YES NO NULL\",built_in:\"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once\"},l:t,i:\"</\",c:[{cN:\"built_in\",b:\"\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+\"},e.CLCM,e.CBCM,e.CNM,e.QSM,e.ASM,{cN:\"string\",v:[{b:'@\"',e:'\"',i:\"\\\\n\",c:[e.BE]}]},{cN:\"meta\",b:/#\\s*[a-z]+\\b/,e:/$/,k:{\"meta-keyword\":\"if else elif endif define undef warning error line pragma ifdef ifndef include\"},c:[{b:/\\\\\\n/,relevance:0},e.inherit(e.QSM,{cN:\"meta-string\"}),{cN:\"meta-string\",b:/<.*?>/,e:/$/,i:\"\\\\n\"},e.CLCM,e.CBCM]},{cN:\"class\",b:\"(\"+i.split(\" \").join(\"|\")+\")\\\\b\",e:\"({|$)\",eE:!0,k:i,l:t,c:[e.UTM]},{b:\"\\\\.\"+e.UIR,relevance:0}]}});hljs.registerLanguage(\"shell\",function(s){return{aliases:[\"console\"],c:[{cN:\"meta\",b:\"^\\\\s{0,3}[/\\\\w\\\\d\\\\[\\\\]()@-]*[>%$#]\",starts:{e:\"$\",sL:\"bash\"}}]}});hljs.registerLanguage(\"erlang\",function(e){var r=\"[a-z'][a-zA-Z0-9_']*\",c=\"(\"+r+\":\"+r+\"|\"+r+\")\",n={keyword:\"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor\",literal:\"false true\"},a=e.C(\"%\",\"$\"),b={cN:\"number\",b:\"\\\\b(\\\\d+#[a-fA-F0-9]+|\\\\d+(\\\\.\\\\d+)?([eE][-+]?\\\\d+)?)\",relevance:0},i={b:\"fun\\\\s+\"+r+\"/\\\\d+\"},l={b:c+\"\\\\(\",e:\"\\\\)\",rB:!0,relevance:0,c:[{b:c,relevance:0},{b:\"\\\\(\",e:\"\\\\)\",eW:!0,rE:!0,relevance:0}]},d={b:\"{\",e:\"}\",relevance:0},o={b:\"\\\\b_([A-Z][A-Za-z0-9_]*)?\",relevance:0},t={b:\"[A-Z][a-zA-Z0-9_]*\",relevance:0},v={b:\"#\"+e.UIR,relevance:0,rB:!0,c:[{b:\"#\"+e.UIR,relevance:0},{b:\"{\",e:\"}\",relevance:0}]},f={bK:\"fun receive if try case\",e:\"end\",k:n};f.c=[a,i,e.inherit(e.ASM,{cN:\"\"}),f,l,e.QSM,b,d,o,t,v];var s=[a,i,f,l,e.QSM,b,d,o,t,v];l.c[1].c=s,d.c=s;var u={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:v.c[1].c=s};return{aliases:[\"erl\"],k:n,i:\"(</|\\\\*=|\\\\+=|-=|/\\\\*|\\\\*/|\\\\(\\\\*|\\\\*\\\\))\",c:[{cN:\"function\",b:\"^\"+r+\"\\\\s*\\\\(\",e:\"->\",rB:!0,i:\"\\\\(|#|//|/\\\\*|\\\\\\\\|:|;\",c:[u,e.inherit(e.TM,{b:r})],starts:{e:\";|\\\\.\",k:n,c:s}},a,{b:\"^-\",e:\"\\\\.\",relevance:0,eE:!0,rB:!0,l:\"-\"+e.IR,k:\"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec\",c:[u]},b,e.QSM,v,o,t,d,{b:/\\.$/}]}});hljs.registerLanguage(\"powershell\",function(e){var t={keyword:\"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter\"},n={b:\"`[\\\\s\\\\S]\",relevance:0},c={cN:\"variable\",v:[{b:/\\$\\B/},{cN:\"keyword\",b:/\\$this/},{b:/\\$[\\w\\d][\\w\\d_:]*/}]},i={cN:\"string\",v:[{b:/\"/,e:/\"/},{b:/@\"/,e:/^\"@/}],c:[n,c,{cN:\"variable\",b:/\\$[A-z]/,e:/[^A-z]/}]},a={cN:\"string\",v:[{b:/'/,e:/'/},{b:/@'/,e:/^'@/}]},r=e.inherit(e.C(null,null),{v:[{b:/#/,e:/$/},{b:/<#/,e:/#>/}],c:[{cN:\"doctag\",v:[{b:/\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{b:/\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+/}]}]}),o={cN:\"built_in\",v:[{b:\"(\".concat(\"Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|New|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Complete|Confirm|Deny|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where\",\")+(-)[\\\\w\\\\d]+\")}]},l={cN:\"class\",bK:\"class enum\",e:/\\s*[{]/,eE:!0,relevance:0,c:[e.TM]},s={cN:\"function\",b:/function\\s+/,e:/\\s*\\{|$/,eE:!0,rB:!0,relevance:0,c:[{b:\"function\",relevance:0,cN:\"keyword\"},{cN:\"title\",b:/\\w[\\w\\d]*((-)[\\w\\d]+)*/,relevance:0},{b:/\\(/,e:/\\)/,cN:\"params\",relevance:0,c:[c]}]},p={b:/using\\s/,e:/$/,rB:!0,c:[i,a,{cN:\"keyword\",b:/(using|assembly|command|module|namespace|type)/}]},b={v:[{cN:\"operator\",b:\"(\".concat(\"-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor\",\")\\\\b\")},{cN:\"literal\",b:/(-)[\\w\\d]+/,relevance:0}]},d={cN:\"function\",b:/\\[.*\\]\\s*[\\w]+[ ]??\\(/,e:/$/,rB:!0,relevance:0,c:[{cN:\"keyword\",b:\"(\".concat(t.keyword.toString().replace(/\\s/g,\"|\"),\")\\\\b\"),endsParent:!0,relevance:0},e.inherit(e.TM,{endsParent:!0})]},u=[d,r,n,e.NM,i,a,o,c,{cN:\"literal\",b:/\\$(null|true|false)\\b/},{cN:\"selector-tag\",b:/\\@\\B/,relevance:0}],m={b:/\\[/,e:/\\]/,eB:!0,eE:!0,relevance:0,c:[].concat(\"self\",u,{b:\"(\"+[\"string\",\"char\",\"byte\",\"int\",\"long\",\"bool\",\"decimal\",\"single\",\"double\",\"DateTime\",\"xml\",\"array\",\"hashtable\",\"void\"].join(\"|\")+\")\",cN:\"built_in\",relevance:0},{cN:\"type\",b:/[\\.\\w\\d]+/,relevance:0})};return d.c.unshift(m),{aliases:[\"ps\",\"ps1\"],l:/-?[A-z\\.\\-]+/,cI:!0,k:t,c:u.concat(l,s,p,b,m)}});hljs.registerLanguage(\"typescript\",function(e){var r=\"[A-Za-z$_][0-9A-Za-z$_]*\",t={keyword:\"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract as from extends async await\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void Promise\"},n={cN:\"meta\",b:\"@\"+r},a={b:\"\\\\(\",e:/\\)/,k:t,c:[\"self\",e.QSM,e.ASM,e.NM]},c={cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:t,c:[e.CLCM,e.CBCM,n,a]},s={cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)n?\"},{b:\"\\\\b(0[oO][0-7]+)n?\"},{b:e.CNR+\"n?\"}],relevance:0},o={cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\",k:t,c:[]},i={b:\"html`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"xml\"}},l={b:\"css`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"css\"}},b={cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,o]};return o.c=[e.ASM,e.QSM,i,l,b,s,e.RM],{aliases:[\"ts\"],k:t,c:[{cN:\"meta\",b:/^\\s*['\"]use strict['\"]/},e.ASM,e.QSM,i,l,b,e.CLCM,e.CBCM,s,{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{cN:\"function\",b:\"(\\\\(.*?\\\\)|\"+e.IR+\")\\\\s*=>\",rB:!0,e:\"\\\\s*=>\",c:[{cN:\"params\",v:[{b:e.IR},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:t,c:[\"self\",e.CLCM,e.CBCM]}]}]}],relevance:0},{cN:\"function\",bK:\"function\",e:/[\\{;]/,eE:!0,k:t,c:[\"self\",e.inherit(e.TM,{b:r}),c],i:/%/,relevance:0},{bK:\"constructor\",e:/[\\{;]/,eE:!0,c:[\"self\",c]},{b:/module\\./,k:{built_in:\"module\"},relevance:0},{bK:\"module\",e:/\\{/,eE:!0},{bK:\"interface\",e:/\\{/,eE:!0,k:\"interface extends\"},{b:/\\$[(.]/},{b:\"\\\\.\"+e.IR,relevance:0},n,a]}});hljs.registerLanguage(\"fortran\",function(e){return{cI:!0,aliases:[\"f90\",\"f95\"],k:{literal:\".False. .True.\",keyword:\"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then block endblock public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data\",built_in:\"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image\"},i:/\\/\\*/,c:[e.inherit(e.ASM,{cN:\"string\",relevance:0}),e.inherit(e.QSM,{cN:\"string\",relevance:0}),{cN:\"function\",bK:\"subroutine function program\",i:\"[${=\\\\n]\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\"}]},e.C(\"!\",\"$\",{relevance:0}),{cN:\"number\",b:\"(?=\\\\b|\\\\+|\\\\-|\\\\.)(?=\\\\.\\\\d|\\\\d)(?:\\\\d+)?(?:\\\\.?\\\\d*)(?:[de][+-]?\\\\d+)?\\\\b\\\\.?\",relevance:0}]}});hljs.registerLanguage(\"php\",function(e){var c={b:\"\\\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*\"},i={cN:\"meta\",b:/<\\?(php)?|\\?>/},t={cN:\"string\",c:[e.BE,i],v:[{b:'b\"',e:'\"'},{b:\"b'\",e:\"'\"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},a={v:[e.BNM,e.CNM]};return{aliases:[\"php\",\"php3\",\"php4\",\"php5\",\"php6\",\"php7\"],cI:!0,k:\"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally\",c:[e.HCM,e.C(\"//\",\"$\",{c:[i]}),e.C(\"/\\\\*\",\"\\\\*/\",{c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.C(\"__halt_compiler.+?;\",!1,{eW:!0,k:\"__halt_compiler\",l:e.UIR}),{cN:\"string\",b:/<<<['\"]?\\w+['\"]?$/,e:/^\\w+;?$/,c:[e.BE,{cN:\"subst\",v:[{b:/\\$\\w+/},{b:/\\{\\$/,e:/\\}/}]}]},i,{cN:\"keyword\",b:/\\$this\\b/},c,{b:/(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/},{cN:\"function\",bK:\"function\",e:/[;{]/,eE:!0,i:\"\\\\$|\\\\[|%\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:[\"self\",c,e.CBCM,t,a]}]},{cN:\"class\",bK:\"class interface\",e:\"{\",eE:!0,i:/[:\\(\\$\"]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"namespace\",e:\";\",i:/[\\.']/,c:[e.UTM]},{bK:\"use\",e:\";\",c:[e.UTM]},{b:\"=>\"},t,a]}});hljs.registerLanguage(\"haskell\",function(e){var i={v:[e.C(\"--\",\"$\"),e.C(\"{-\",\"-}\",{c:[\"self\"]})]},a={cN:\"meta\",b:\"{-#\",e:\"#-}\"},l={cN:\"meta\",b:\"^#\",e:\"$\"},c={cN:\"type\",b:\"\\\\b[A-Z][\\\\w']*\",relevance:0},n={b:\"\\\\(\",e:\"\\\\)\",i:'\"',c:[a,l,{cN:\"type\",b:\"\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?\"},e.inherit(e.TM,{b:\"[_a-z][\\\\w']*\"}),i]};return{aliases:[\"hs\"],k:\"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec\",c:[{bK:\"module\",e:\"where\",k:\"module where\",c:[n,i],i:\"\\\\W\\\\.|;\"},{b:\"\\\\bimport\\\\b\",e:\"$\",k:\"import qualified as hiding\",c:[n,i],i:\"\\\\W\\\\.|;\"},{cN:\"class\",b:\"^(\\\\s*)?(class|instance)\\\\b\",e:\"where\",k:\"class family instance where\",c:[c,n,i]},{cN:\"class\",b:\"\\\\b(data|(new)?type)\\\\b\",e:\"$\",k:\"data family type newtype deriving\",c:[a,c,n,{b:\"{\",e:\"}\",c:n.c},i]},{bK:\"default\",e:\"$\",c:[c,n,i]},{bK:\"infix infixl infixr\",e:\"$\",c:[e.CNM,i]},{b:\"\\\\bforeign\\\\b\",e:\"$\",k:\"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe\",c:[c,e.QSM,i]},{cN:\"meta\",b:\"#!\\\\/usr\\\\/bin\\\\/env runhaskell\",e:\"$\"},a,l,e.QSM,e.CNM,c,e.inherit(e.TM,{b:\"^[_a-z][\\\\w']*\"}),i,{b:\"->|<-\"}]}});hljs.registerLanguage(\"coffeescript\",function(e){var c={keyword:\"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not\",literal:\"true false null undefined yes no on off\",built_in:\"npm require console print module global window document\"},n=\"[A-Za-z$_][0-9A-Za-z$_]*\",r={cN:\"subst\",b:/#\\{/,e:/}/,k:c},i=[e.BNM,e.inherit(e.CNM,{starts:{e:\"(\\\\s*/)?\",relevance:0}}),{cN:\"string\",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/\"\"\"/,e:/\"\"\"/,c:[e.BE,r]},{b:/\"/,e:/\"/,c:[e.BE,r]}]},{cN:\"regexp\",v:[{b:\"///\",e:\"///\",c:[r,e.HCM]},{b:\"//[gim]{0,3}(?=\\\\W)\",relevance:0},{b:/\\/(?![ *]).*?(?![\\\\]).\\/[gim]{0,3}(?=\\W)/}]},{b:\"@\"+n},{sL:\"javascript\",eB:!0,eE:!0,v:[{b:\"```\",e:\"```\"},{b:\"`\",e:\"`\"}]}];r.c=i;var s=e.inherit(e.TM,{b:n}),t=\"(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>\",a={cN:\"params\",b:\"\\\\([^\\\\(]\",rB:!0,c:[{b:/\\(/,e:/\\)/,k:c,c:[\"self\"].concat(i)}]};return{aliases:[\"coffee\",\"cson\",\"iced\"],k:c,i:/\\/\\*/,c:i.concat([e.C(\"###\",\"###\"),e.HCM,{cN:\"function\",b:\"^\\\\s*\"+n+\"\\\\s*=\\\\s*\"+t,e:\"[-=]>\",rB:!0,c:[s,a]},{b:/[:\\(,=]\\s*/,relevance:0,c:[{cN:\"function\",b:t,e:\"[-=]>\",rB:!0,c:[a]}]},{cN:\"class\",bK:\"class\",e:\"$\",i:/[:=\"\\[\\]]/,c:[{bK:\"extends\",eW:!0,i:/[:=\"\\[\\]]/,c:[s]},s]},{b:n+\":\",e:\":\",rB:!0,rE:!0,relevance:0}])}});hljs.registerLanguage(\"r\",function(e){var r=\"([a-zA-Z]|\\\\.[a-zA-Z.])[a-zA-Z0-9._]*\";return{c:[e.HCM,{b:r,l:r,k:{keyword:\"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...\",literal:\"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10\"},relevance:0},{cN:\"number\",b:\"0[xX][0-9a-fA-F]+[Li]?\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\d+(?:[eE][+\\\\-]?\\\\d*)?L\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\d+\\\\.(?!\\\\d)(?:i\\\\b)?\",relevance:0},{cN:\"number\",b:\"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\",relevance:0},{b:\"`\",e:\"`\",relevance:0},{cN:\"string\",c:[e.BE],v:[{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]}]}});hljs.registerLanguage(\"autohotkey\",function(e){var a={b:\"`[\\\\s\\\\S]\"};return{cI:!0,aliases:[\"ahk\"],k:{keyword:\"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group\",literal:\"true false NOT AND OR\",built_in:\"ComSpec Clipboard ClipboardAll ErrorLevel\"},c:[a,e.inherit(e.QSM,{c:[a]}),e.C(\";\",\"$\",{relevance:0}),e.CBCM,{cN:\"number\",b:e.NR,relevance:0},{cN:\"variable\",b:\"%[a-zA-Z0-9#_$@]+%\"},{cN:\"built_in\",b:\"^\\\\s*\\\\w+\\\\s*(,|%)\"},{cN:\"title\",v:[{b:'^[^\\\\n\";]+::(?!=)'},{b:'^[^\\\\n\";]+:(?!=)',relevance:0}]},{cN:\"meta\",b:\"^\\\\s*#\\\\w+\",e:\"$\",relevance:0},{cN:\"built_in\",b:\"A_[a-zA-Z0-9]+\"},{b:\",\\\\s*,\"}]}});hljs.registerLanguage(\"elixir\",function(e){var b=\"[a-zA-Z_][a-zA-Z0-9_.]*(\\\\!|\\\\?)?\",c=\"and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote require import with|0\",n={cN:\"subst\",b:\"#\\\\{\",e:\"}\",l:b,k:c},r=\"[/|([{<\\\"']\",a={cN:\"string\",b:\"~[a-z](?=\"+r+\")\",c:[{endsParent:!0,c:[{c:[e.BE,n],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/\\//,e:/\\//},{b:/\\|/,e:/\\|/},{b:/\\(/,e:/\\)/},{b:/\\[/,e:/\\]/},{b:/\\{/,e:/\\}/},{b:/</,e:/>/}]}]}]},i={cN:\"string\",b:\"~[A-Z](?=\"+r+\")\",c:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/\\//,e:/\\//},{b:/\\|/,e:/\\|/},{b:/\\(/,e:/\\)/},{b:/\\[/,e:/\\]/},{b:/\\{/,e:/\\}/},{b:/\\</,e:/\\>/}]},l={cN:\"string\",c:[e.BE,n],v:[{b:/\"\"\"/,e:/\"\"\"/},{b:/'''/,e:/'''/},{b:/~S\"\"\"/,e:/\"\"\"/,c:[]},{b:/~S\"/,e:/\"/,c:[]},{b:/~S'''/,e:/'''/,c:[]},{b:/~S'/,e:/'/,c:[]},{b:/'/,e:/'/},{b:/\"/,e:/\"/}]},s={cN:\"function\",bK:\"def defp defmacro\",e:/\\B\\b/,c:[e.inherit(e.TM,{b:b,endsParent:!0})]},t=e.inherit(s,{cN:\"class\",bK:\"defimpl defmodule defprotocol defrecord\",e:/\\bdo\\b|$|;/}),d=[l,i,a,e.HCM,t,s,{b:\"::\"},{cN:\"symbol\",b:\":(?![\\\\s:])\",c:[l,{b:\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\"}],relevance:0},{cN:\"symbol\",b:b+\":(?!:)\",relevance:0},{cN:\"number\",b:\"(\\\\b0o[0-7_]+)|(\\\\b0b[01_]+)|(\\\\b0x[0-9a-fA-F_]+)|(-?\\\\b[1-9][0-9_]*(.[0-9_]+([eE][-+]?[0-9]+)?)?)\",relevance:0},{cN:\"variable\",b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{b:\"->\"},{b:\"(\"+e.RSR+\")\\\\s*\",c:[e.HCM,{cN:\"regexp\",i:\"\\\\n\",c:[e.BE,n],v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}],relevance:0}];return{l:b,k:c,c:n.c=d}});hljs.registerLanguage(\"gradle\",function(e){return{cI:!0,k:{keyword:\"task project allprojects subprojects artifacts buildscript configurations dependencies repositories sourceSets description delete from into include exclude source classpath destinationDir includes options sourceCompatibility targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant def abstract break case catch continue default do else extends final finally for if implements instanceof native new private protected public return static switch synchronized throw throws transient try volatile while strictfp package import false null super this true antlrtask checkstyle codenarc copy boolean byte char class double float int interface long short void compile runTime file fileTree abs any append asList asWritable call collect compareTo count div dump each eachByte eachFile eachLine every find findAll flatten getAt getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter newReader newWriter next plus pop power previous print println push putAt read readBytes readLines reverse reverseEach round size sort splitEachLine step subMap times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader withStream withWriter withWriterAppend write writeLine\"},c:[e.CLCM,e.CBCM,e.ASM,e.QSM,e.NM,e.RM]}});hljs.registerLanguage(\"css\",function(e){var c={b:/(?:[A-Z\\_\\.\\-]+|--[a-zA-Z0-9_-]+)\\s*:/,rB:!0,e:\";\",eW:!0,c:[{cN:\"attribute\",b:/\\S/,e:\":\",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\\w-]+\\(/,rB:!0,c:[{cN:\"built_in\",b:/[\\w-]+/},{b:/\\(/,e:/\\)/,c:[e.ASM,e.QSM,e.CSSNM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:\"number\",b:\"#[0-9A-Fa-f]+\"},{cN:\"meta\",b:\"!important\"}]}}]};return{cI:!0,i:/[=\\/|'\\$]/,c:[e.CBCM,{cN:\"selector-id\",b:/#[A-Za-z0-9_-]+/},{cN:\"selector-class\",b:/\\.[A-Za-z0-9_-]+/},{cN:\"selector-attr\",b:/\\[/,e:/\\]/,i:\"$\",c:[e.ASM,e.QSM]},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"@(page|font-face)\",l:\"@[a-z-]+\",k:\"@page @font-face\"},{b:\"@\",e:\"[{;]\",i:/:/,rB:!0,c:[{cN:\"keyword\",b:/@\\-?\\w[\\w]*(\\-\\w+)*/},{b:/\\s/,eW:!0,eE:!0,relevance:0,k:\"and or not only\",c:[{b:/[a-z-]+:/,cN:\"attribute\"},e.ASM,e.QSM,e.CSSNM]}]},{cN:\"selector-tag\",b:\"[a-zA-Z-][a-zA-Z0-9_-]*\",relevance:0},{b:\"{\",e:\"}\",i:/\\S/,c:[e.CBCM,c]}]}});\n\nexports.hljs = hljs;\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/highlight/highlight.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/highlight/highlight.css": {
"text": "/*\n\nOriginal highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 0.5em;\n background: #F0F0F0;\n}\n\n\n/* Base color: saturation 0; */\n\n.hljs,\n.hljs-subst {\n color: #444;\n}\n\n.hljs-comment {\n color: #888888;\n}\n\n.hljs-keyword,\n.hljs-attribute,\n.hljs-selector-tag,\n.hljs-meta-keyword,\n.hljs-doctag,\n.hljs-name {\n font-weight: bold;\n}\n\n\n/* User color: hue: 0 */\n\n.hljs-type,\n.hljs-string,\n.hljs-number,\n.hljs-selector-id,\n.hljs-selector-class,\n.hljs-quote,\n.hljs-template-tag,\n.hljs-deletion {\n color: #880000;\n}\n\n.hljs-title,\n.hljs-section {\n color: #880000;\n font-weight: bold;\n}\n\n.hljs-regexp,\n.hljs-symbol,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-link,\n.hljs-selector-attr,\n.hljs-selector-pseudo {\n color: #BC6060;\n}\n\n\n/* Language color: hue: 90; */\n\n.hljs-literal {\n color: #78A960;\n}\n\n.hljs-built_in,\n.hljs-bullet,\n.hljs-code,\n.hljs-addition {\n color: #397300;\n}\n\n\n/* Meta color: hue: 200 */\n\n.hljs-meta {\n color: #1f7199;\n}\n\n.hljs-meta-string {\n color: #4d99bf;\n}\n\n\n/* Misc effects */\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/highlight/highlight.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/tiddlywiki/highlight/highlightblock.js": {
"title": "$:/plugins/tiddlywiki/highlight/highlightblock.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/highlight/highlightblock.js\ntype: application/javascript\nmodule-type: widget\n\nWraps up the fenced code blocks parser for highlight and use in TiddlyWiki5\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TYPE_MAPPINGS_BASE = \"$:/config/HighlightPlugin/TypeMappings/\";\n\nvar CodeBlockWidget = require(\"$:/core/modules/widgets/codeblock.js\").codeblock;\n\nvar hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n\nhljs.configure({tabReplace: \" \"});\t\n\nCodeBlockWidget.prototype.postRender = function() {\n\tvar domNode = this.domNodes[0],\n\t\tlanguage = this.language,\n\t\ttiddler = this.wiki.getTiddler(TYPE_MAPPINGS_BASE + language);\n\tif(tiddler) {\n\t\tlanguage = tiddler.fields.text || \"\";\n\t}\n\tif(language && hljs.getLanguage(language)) {\n\t\tdomNode.className = language.toLowerCase() + \" hljs\";\n\t\tif($tw.browser && !domNode.isTiddlyWikiFakeDom) {\n\t\t\thljs.highlightBlock(domNode);\t\t\t\n\t\t} else {\n\t\t\tvar text = domNode.textContent;\n\t\t\tdomNode.children[0].innerHTML = hljs.fixMarkup(hljs.highlight(language,text).value);\n\t\t\t// If we're using the fakedom then specially save the original raw text\n\t\t\tif(domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tdomNode.children[0].textInnerHTML = text;\n\t\t\t}\n\t\t}\n\t}\t\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tiddlywiki/highlight/howto": {
"title": "$:/plugins/tiddlywiki/highlight/howto",
"text": "! Supporting Additional Languages\n \nThe [[highlight.js|https://github.com/highlightjs/highlight.js]] project supports many languages. Only a subset of these languages are supported by the plugin. It is possible for users to change the set of languages supported by the plugin by following these steps:\n \n# Go to the highlight.js project [[download page|https://highlightjs.org/download/]], select the language definitions to include, and press the Download button to download a zip archive containing customised support files for a highlight.js syntax highlighting server.\n# Locate the `highlight.pack.js` file in the highlight plugin -- on a stock Debian 8 system running Tiddlywiki5 under node-js it is located at `/usr/local/lib/node_modules/tiddlywiki/plugins/tiddlywiki/highlight/files/highlight.pack.js`.\n# Replace the plugin `highlight.pack.js` file located in step 2 with the one from the downloaded archive obtained in step 1.\n# Restart the Tiddlywiki server.\n"
},
"$:/plugins/tiddlywiki/highlight/license": {
"title": "$:/plugins/tiddlywiki/highlight/license",
"type": "text/plain",
"text": "Copyright (c) 2006, Ivan Sagalaev\nAll rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * Neither the name of highlight.js nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
},
"$:/plugins/tiddlywiki/highlight/readme": {
"title": "$:/plugins/tiddlywiki/highlight/readme",
"text": "This plugin provides syntax highlighting of code blocks using v9.18.1 of [[highlight.js|https://github.com/isagalaev/highlight.js]] from Ivan Sagalaev.\n\n! Usage\n\nWhen the plugin is installed it automatically applies highlighting to all codeblocks defined with triple backticks or with the CodeBlockWidget.\n\nThe language can optionally be specified after the opening triple braces:\n\n<$codeblock code=\"\"\"```css\n * { margin: 0; padding: 0; } /* micro reset */\n\nhtml { font-size: 62.5%; }\nbody { font-size: 14px; font-size: 1.4rem; } /* =14px */\nh1 { font-size: 24px; font-size: 2.4rem; } /* =24px */\n```\"\"\"/>\n\nIf no language is specified highlight.js will attempt to automatically detect the language.\n\n! Built-in Language Brushes\n\nThe plugin includes support for the following languages (referred to as \"brushes\" by highlight.js):\n\n* apache\n* arduino\n* arm assembly\n* asciidoc\n* autohotkey\n* awk\n* bash\n* cmake\n* coffeescript\n* cpp\n* cs\n* css\n* diff\n* dockerfile\n* erlang\n* elixir\n* fortran\n* go\n* gradle\n* haskell\n* html\n* http\n* ini\n* intel x86 assembly\n* java\n* javascript\n* json\n* kotlin\n* less\n* lua\n* makefile\n* markdown\n* mathematica\n* matlab\n* nginx\n* objectivec\n* perl\n* php\n* plaintext\n* powershell\n* properties\n* python\n* R\n* ruby\n* rust\n* scss\n* shell session\n* sql\n* swift\n* toml\n* typescript\n* vala\n* vim script\n* xml\n* yaml\n\nYou can also specify the language as a MIME content type (eg `text/html` or `text/css`). The mapping is accomplished via mapping tiddlers whose titles start with `$:/config/HighlightPlugin/TypeMappings/`.\n"
},
"$:/plugins/tiddlywiki/highlight/styles": {
"title": "$:/plugins/tiddlywiki/highlight/styles",
"tags": "[[$:/tags/Stylesheet]]",
"text": ".hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.hljs-comment,.diff .hljs-header,.hljs-javadoc{color:#998;font-style:italic}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:bold}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:teal}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-id,.scss .hljs-preprocessor{color:#900;font-weight:bold}.hljs-list .hljs-keyword,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rule .hljs-property,.django .hljs-tag .hljs-keyword{color:navy;font-weight:normal}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.hljs-name{color:teal}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.clojure .hljs-keyword,.scheme .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}"
},
"$:/plugins/tiddlywiki/highlight/usage": {
"title": "$:/plugins/tiddlywiki/highlight/usage",
"text": "! Usage\n\nFenced code blocks can have a language specifier added to trigger highlighting in a specific language. Otherwise heuristics are used to detect the language.\n\n```\n ```js\n var a = b + c; // Highlighted as JavaScript\n ```\n```\n! Adding Themes\n\nYou can add themes from highlight.js by copying the CSS to a new tiddler and tagging it with [[$:/tags/Stylesheet]]. The available themes can be found on GitHub:\n\nhttps://github.com/isagalaev/highlight.js/tree/master/src/styles\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/markdown/EditorToolbar/bold": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/bold",
"list-after": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"**\"\n\tsuffix=\"**\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1",
"list-after": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-1))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2",
"list-after": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-2))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"2\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3",
"list-after": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-3))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"3\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4",
"list-after": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-4))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"4\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5",
"list-after": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-5))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"5\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6",
"list-after": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-6))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"6\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/italic": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/italic",
"list-after": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"*\"\n\tsuffix=\"*\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet",
"list-after": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((list-bullet))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number",
"list-after": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"1.\"\n\tcount=\"1\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line",
"list-after": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/quote": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/quote",
"list-after": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\">\"\n\tcount=\"1\"\n/>\n"
},
"$:/config/markdown/breaks": {
"title": "$:/config/markdown/breaks",
"text": "false"
},
"$:/config/markdown/linkNewWindow": {
"title": "$:/config/markdown/linkNewWindow",
"text": "true"
},
"$:/config/markdown/linkify": {
"title": "$:/config/markdown/linkify",
"text": "false"
},
"$:/config/markdown/quotes": {
"title": "$:/config/markdown/quotes",
"text": "“”‘’"
},
"$:/config/markdown/renderWikiText": {
"title": "$:/config/markdown/renderWikiText",
"text": "true"
},
"$:/config/markdown/renderWikiTextPragma": {
"title": "$:/config/markdown/renderWikiTextPragma",
"text": "\\rules only html image macrocallinline syslink transcludeinline wikilink filteredtranscludeblock macrocallblock transcludeblock"
},
"$:/config/markdown/typographer": {
"title": "$:/config/markdown/typographer",
"text": "false"
},
"$:/language/Docs/Types/text/x-markdown": {
"title": "$:/language/Docs/Types/text/x-markdown",
"description": "Markdown",
"name": "text/x-markdown",
"group": "Text"
},
"$:/plugins/tiddlywiki/markdown/remarkable.js": {
"text": "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=e||self).remarkable={})}(this,function(e){\"use strict\";var t={Aacute:\"Á\",aacute:\"á\",Abreve:\"Ă\",abreve:\"ă\",ac:\"∾\",acd:\"∿\",acE:\"∾̳\",Acirc:\"Â\",acirc:\"â\",acute:\"´\",Acy:\"А\",acy:\"а\",AElig:\"Æ\",aelig:\"æ\",af:\"\",Afr:\"������\",afr:\"������\",Agrave:\"À\",agrave:\"à\",alefsym:\"ℵ\",aleph:\"ℵ\",Alpha:\"Α\",alpha:\"α\",Amacr:\"Ā\",amacr:\"ā\",amalg:\"⨿\",AMP:\"&\",amp:\"&\",And:\"⩓\",and:\"∧\",andand:\"⩕\",andd:\"⩜\",andslope:\"⩘\",andv:\"⩚\",ang:\"∠\",ange:\"⦤\",angle:\"∠\",angmsd:\"∡\",angmsdaa:\"⦨\",angmsdab:\"⦩\",angmsdac:\"⦪\",angmsdad:\"⦫\",angmsdae:\"⦬\",angmsdaf:\"⦭\",angmsdag:\"⦮\",angmsdah:\"⦯\",angrt:\"∟\",angrtvb:\"⊾\",angrtvbd:\"⦝\",angsph:\"∢\",angst:\"Å\",angzarr:\"⍼\",Aogon:\"Ą\",aogon:\"ą\",Aopf:\"������\",aopf:\"������\",ap:\"≈\",apacir:\"⩯\",apE:\"⩰\",ape:\"≊\",apid:\"≋\",apos:\"'\",ApplyFunction:\"\",approx:\"≈\",approxeq:\"≊\",Aring:\"Å\",aring:\"å\",Ascr:\"������\",ascr:\"������\",Assign:\"≔\",ast:\"*\",asymp:\"≈\",asympeq:\"≍\",Atilde:\"Ã\",atilde:\"ã\",Auml:\"Ä\",auml:\"ä\",awconint:\"∳\",awint:\"⨑\",backcong:\"≌\",backepsilon:\"϶\",backprime:\"‵\",backsim:\"∽\",backsimeq:\"⋍\",Backslash:\"∖\",Barv:\"⫧\",barvee:\"⊽\",Barwed:\"⌆\",barwed:\"⌅\",barwedge:\"⌅\",bbrk:\"⎵\",bbrktbrk:\"⎶\",bcong:\"≌\",Bcy:\"Б\",bcy:\"б\",bdquo:\"„\",becaus:\"∵\",Because:\"∵\",because:\"∵\",bemptyv:\"⦰\",bepsi:\"϶\",bernou:\"ℬ\",Bernoullis:\"ℬ\",Beta:\"Β\",beta:\"β\",beth:\"ℶ\",between:\"≬\",Bfr:\"������\",bfr:\"������\",bigcap:\"⋂\",bigcirc:\"◯\",bigcup:\"⋃\",bigodot:\"⨀\",bigoplus:\"⨁\",bigotimes:\"⨂\",bigsqcup:\"⨆\",bigstar:\"★\",bigtriangledown:\"▽\",bigtriangleup:\"△\",biguplus:\"⨄\",bigvee:\"⋁\",bigwedge:\"⋀\",bkarow:\"⤍\",blacklozenge:\"⧫\",blacksquare:\"▪\",blacktriangle:\"▴\",blacktriangledown:\"▾\",blacktriangleleft:\"◂\",blacktriangleright:\"▸\",blank:\"␣\",blk12:\"▒\",blk14:\"░\",blk34:\"▓\",block:\"█\",bne:\"=⃥\",bnequiv:\"≡⃥\",bNot:\"⫭\",bnot:\"⌐\",Bopf:\"������\",bopf:\"������\",bot:\"⊥\",bottom:\"⊥\",bowtie:\"⋈\",boxbox:\"⧉\",boxDL:\"╗\",boxDl:\"╖\",boxdL:\"╕\",boxdl:\"┐\",boxDR:\"╔\",boxDr:\"╓\",boxdR:\"╒\",boxdr:\"┌\",boxH:\"═\",boxh:\"─\",boxHD:\"╦\",boxHd:\"╤\",boxhD:\"╥\",boxhd:\"┬\",boxHU:\"╩\",boxHu:\"╧\",boxhU:\"╨\",boxhu:\"┴\",boxminus:\"⊟\",boxplus:\"⊞\",boxtimes:\"⊠\",boxUL:\"╝\",boxUl:\"╜\",boxuL:\"╛\",boxul:\"┘\",boxUR:\"╚\",boxUr:\"╙\",boxuR:\"╘\",boxur:\"└\",boxV:\"║\",boxv:\"│\",boxVH:\"╬\",boxVh:\"╫\",boxvH:\"╪\",boxvh:\"┼\",boxVL:\"╣\",boxVl:\"╢\",boxvL:\"╡\",boxvl:\"┤\",boxVR:\"╠\",boxVr:\"╟\",boxvR:\"╞\",boxvr:\"├\",bprime:\"‵\",Breve:\"˘\",breve:\"˘\",brvbar:\"¦\",Bscr:\"ℬ\",bscr:\"������\",bsemi:\"⁏\",bsim:\"∽\",bsime:\"⋍\",bsol:\"\\\\\",bsolb:\"⧅\",bsolhsub:\"⟈\",bull:\"•\",bullet:\"•\",bump:\"≎\",bumpE:\"⪮\",bumpe:\"≏\",Bumpeq:\"≎\",bumpeq:\"≏\",Cacute:\"Ć\",cacute:\"ć\",Cap:\"⋒\",cap:\"∩\",capand:\"⩄\",capbrcup:\"⩉\",capcap:\"⩋\",capcup:\"⩇\",capdot:\"⩀\",CapitalDifferentialD:\"ⅅ\",caps:\"∩︀\",caret:\"⁁\",caron:\"ˇ\",Cayleys:\"ℭ\",ccaps:\"⩍\",Ccaron:\"Č\",ccaron:\"č\",Ccedil:\"Ç\",ccedil:\"ç\",Ccirc:\"Ĉ\",ccirc:\"ĉ\",Cconint:\"∰\",ccups:\"⩌\",ccupssm:\"⩐\",Cdot:\"Ċ\",cdot:\"ċ\",cedil:\"¸\",Cedilla:\"¸\",cemptyv:\"⦲\",cent:\"¢\",CenterDot:\"·\",centerdot:\"·\",Cfr:\"ℭ\",cfr:\"������\",CHcy:\"Ч\",chcy:\"ч\",check:\"✓\",checkmark:\"✓\",Chi:\"Χ\",chi:\"χ\",cir:\"○\",circ:\"ˆ\",circeq:\"≗\",circlearrowleft:\"↺\",circlearrowright:\"↻\",circledast:\"⊛\",circledcirc:\"⊚\",circleddash:\"⊝\",CircleDot:\"⊙\",circledR:\"®\",circledS:\"Ⓢ\",CircleMinus:\"⊖\",CirclePlus:\"⊕\",CircleTimes:\"⊗\",cirE:\"⧃\",cire:\"≗\",cirfnint:\"⨐\",cirmid:\"⫯\",cirscir:\"⧂\",ClockwiseContourIntegral:\"∲\",CloseCurlyDoubleQuote:\"”\",CloseCurlyQuote:\"’\",clubs:\"♣\",clubsuit:\"♣\",Colon:\"∷\",colon:\":\",Colone:\"⩴\",colone:\"≔\",coloneq:\"≔\",comma:\",\",commat:\"@\",comp:\"∁\",compfn:\"∘\",complement:\"∁\",complexes:\"ℂ\",cong:\"≅\",congdot:\"⩭\",Congruent:\"≡\",Conint:\"∯\",conint:\"∮\",ContourIntegral:\"∮\",Copf:\"ℂ\",copf:\"������\",coprod:\"∐\",Coproduct:\"∐\",COPY:\"©\",copy:\"©\",copysr:\"℗\",CounterClockwiseContourIntegral:\"∳\",crarr:\"↵\",Cross:\"⨯\",cross:\"✗\",Cscr:\"������\",cscr:\"������\",csub:\"⫏\",csube:\"⫑\",csup:\"⫐\",csupe:\"⫒\",ctdot:\"⋯\",cudarrl:\"⤸\",cudarrr:\"⤵\",cuepr:\"⋞\",cuesc:\"⋟\",cularr:\"↶\",cularrp:\"⤽\",Cup:\"⋓\",cup:\"∪\",cupbrcap:\"⩈\",CupCap:\"≍\",cupcap:\"⩆\",cupcup:\"⩊\",cupdot:\"⊍\",cupor:\"⩅\",cups:\"∪︀\",curarr:\"↷\",curarrm:\"⤼\",curlyeqprec:\"⋞\",curlyeqsucc:\"⋟\",curlyvee:\"⋎\",curlywedge:\"⋏\",curren:\"¤\",curvearrowleft:\"↶\",curvearrowright:\"↷\",cuvee:\"⋎\",cuwed:\"⋏\",cwconint:\"∲\",cwint:\"∱\",cylcty:\"⌭\",Dagger:\"‡\",dagger:\"†\",daleth:\"ℸ\",Darr:\"↡\",dArr:\"⇓\",darr:\"↓\",dash:\"‐\",Dashv:\"⫤\",dashv:\"⊣\",dbkarow:\"⤏\",dblac:\"˝\",Dcaron:\"Ď\",dcaron:\"ď\",Dcy:\"Д\",dcy:\"д\",DD:\"ⅅ\",dd:\"ⅆ\",ddagger:\"‡\",ddarr:\"⇊\",DDotrahd:\"⤑\",ddotseq:\"⩷\",deg:\"°\",Del:\"∇\",Delta:\"Δ\",delta:\"δ\",demptyv:\"⦱\",dfisht:\"⥿\",Dfr:\"������\",dfr:\"������\",dHar:\"⥥\",dharl:\"⇃\",dharr:\"⇂\",DiacriticalAcute:\"´\",DiacriticalDot:\"˙\",DiacriticalDoubleAcute:\"˝\",DiacriticalGrave:\"`\",DiacriticalTilde:\"˜\",diam:\"⋄\",Diamond:\"⋄\",diamond:\"⋄\",diamondsuit:\"♦\",diams:\"♦\",die:\"¨\",DifferentialD:\"ⅆ\",digamma:\"ϝ\",disin:\"⋲\",div:\"÷\",divide:\"÷\",divideontimes:\"⋇\",divonx:\"⋇\",DJcy:\"Ђ\",djcy:\"ђ\",dlcorn:\"⌞\",dlcrop:\"⌍\",dollar:\"$\",Dopf:\"������\",dopf:\"������\",Dot:\"¨\",dot:\"˙\",DotDot:\"⃜\",doteq:\"≐\",doteqdot:\"≑\",DotEqual:\"≐\",dotminus:\"∸\",dotplus:\"∔\",dotsquare:\"⊡\",doublebarwedge:\"⌆\",DoubleContourIntegral:\"∯\",DoubleDot:\"¨\",DoubleDownArrow:\"⇓\",DoubleLeftArrow:\"⇐\",DoubleLeftRightArrow:\"⇔\",DoubleLeftTee:\"⫤\",DoubleLongLeftArrow:\"⟸\",DoubleLongLeftRightArrow:\"⟺\",DoubleLongRightArrow:\"⟹\",DoubleRightArrow:\"⇒\",DoubleRightTee:\"⊨\",DoubleUpArrow:\"⇑\",DoubleUpDownArrow:\"⇕\",DoubleVerticalBar:\"∥\",DownArrow:\"↓\",Downarrow:\"⇓\",downarrow:\"↓\",DownArrowBar:\"⤓\",DownArrowUpArrow:\"⇵\",DownBreve:\"̑\",downdownarrows:\"⇊\",downharpoonleft:\"⇃\",downharpoonright:\"⇂\",DownLeftRightVector:\"⥐\",DownLeftTeeVector:\"⥞\",DownLeftVector:\"↽\",DownLeftVectorBar:\"⥖\",DownRightTeeVector:\"⥟\",DownRightVector:\"⇁\",DownRightVectorBar:\"⥗\",DownTee:\"⊤\",DownTeeArrow:\"↧\",drbkarow:\"⤐\",drcorn:\"⌟\",drcrop:\"⌌\",Dscr:\"������\",dscr:\"������\",DScy:\"Ѕ\",dscy:\"ѕ\",dsol:\"⧶\",Dstrok:\"Đ\",dstrok:\"đ\",dtdot:\"⋱\",dtri:\"▿\",dtrif:\"▾\",duarr:\"⇵\",duhar:\"⥯\",dwangle:\"⦦\",DZcy:\"Џ\",dzcy:\"џ\",dzigrarr:\"⟿\",Eacute:\"É\",eacute:\"é\",easter:\"⩮\",Ecaron:\"Ě\",ecaron:\"ě\",ecir:\"≖\",Ecirc:\"Ê\",ecirc:\"ê\",ecolon:\"≕\",Ecy:\"Э\",ecy:\"э\",eDDot:\"⩷\",Edot:\"Ė\",eDot:\"≑\",edot:\"ė\",ee:\"ⅇ\",efDot:\"≒\",Efr:\"������\",efr:\"������\",eg:\"⪚\",Egrave:\"È\",egrave:\"è\",egs:\"⪖\",egsdot:\"⪘\",el:\"⪙\",Element:\"∈\",elinters:\"⏧\",ell:\"ℓ\",els:\"⪕\",elsdot:\"⪗\",Emacr:\"Ē\",emacr:\"ē\",empty:\"∅\",emptyset:\"∅\",EmptySmallSquare:\"◻\",emptyv:\"∅\",EmptyVerySmallSquare:\"▫\",emsp:\" \",emsp13:\" \",emsp14:\" \",ENG:\"Ŋ\",eng:\"ŋ\",ensp:\" \",Eogon:\"Ę\",eogon:\"ę\",Eopf:\"������\",eopf:\"������\",epar:\"⋕\",eparsl:\"⧣\",eplus:\"⩱\",epsi:\"ε\",Epsilon:\"Ε\",epsilon:\"ε\",epsiv:\"ϵ\",eqcirc:\"≖\",eqcolon:\"≕\",eqsim:\"≂\",eqslantgtr:\"⪖\",eqslantless:\"⪕\",Equal:\"⩵\",equals:\"=\",EqualTilde:\"≂\",equest:\"≟\",Equilibrium:\"⇌\",equiv:\"≡\",equivDD:\"⩸\",eqvparsl:\"⧥\",erarr:\"⥱\",erDot:\"≓\",Escr:\"ℰ\",escr:\"ℯ\",esdot:\"≐\",Esim:\"⩳\",esim:\"≂\",Eta:\"Η\",eta:\"η\",ETH:\"Ð\",eth:\"ð\",Euml:\"Ë\",euml:\"ë\",euro:\"€\",excl:\"!\",exist:\"∃\",Exists:\"∃\",expectation:\"ℰ\",ExponentialE:\"ⅇ\",exponentiale:\"ⅇ\",fallingdotseq:\"≒\",Fcy:\"Ф\",fcy:\"ф\",female:\"♀\",ffilig:\"ffi\",fflig:\"ff\",ffllig:\"ffl\",Ffr:\"������\",ffr:\"������\",filig:\"fi\",FilledSmallSquare:\"◼\",FilledVerySmallSquare:\"▪\",fjlig:\"fj\",flat:\"♭\",fllig:\"fl\",fltns:\"▱\",fnof:\"ƒ\",Fopf:\"������\",fopf:\"������\",ForAll:\"∀\",forall:\"∀\",fork:\"⋔\",forkv:\"⫙\",Fouriertrf:\"ℱ\",fpartint:\"⨍\",frac12:\"½\",frac13:\"⅓\",frac14:\"¼\",frac15:\"⅕\",frac16:\"⅙\",frac18:\"⅛\",frac23:\"⅔\",frac25:\"⅖\",frac34:\"¾\",frac35:\"⅗\",frac38:\"⅜\",frac45:\"⅘\",frac56:\"⅚\",frac58:\"⅝\",frac78:\"⅞\",frasl:\"⁄\",frown:\"⌢\",Fscr:\"ℱ\",fscr:\"������\",gacute:\"ǵ\",Gamma:\"Γ\",gamma:\"γ\",Gammad:\"Ϝ\",gammad:\"ϝ\",gap:\"⪆\",Gbreve:\"Ğ\",gbreve:\"ğ\",Gcedil:\"Ģ\",Gcirc:\"Ĝ\",gcirc:\"ĝ\",Gcy:\"Г\",gcy:\"г\",Gdot:\"Ġ\",gdot:\"ġ\",gE:\"≧\",ge:\"≥\",gEl:\"⪌\",gel:\"⋛\",geq:\"≥\",geqq:\"≧\",geqslant:\"⩾\",ges:\"⩾\",gescc:\"⪩\",gesdot:\"⪀\",gesdoto:\"⪂\",gesdotol:\"⪄\",gesl:\"⋛︀\",gesles:\"⪔\",Gfr:\"������\",gfr:\"������\",Gg:\"⋙\",gg:\"≫\",ggg:\"⋙\",gimel:\"ℷ\",GJcy:\"Ѓ\",gjcy:\"ѓ\",gl:\"≷\",gla:\"⪥\",glE:\"⪒\",glj:\"⪤\",gnap:\"⪊\",gnapprox:\"⪊\",gnE:\"≩\",gne:\"⪈\",gneq:\"⪈\",gneqq:\"≩\",gnsim:\"⋧\",Gopf:\"������\",gopf:\"������\",grave:\"`\",GreaterEqual:\"≥\",GreaterEqualLess:\"⋛\",GreaterFullEqual:\"≧\",GreaterGreater:\"⪢\",GreaterLess:\"≷\",GreaterSlantEqual:\"⩾\",GreaterTilde:\"≳\",Gscr:\"������\",gscr:\"ℊ\",gsim:\"≳\",gsime:\"⪎\",gsiml:\"⪐\",GT:\">\",Gt:\"≫\",gt:\">\",gtcc:\"⪧\",gtcir:\"⩺\",gtdot:\"⋗\",gtlPar:\"⦕\",gtquest:\"⩼\",gtrapprox:\"⪆\",gtrarr:\"⥸\",gtrdot:\"⋗\",gtreqless:\"⋛\",gtreqqless:\"⪌\",gtrless:\"≷\",gtrsim:\"≳\",gvertneqq:\"≩︀\",gvnE:\"≩︀\",Hacek:\"ˇ\",hairsp:\" \",half:\"½\",hamilt:\"ℋ\",HARDcy:\"Ъ\",hardcy:\"ъ\",hArr:\"⇔\",harr:\"↔\",harrcir:\"⥈\",harrw:\"↭\",Hat:\"^\",hbar:\"ℏ\",Hcirc:\"Ĥ\",hcirc:\"ĥ\",hearts:\"♥\",heartsuit:\"♥\",hellip:\"…\",hercon:\"⊹\",Hfr:\"ℌ\",hfr:\"������\",HilbertSpace:\"ℋ\",hksearow:\"⤥\",hkswarow:\"⤦\",hoarr:\"⇿\",homtht:\"∻\",hookleftarrow:\"↩\",hookrightarrow:\"↪\",Hopf:\"ℍ\",hopf:\"������\",horbar:\"―\",HorizontalLine:\"─\",Hscr:\"ℋ\",hscr:\"������\",hslash:\"ℏ\",Hstrok:\"Ħ\",hstrok:\"ħ\",HumpDownHump:\"≎\",HumpEqual:\"≏\",hybull:\"⁃\",hyphen:\"‐\",Iacute:\"Í\",iacute:\"í\",ic:\"\",Icirc:\"Î\",icirc:\"î\",Icy:\"И\",icy:\"и\",Idot:\"İ\",IEcy:\"Е\",iecy:\"е\",iexcl:\"¡\",iff:\"⇔\",Ifr:\"ℑ\",ifr:\"������\",Igrave:\"Ì\",igrave:\"ì\",ii:\"ⅈ\",iiiint:\"⨌\",iiint:\"∭\",iinfin:\"⧜\",iiota:\"℩\",IJlig:\"IJ\",ijlig:\"ij\",Im:\"ℑ\",Imacr:\"Ī\",imacr:\"ī\",image:\"ℑ\",ImaginaryI:\"ⅈ\",imagline:\"ℐ\",imagpart:\"ℑ\",imath:\"ı\",imof:\"⊷\",imped:\"Ƶ\",Implies:\"⇒\",in:\"∈\",incare:\"℅\",infin:\"∞\",infintie:\"⧝\",inodot:\"ı\",Int:\"∬\",int:\"∫\",intcal:\"⊺\",integers:\"ℤ\",Integral:\"∫\",intercal:\"⊺\",Intersection:\"⋂\",intlarhk:\"⨗\",intprod:\"⨼\",InvisibleComma:\"\",InvisibleTimes:\"\",IOcy:\"Ё\",iocy:\"ё\",Iogon:\"Į\",iogon:\"į\",Iopf:\"������\",iopf:\"������\",Iota:\"Ι\",iota:\"ι\",iprod:\"⨼\",iquest:\"¿\",Iscr:\"ℐ\",iscr:\"������\",isin:\"∈\",isindot:\"⋵\",isinE:\"⋹\",isins:\"⋴\",isinsv:\"⋳\",isinv:\"∈\",it:\"\",Itilde:\"Ĩ\",itilde:\"ĩ\",Iukcy:\"І\",iukcy:\"і\",Iuml:\"Ï\",iuml:\"ï\",Jcirc:\"Ĵ\",jcirc:\"ĵ\",Jcy:\"Й\",jcy:\"й\",Jfr:\"������\",jfr:\"������\",jmath:\"ȷ\",Jopf:\"������\",jopf:\"������\",Jscr:\"������\",jscr:\"������\",Jsercy:\"Ј\",jsercy:\"ј\",Jukcy:\"Є\",jukcy:\"є\",Kappa:\"Κ\",kappa:\"κ\",kappav:\"ϰ\",Kcedil:\"Ķ\",kcedil:\"ķ\",Kcy:\"К\",kcy:\"к\",Kfr:\"������\",kfr:\"������\",kgreen:\"ĸ\",KHcy:\"Х\",khcy:\"х\",KJcy:\"Ќ\",kjcy:\"ќ\",Kopf:\"������\",kopf:\"������\",Kscr:\"������\",kscr:\"������\",lAarr:\"⇚\",Lacute:\"Ĺ\",lacute:\"ĺ\",laemptyv:\"⦴\",lagran:\"ℒ\",Lambda:\"Λ\",lambda:\"λ\",Lang:\"⟪\",lang:\"⟨\",langd:\"⦑\",langle:\"⟨\",lap:\"⪅\",Laplacetrf:\"ℒ\",laquo:\"«\",Larr:\"↞\",lArr:\"⇐\",larr:\"←\",larrb:\"⇤\",larrbfs:\"⤟\",larrfs:\"⤝\",larrhk:\"↩\",larrlp:\"↫\",larrpl:\"⤹\",larrsim:\"⥳\",larrtl:\"↢\",lat:\"⪫\",lAtail:\"⤛\",latail:\"⤙\",late:\"⪭\",lates:\"⪭︀\",lBarr:\"⤎\",lbarr:\"⤌\",lbbrk:\"❲\",lbrace:\"{\",lbrack:\"[\",lbrke:\"⦋\",lbrksld:\"⦏\",lbrkslu:\"⦍\",Lcaron:\"Ľ\",lcaron:\"ľ\",Lcedil:\"Ļ\",lcedil:\"ļ\",lceil:\"⌈\",lcub:\"{\",Lcy:\"Л\",lcy:\"л\",ldca:\"⤶\",ldquo:\"“\",ldquor:\"„\",ldrdhar:\"⥧\",ldrushar:\"⥋\",ldsh:\"↲\",lE:\"≦\",le:\"≤\",LeftAngleBracket:\"⟨\",LeftArrow:\"←\",Leftarrow:\"⇐\",leftarrow:\"←\",LeftArrowBar:\"⇤\",LeftArrowRightArrow:\"⇆\",leftarrowtail:\"↢\",LeftCeiling:\"⌈\",LeftDoubleBracket:\"⟦\",LeftDownTeeVector:\"⥡\",LeftDownVector:\"⇃\",LeftDownVectorBar:\"⥙\",LeftFloor:\"⌊\",leftharpoondown:\"↽\",leftharpoonup:\"↼\",leftleftarrows:\"⇇\",LeftRightArrow:\"↔\",Leftrightarrow:\"⇔\",leftrightarrow:\"↔\",leftrightarrows:\"⇆\",leftrightharpoons:\"⇋\",leftrightsquigarrow:\"↭\",LeftRightVector:\"⥎\",LeftTee:\"⊣\",LeftTeeArrow:\"↤\",LeftTeeVector:\"⥚\",leftthreetimes:\"⋋\",LeftTriangle:\"⊲\",LeftTriangleBar:\"⧏\",LeftTriangleEqual:\"⊴\",LeftUpDownVector:\"⥑\",LeftUpTeeVector:\"⥠\",LeftUpVector:\"↿\",LeftUpVectorBar:\"⥘\",LeftVector:\"↼\",LeftVectorBar:\"⥒\",lEg:\"⪋\",leg:\"⋚\",leq:\"≤\",leqq:\"≦\",leqslant:\"⩽\",les:\"⩽\",lescc:\"⪨\",lesdot:\"⩿\",lesdoto:\"⪁\",lesdotor:\"⪃\",lesg:\"⋚︀\",lesges:\"⪓\",lessapprox:\"⪅\",lessdot:\"⋖\",lesseqgtr:\"⋚\",lesseqqgtr:\"⪋\",LessEqualGreater:\"⋚\",LessFullEqual:\"≦\",LessGreater:\"≶\",lessgtr:\"≶\",LessLess:\"⪡\",lesssim:\"≲\",LessSlantEqual:\"⩽\",LessTilde:\"≲\",lfisht:\"⥼\",lfloor:\"⌊\",Lfr:\"������\",lfr:\"������\",lg:\"≶\",lgE:\"⪑\",lHar:\"⥢\",lhard:\"↽\",lharu:\"↼\",lharul:\"⥪\",lhblk:\"▄\",LJcy:\"Љ\",ljcy:\"љ\",Ll:\"⋘\",ll:\"≪\",llarr:\"⇇\",llcorner:\"⌞\",Lleftarrow:\"⇚\",llhard:\"⥫\",lltri:\"◺\",Lmidot:\"Ŀ\",lmidot:\"ŀ\",lmoust:\"⎰\",lmoustache:\"⎰\",lnap:\"⪉\",lnapprox:\"⪉\",lnE:\"≨\",lne:\"⪇\",lneq:\"⪇\",lneqq:\"≨\",lnsim:\"⋦\",loang:\"⟬\",loarr:\"⇽\",lobrk:\"⟦\",LongLeftArrow:\"⟵\",Longleftarrow:\"⟸\",longleftarrow:\"⟵\",LongLeftRightArrow:\"⟷\",Longleftrightarrow:\"⟺\",longleftrightarrow:\"⟷\",longmapsto:\"⟼\",LongRightArrow:\"⟶\",Longrightarrow:\"⟹\",longrightarrow:\"⟶\",looparrowleft:\"↫\",looparrowright:\"↬\",lopar:\"⦅\",Lopf:\"������\",lopf:\"������\",loplus:\"⨭\",lotimes:\"⨴\",lowast:\"∗\",lowbar:\"_\",LowerLeftArrow:\"↙\",LowerRightArrow:\"↘\",loz:\"◊\",lozenge:\"◊\",lozf:\"⧫\",lpar:\"(\",lparlt:\"⦓\",lrarr:\"⇆\",lrcorner:\"⌟\",lrhar:\"⇋\",lrhard:\"⥭\",lrm:\"\",lrtri:\"⊿\",lsaquo:\"‹\",Lscr:\"ℒ\",lscr:\"������\",Lsh:\"↰\",lsh:\"↰\",lsim:\"≲\",lsime:\"⪍\",lsimg:\"⪏\",lsqb:\"[\",lsquo:\"‘\",lsquor:\"‚\",Lstrok:\"Ł\",lstrok:\"ł\",LT:\"<\",Lt:\"≪\",lt:\"<\",ltcc:\"⪦\",ltcir:\"⩹\",ltdot:\"⋖\",lthree:\"⋋\",ltimes:\"⋉\",ltlarr:\"⥶\",ltquest:\"⩻\",ltri:\"◃\",ltrie:\"⊴\",ltrif:\"◂\",ltrPar:\"⦖\",lurdshar:\"⥊\",luruhar:\"⥦\",lvertneqq:\"≨︀\",lvnE:\"≨︀\",macr:\"¯\",male:\"♂\",malt:\"✠\",maltese:\"✠\",Map:\"⤅\",map:\"↦\",mapsto:\"↦\",mapstodown:\"↧\",mapstoleft:\"↤\",mapstoup:\"↥\",marker:\"▮\",mcomma:\"⨩\",Mcy:\"М\",mcy:\"м\",mdash:\"—\",mDDot:\"∺\",measuredangle:\"∡\",MediumSpace:\" \",Mellintrf:\"ℳ\",Mfr:\"������\",mfr:\"������\",mho:\"℧\",micro:\"µ\",mid:\"∣\",midast:\"*\",midcir:\"⫰\",middot:\"·\",minus:\"−\",minusb:\"⊟\",minusd:\"∸\",minusdu:\"⨪\",MinusPlus:\"∓\",mlcp:\"⫛\",mldr:\"…\",mnplus:\"∓\",models:\"⊧\",Mopf:\"������\",mopf:\"������\",mp:\"∓\",Mscr:\"ℳ\",mscr:\"������\",mstpos:\"∾\",Mu:\"Μ\",mu:\"μ\",multimap:\"⊸\",mumap:\"⊸\",nabla:\"∇\",Nacute:\"Ń\",nacute:\"ń\",nang:\"∠⃒\",nap:\"≉\",napE:\"⩰̸\",napid:\"≋̸\",napos:\"ʼn\",napprox:\"≉\",natur:\"♮\",natural:\"♮\",naturals:\"ℕ\",nbsp:\" \",nbump:\"≎̸\",nbumpe:\"≏̸\",ncap:\"⩃\",Ncaron:\"Ň\",ncaron:\"ň\",Ncedil:\"Ņ\",ncedil:\"ņ\",ncong:\"≇\",ncongdot:\"⩭̸\",ncup:\"⩂\",Ncy:\"Н\",ncy:\"н\",ndash:\"–\",ne:\"≠\",nearhk:\"⤤\",neArr:\"⇗\",nearr:\"↗\",nearrow:\"↗\",nedot:\"≐̸\",NegativeMediumSpace:\"\",NegativeThickSpace:\"\",NegativeThinSpace:\"\",NegativeVeryThinSpace:\"\",nequiv:\"≢\",nesear:\"⤨\",nesim:\"≂̸\",NestedGreaterGreater:\"≫\",NestedLessLess:\"≪\",NewLine:\"\\n\",nexist:\"∄\",nexists:\"∄\",Nfr:\"������\",nfr:\"������\",ngE:\"≧̸\",nge:\"≱\",ngeq:\"≱\",ngeqq:\"≧̸\",ngeqslant:\"⩾̸\",nges:\"⩾̸\",nGg:\"⋙̸\",ngsim:\"≵\",nGt:\"≫⃒\",ngt:\"≯\",ngtr:\"≯\",nGtv:\"≫̸\",nhArr:\"⇎\",nharr:\"↮\",nhpar:\"⫲\",ni:\"∋\",nis:\"⋼\",nisd:\"⋺\",niv:\"∋\",NJcy:\"Њ\",njcy:\"њ\",nlArr:\"⇍\",nlarr:\"↚\",nldr:\"‥\",nlE:\"≦̸\",nle:\"≰\",nLeftarrow:\"⇍\",nleftarrow:\"↚\",nLeftrightarrow:\"⇎\",nleftrightarrow:\"↮\",nleq:\"≰\",nleqq:\"≦̸\",nleqslant:\"⩽̸\",nles:\"⩽̸\",nless:\"≮\",nLl:\"⋘̸\",nlsim:\"≴\",nLt:\"≪⃒\",nlt:\"≮\",nltri:\"⋪\",nltrie:\"⋬\",nLtv:\"≪̸\",nmid:\"∤\",NoBreak:\"\",NonBreakingSpace:\" \",Nopf:\"ℕ\",nopf:\"������\",Not:\"⫬\",not:\"¬\",NotCongruent:\"≢\",NotCupCap:\"≭\",NotDoubleVerticalBar:\"∦\",NotElement:\"∉\",NotEqual:\"≠\",NotEqualTilde:\"≂̸\",NotExists:\"∄\",NotGreater:\"≯\",NotGreaterEqual:\"≱\",NotGreaterFullEqual:\"≧̸\",NotGreaterGreater:\"≫̸\",NotGreaterLess:\"≹\",NotGreaterSlantEqual:\"⩾̸\",NotGreaterTilde:\"≵\",NotHumpDownHump:\"≎̸\",NotHumpEqual:\"≏̸\",notin:\"∉\",notindot:\"⋵̸\",notinE:\"⋹̸\",notinva:\"∉\",notinvb:\"⋷\",notinvc:\"⋶\",NotLeftTriangle:\"⋪\",NotLeftTriangleBar:\"⧏̸\",NotLeftTriangleEqual:\"⋬\",NotLess:\"≮\",NotLessEqual:\"≰\",NotLessGreater:\"≸\",NotLessLess:\"≪̸\",NotLessSlantEqual:\"⩽̸\",NotLessTilde:\"≴\",NotNestedGreaterGreater:\"⪢̸\",NotNestedLessLess:\"⪡̸\",notni:\"∌\",notniva:\"∌\",notnivb:\"⋾\",notnivc:\"⋽\",NotPrecedes:\"⊀\",NotPrecedesEqual:\"⪯̸\",NotPrecedesSlantEqual:\"⋠\",NotReverseElement:\"∌\",NotRightTriangle:\"⋫\",NotRightTriangleBar:\"⧐̸\",NotRightTriangleEqual:\"⋭\",NotSquareSubset:\"⊏̸\",NotSquareSubsetEqual:\"⋢\",NotSquareSuperset:\"⊐̸\",NotSquareSupersetEqual:\"⋣\",NotSubset:\"⊂⃒\",NotSubsetEqual:\"⊈\",NotSucceeds:\"⊁\",NotSucceedsEqual:\"⪰̸\",NotSucceedsSlantEqual:\"⋡\",NotSucceedsTilde:\"≿̸\",NotSuperset:\"⊃⃒\",NotSupersetEqual:\"⊉\",NotTilde:\"≁\",NotTildeEqual:\"≄\",NotTildeFullEqual:\"≇\",NotTildeTilde:\"≉\",NotVerticalBar:\"∤\",npar:\"∦\",nparallel:\"∦\",nparsl:\"⫽⃥\",npart:\"∂̸\",npolint:\"⨔\",npr:\"⊀\",nprcue:\"⋠\",npre:\"⪯̸\",nprec:\"⊀\",npreceq:\"⪯̸\",nrArr:\"⇏\",nrarr:\"↛\",nrarrc:\"⤳̸\",nrarrw:\"↝̸\",nRightarrow:\"⇏\",nrightarrow:\"↛\",nrtri:\"⋫\",nrtrie:\"⋭\",nsc:\"⊁\",nsccue:\"⋡\",nsce:\"⪰̸\",Nscr:\"������\",nscr:\"������\",nshortmid:\"∤\",nshortparallel:\"∦\",nsim:\"≁\",nsime:\"≄\",nsimeq:\"≄\",nsmid:\"∤\",nspar:\"∦\",nsqsube:\"⋢\",nsqsupe:\"⋣\",nsub:\"⊄\",nsubE:\"⫅̸\",nsube:\"⊈\",nsubset:\"⊂⃒\",nsubseteq:\"⊈\",nsubseteqq:\"⫅̸\",nsucc:\"⊁\",nsucceq:\"⪰̸\",nsup:\"⊅\",nsupE:\"⫆̸\",nsupe:\"⊉\",nsupset:\"⊃⃒\",nsupseteq:\"⊉\",nsupseteqq:\"⫆̸\",ntgl:\"≹\",Ntilde:\"Ñ\",ntilde:\"ñ\",ntlg:\"≸\",ntriangleleft:\"⋪\",ntrianglelefteq:\"⋬\",ntriangleright:\"⋫\",ntrianglerighteq:\"⋭\",Nu:\"Ν\",nu:\"ν\",num:\"#\",numero:\"№\",numsp:\" \",nvap:\"≍⃒\",nVDash:\"⊯\",nVdash:\"⊮\",nvDash:\"⊭\",nvdash:\"⊬\",nvge:\"≥⃒\",nvgt:\">⃒\",nvHarr:\"⤄\",nvinfin:\"⧞\",nvlArr:\"⤂\",nvle:\"≤⃒\",nvlt:\"<⃒\",nvltrie:\"⊴⃒\",nvrArr:\"⤃\",nvrtrie:\"⊵⃒\",nvsim:\"∼⃒\",nwarhk:\"⤣\",nwArr:\"⇖\",nwarr:\"↖\",nwarrow:\"↖\",nwnear:\"⤧\",Oacute:\"Ó\",oacute:\"ó\",oast:\"⊛\",ocir:\"⊚\",Ocirc:\"Ô\",ocirc:\"ô\",Ocy:\"О\",ocy:\"о\",odash:\"⊝\",Odblac:\"Ő\",odblac:\"ő\",odiv:\"⨸\",odot:\"⊙\",odsold:\"⦼\",OElig:\"Œ\",oelig:\"œ\",ofcir:\"⦿\",Ofr:\"������\",ofr:\"������\",ogon:\"˛\",Ograve:\"Ò\",ograve:\"ò\",ogt:\"⧁\",ohbar:\"⦵\",ohm:\"Ω\",oint:\"∮\",olarr:\"↺\",olcir:\"⦾\",olcross:\"⦻\",oline:\"‾\",olt:\"⧀\",Omacr:\"Ō\",omacr:\"ō\",Omega:\"Ω\",omega:\"ω\",Omicron:\"Ο\",omicron:\"ο\",omid:\"⦶\",ominus:\"⊖\",Oopf:\"������\",oopf:\"������\",opar:\"⦷\",OpenCurlyDoubleQuote:\"“\",OpenCurlyQuote:\"‘\",operp:\"⦹\",oplus:\"⊕\",Or:\"⩔\",or:\"∨\",orarr:\"↻\",ord:\"⩝\",order:\"ℴ\",orderof:\"ℴ\",ordf:\"ª\",ordm:\"º\",origof:\"⊶\",oror:\"⩖\",orslope:\"⩗\",orv:\"⩛\",oS:\"Ⓢ\",Oscr:\"������\",oscr:\"ℴ\",Oslash:\"Ø\",oslash:\"ø\",osol:\"⊘\",Otilde:\"Õ\",otilde:\"õ\",Otimes:\"⨷\",otimes:\"⊗\",otimesas:\"⨶\",Ouml:\"Ö\",ouml:\"ö\",ovbar:\"⌽\",OverBar:\"‾\",OverBrace:\"⏞\",OverBracket:\"⎴\",OverParenthesis:\"⏜\",par:\"∥\",para:\"¶\",parallel:\"∥\",parsim:\"⫳\",parsl:\"⫽\",part:\"∂\",PartialD:\"∂\",Pcy:\"П\",pcy:\"п\",percnt:\"%\",period:\".\",permil:\"‰\",perp:\"⊥\",pertenk:\"‱\",Pfr:\"������\",pfr:\"������\",Phi:\"Φ\",phi:\"φ\",phiv:\"ϕ\",phmmat:\"ℳ\",phone:\"☎\",Pi:\"Π\",pi:\"π\",pitchfork:\"⋔\",piv:\"ϖ\",planck:\"ℏ\",planckh:\"ℎ\",plankv:\"ℏ\",plus:\"+\",plusacir:\"⨣\",plusb:\"⊞\",pluscir:\"⨢\",plusdo:\"∔\",plusdu:\"⨥\",pluse:\"⩲\",PlusMinus:\"±\",plusmn:\"±\",plussim:\"⨦\",plustwo:\"⨧\",pm:\"±\",Poincareplane:\"ℌ\",pointint:\"⨕\",Popf:\"ℙ\",popf:\"������\",pound:\"£\",Pr:\"⪻\",pr:\"≺\",prap:\"⪷\",prcue:\"≼\",prE:\"⪳\",pre:\"⪯\",prec:\"≺\",precapprox:\"⪷\",preccurlyeq:\"≼\",Precedes:\"≺\",PrecedesEqual:\"⪯\",PrecedesSlantEqual:\"≼\",PrecedesTilde:\"≾\",preceq:\"⪯\",precnapprox:\"⪹\",precneqq:\"⪵\",precnsim:\"⋨\",precsim:\"≾\",Prime:\"″\",prime:\"′\",primes:\"ℙ\",prnap:\"⪹\",prnE:\"⪵\",prnsim:\"⋨\",prod:\"∏\",Product:\"∏\",profalar:\"⌮\",profline:\"⌒\",profsurf:\"⌓\",prop:\"∝\",Proportion:\"∷\",Proportional:\"∝\",propto:\"∝\",prsim:\"≾\",prurel:\"⊰\",Pscr:\"������\",pscr:\"������\",Psi:\"Ψ\",psi:\"ψ\",puncsp:\" \",Qfr:\"������\",qfr:\"������\",qint:\"⨌\",Qopf:\"ℚ\",qopf:\"������\",qprime:\"⁗\",Qscr:\"������\",qscr:\"������\",quaternions:\"ℍ\",quatint:\"⨖\",quest:\"?\",questeq:\"≟\",QUOT:'\"',quot:'\"',rAarr:\"⇛\",race:\"∽̱\",Racute:\"Ŕ\",racute:\"ŕ\",radic:\"√\",raemptyv:\"⦳\",Rang:\"⟫\",rang:\"⟩\",rangd:\"⦒\",range:\"⦥\",rangle:\"⟩\",raquo:\"»\",Rarr:\"↠\",rArr:\"⇒\",rarr:\"→\",rarrap:\"⥵\",rarrb:\"⇥\",rarrbfs:\"⤠\",rarrc:\"⤳\",rarrfs:\"⤞\",rarrhk:\"↪\",rarrlp:\"↬\",rarrpl:\"⥅\",rarrsim:\"⥴\",Rarrtl:\"⤖\",rarrtl:\"↣\",rarrw:\"↝\",rAtail:\"⤜\",ratail:\"⤚\",ratio:\"∶\",rationals:\"ℚ\",RBarr:\"⤐\",rBarr:\"⤏\",rbarr:\"⤍\",rbbrk:\"❳\",rbrace:\"}\",rbrack:\"]\",rbrke:\"⦌\",rbrksld:\"⦎\",rbrkslu:\"⦐\",Rcaron:\"Ř\",rcaron:\"ř\",Rcedil:\"Ŗ\",rcedil:\"ŗ\",rceil:\"⌉\",rcub:\"}\",Rcy:\"Р\",rcy:\"р\",rdca:\"⤷\",rdldhar:\"⥩\",rdquo:\"”\",rdquor:\"”\",rdsh:\"↳\",Re:\"ℜ\",real:\"ℜ\",realine:\"ℛ\",realpart:\"ℜ\",reals:\"ℝ\",rect:\"▭\",REG:\"®\",reg:\"®\",ReverseElement:\"∋\",ReverseEquilibrium:\"⇋\",ReverseUpEquilibrium:\"⥯\",rfisht:\"⥽\",rfloor:\"⌋\",Rfr:\"ℜ\",rfr:\"������\",rHar:\"⥤\",rhard:\"⇁\",rharu:\"⇀\",rharul:\"⥬\",Rho:\"Ρ\",rho:\"ρ\",rhov:\"ϱ\",RightAngleBracket:\"⟩\",RightArrow:\"→\",Rightarrow:\"⇒\",rightarrow:\"→\",RightArrowBar:\"⇥\",RightArrowLeftArrow:\"⇄\",rightarrowtail:\"↣\",RightCeiling:\"⌉\",RightDoubleBracket:\"⟧\",RightDownTeeVector:\"⥝\",RightDownVector:\"⇂\",RightDownVectorBar:\"⥕\",RightFloor:\"⌋\",rightharpoondown:\"⇁\",rightharpoonup:\"⇀\",rightleftarrows:\"⇄\",rightleftharpoons:\"⇌\",rightrightarrows:\"⇉\",rightsquigarrow:\"↝\",RightTee:\"⊢\",RightTeeArrow:\"↦\",RightTeeVector:\"⥛\",rightthreetimes:\"⋌\",RightTriangle:\"⊳\",RightTriangleBar:\"⧐\",RightTriangleEqual:\"⊵\",RightUpDownVector:\"⥏\",RightUpTeeVector:\"⥜\",RightUpVector:\"↾\",RightUpVectorBar:\"⥔\",RightVector:\"⇀\",RightVectorBar:\"⥓\",ring:\"˚\",risingdotseq:\"≓\",rlarr:\"⇄\",rlhar:\"⇌\",rlm:\"\",rmoust:\"⎱\",rmoustache:\"⎱\",rnmid:\"⫮\",roang:\"⟭\",roarr:\"⇾\",robrk:\"⟧\",ropar:\"⦆\",Ropf:\"ℝ\",ropf:\"������\",roplus:\"⨮\",rotimes:\"⨵\",RoundImplies:\"⥰\",rpar:\")\",rpargt:\"⦔\",rppolint:\"⨒\",rrarr:\"⇉\",Rrightarrow:\"⇛\",rsaquo:\"›\",Rscr:\"ℛ\",rscr:\"������\",Rsh:\"↱\",rsh:\"↱\",rsqb:\"]\",rsquo:\"’\",rsquor:\"’\",rthree:\"⋌\",rtimes:\"⋊\",rtri:\"▹\",rtrie:\"⊵\",rtrif:\"▸\",rtriltri:\"⧎\",RuleDelayed:\"⧴\",ruluhar:\"⥨\",rx:\"℞\",Sacute:\"Ś\",sacute:\"ś\",sbquo:\"‚\",Sc:\"⪼\",sc:\"≻\",scap:\"⪸\",Scaron:\"Š\",scaron:\"š\",sccue:\"≽\",scE:\"⪴\",sce:\"⪰\",Scedil:\"Ş\",scedil:\"ş\",Scirc:\"Ŝ\",scirc:\"ŝ\",scnap:\"⪺\",scnE:\"⪶\",scnsim:\"⋩\",scpolint:\"⨓\",scsim:\"≿\",Scy:\"С\",scy:\"с\",sdot:\"⋅\",sdotb:\"⊡\",sdote:\"⩦\",searhk:\"⤥\",seArr:\"⇘\",searr:\"↘\",searrow:\"↘\",sect:\"§\",semi:\";\",seswar:\"⤩\",setminus:\"∖\",setmn:\"∖\",sext:\"✶\",Sfr:\"������\",sfr:\"������\",sfrown:\"⌢\",sharp:\"♯\",SHCHcy:\"Щ\",shchcy:\"щ\",SHcy:\"Ш\",shcy:\"ш\",ShortDownArrow:\"↓\",ShortLeftArrow:\"←\",shortmid:\"∣\",shortparallel:\"∥\",ShortRightArrow:\"→\",ShortUpArrow:\"↑\",shy:\"\",Sigma:\"Σ\",sigma:\"σ\",sigmaf:\"ς\",sigmav:\"ς\",sim:\"∼\",simdot:\"⩪\",sime:\"≃\",simeq:\"≃\",simg:\"⪞\",simgE:\"⪠\",siml:\"⪝\",simlE:\"⪟\",simne:\"≆\",simplus:\"⨤\",simrarr:\"⥲\",slarr:\"←\",SmallCircle:\"∘\",smallsetminus:\"∖\",smashp:\"⨳\",smeparsl:\"⧤\",smid:\"∣\",smile:\"⌣\",smt:\"⪪\",smte:\"⪬\",smtes:\"⪬︀\",SOFTcy:\"Ь\",softcy:\"ь\",sol:\"/\",solb:\"⧄\",solbar:\"⌿\",Sopf:\"������\",sopf:\"������\",spades:\"♠\",spadesuit:\"♠\",spar:\"∥\",sqcap:\"⊓\",sqcaps:\"⊓︀\",sqcup:\"⊔\",sqcups:\"⊔︀\",Sqrt:\"√\",sqsub:\"⊏\",sqsube:\"⊑\",sqsubset:\"⊏\",sqsubseteq:\"⊑\",sqsup:\"⊐\",sqsupe:\"⊒\",sqsupset:\"⊐\",sqsupseteq:\"⊒\",squ:\"□\",Square:\"□\",square:\"□\",SquareIntersection:\"⊓\",SquareSubset:\"⊏\",SquareSubsetEqual:\"⊑\",SquareSuperset:\"⊐\",SquareSupersetEqual:\"⊒\",SquareUnion:\"⊔\",squarf:\"▪\",squf:\"▪\",srarr:\"→\",Sscr:\"������\",sscr:\"������\",ssetmn:\"∖\",ssmile:\"⌣\",sstarf:\"⋆\",Star:\"⋆\",star:\"☆\",starf:\"★\",straightepsilon:\"ϵ\",straightphi:\"ϕ\",strns:\"¯\",Sub:\"⋐\",sub:\"⊂\",subdot:\"⪽\",subE:\"⫅\",sube:\"⊆\",subedot:\"⫃\",submult:\"⫁\",subnE:\"⫋\",subne:\"⊊\",subplus:\"⪿\",subrarr:\"⥹\",Subset:\"⋐\",subset:\"⊂\",subseteq:\"⊆\",subseteqq:\"⫅\",SubsetEqual:\"⊆\",subsetneq:\"⊊\",subsetneqq:\"⫋\",subsim:\"⫇\",subsub:\"⫕\",subsup:\"⫓\",succ:\"≻\",succapprox:\"⪸\",succcurlyeq:\"≽\",Succeeds:\"≻\",SucceedsEqual:\"⪰\",SucceedsSlantEqual:\"≽\",SucceedsTilde:\"≿\",succeq:\"⪰\",succnapprox:\"⪺\",succneqq:\"⪶\",succnsim:\"⋩\",succsim:\"≿\",SuchThat:\"∋\",Sum:\"∑\",sum:\"∑\",sung:\"♪\",Sup:\"⋑\",sup:\"⊃\",sup1:\"¹\",sup2:\"²\",sup3:\"³\",supdot:\"⪾\",supdsub:\"⫘\",supE:\"⫆\",supe:\"⊇\",supedot:\"⫄\",Superset:\"⊃\",SupersetEqual:\"⊇\",suphsol:\"⟉\",suphsub:\"⫗\",suplarr:\"⥻\",supmult:\"⫂\",supnE:\"⫌\",supne:\"⊋\",supplus:\"⫀\",Supset:\"⋑\",supset:\"⊃\",supseteq:\"⊇\",supseteqq:\"⫆\",supsetneq:\"⊋\",supsetneqq:\"⫌\",supsim:\"⫈\",supsub:\"⫔\",supsup:\"⫖\",swarhk:\"⤦\",swArr:\"⇙\",swarr:\"↙\",swarrow:\"↙\",swnwar:\"⤪\",szlig:\"ß\",Tab:\"\\t\",target:\"⌖\",Tau:\"Τ\",tau:\"τ\",tbrk:\"⎴\",Tcaron:\"Ť\",tcaron:\"ť\",Tcedil:\"Ţ\",tcedil:\"ţ\",Tcy:\"Т\",tcy:\"т\",tdot:\"⃛\",telrec:\"⌕\",Tfr:\"������\",tfr:\"������\",there4:\"∴\",Therefore:\"∴\",therefore:\"∴\",Theta:\"Θ\",theta:\"θ\",thetasym:\"ϑ\",thetav:\"ϑ\",thickapprox:\"≈\",thicksim:\"∼\",ThickSpace:\" \",thinsp:\" \",ThinSpace:\" \",thkap:\"≈\",thksim:\"∼\",THORN:\"Þ\",thorn:\"þ\",Tilde:\"∼\",tilde:\"˜\",TildeEqual:\"≃\",TildeFullEqual:\"≅\",TildeTilde:\"≈\",times:\"×\",timesb:\"⊠\",timesbar:\"⨱\",timesd:\"⨰\",tint:\"∭\",toea:\"⤨\",top:\"⊤\",topbot:\"⌶\",topcir:\"⫱\",Topf:\"������\",topf:\"������\",topfork:\"⫚\",tosa:\"⤩\",tprime:\"‴\",TRADE:\"™\",trade:\"™\",triangle:\"▵\",triangledown:\"▿\",triangleleft:\"◃\",trianglelefteq:\"⊴\",triangleq:\"≜\",triangleright:\"▹\",trianglerighteq:\"⊵\",tridot:\"◬\",trie:\"≜\",triminus:\"⨺\",TripleDot:\"⃛\",triplus:\"⨹\",trisb:\"⧍\",tritime:\"⨻\",trpezium:\"⏢\",Tscr:\"������\",tscr:\"������\",TScy:\"Ц\",tscy:\"ц\",TSHcy:\"Ћ\",tshcy:\"ћ\",Tstrok:\"Ŧ\",tstrok:\"ŧ\",twixt:\"≬\",twoheadleftarrow:\"↞\",twoheadrightarrow:\"↠\",Uacute:\"Ú\",uacute:\"ú\",Uarr:\"↟\",uArr:\"⇑\",uarr:\"↑\",Uarrocir:\"⥉\",Ubrcy:\"Ў\",ubrcy:\"ў\",Ubreve:\"Ŭ\",ubreve:\"ŭ\",Ucirc:\"Û\",ucirc:\"û\",Ucy:\"У\",ucy:\"у\",udarr:\"⇅\",Udblac:\"Ű\",udblac:\"ű\",udhar:\"⥮\",ufisht:\"⥾\",Ufr:\"������\",ufr:\"������\",Ugrave:\"Ù\",ugrave:\"ù\",uHar:\"⥣\",uharl:\"↿\",uharr:\"↾\",uhblk:\"▀\",ulcorn:\"⌜\",ulcorner:\"⌜\",ulcrop:\"⌏\",ultri:\"◸\",Umacr:\"Ū\",umacr:\"ū\",uml:\"¨\",UnderBar:\"_\",UnderBrace:\"⏟\",UnderBracket:\"⎵\",UnderParenthesis:\"⏝\",Union:\"⋃\",UnionPlus:\"⊎\",Uogon:\"Ų\",uogon:\"ų\",Uopf:\"������\",uopf:\"������\",UpArrow:\"↑\",Uparrow:\"⇑\",uparrow:\"↑\",UpArrowBar:\"⤒\",UpArrowDownArrow:\"⇅\",UpDownArrow:\"↕\",Updownarrow:\"⇕\",updownarrow:\"↕\",UpEquilibrium:\"⥮\",upharpoonleft:\"↿\",upharpoonright:\"↾\",uplus:\"⊎\",UpperLeftArrow:\"↖\",UpperRightArrow:\"↗\",Upsi:\"ϒ\",upsi:\"υ\",upsih:\"ϒ\",Upsilon:\"Υ\",upsilon:\"υ\",UpTee:\"⊥\",UpTeeArrow:\"↥\",upuparrows:\"⇈\",urcorn:\"⌝\",urcorner:\"⌝\",urcrop:\"⌎\",Uring:\"Ů\",uring:\"ů\",urtri:\"◹\",Uscr:\"������\",uscr:\"������\",utdot:\"⋰\",Utilde:\"Ũ\",utilde:\"ũ\",utri:\"▵\",utrif:\"▴\",uuarr:\"⇈\",Uuml:\"Ü\",uuml:\"ü\",uwangle:\"⦧\",vangrt:\"⦜\",varepsilon:\"ϵ\",varkappa:\"ϰ\",varnothing:\"∅\",varphi:\"ϕ\",varpi:\"ϖ\",varpropto:\"∝\",vArr:\"⇕\",varr:\"↕\",varrho:\"ϱ\",varsigma:\"ς\",varsubsetneq:\"⊊︀\",varsubsetneqq:\"⫋︀\",varsupsetneq:\"⊋︀\",varsupsetneqq:\"⫌︀\",vartheta:\"ϑ\",vartriangleleft:\"⊲\",vartriangleright:\"⊳\",Vbar:\"⫫\",vBar:\"⫨\",vBarv:\"⫩\",Vcy:\"В\",vcy:\"в\",VDash:\"⊫\",Vdash:\"⊩\",vDash:\"⊨\",vdash:\"⊢\",Vdashl:\"⫦\",Vee:\"⋁\",vee:\"∨\",veebar:\"⊻\",veeeq:\"≚\",vellip:\"⋮\",Verbar:\"‖\",verbar:\"|\",Vert:\"‖\",vert:\"|\",VerticalBar:\"∣\",VerticalLine:\"|\",VerticalSeparator:\"❘\",VerticalTilde:\"≀\",VeryThinSpace:\" \",Vfr:\"������\",vfr:\"������\",vltri:\"⊲\",vnsub:\"⊂⃒\",vnsup:\"⊃⃒\",Vopf:\"������\",vopf:\"������\",vprop:\"∝\",vrtri:\"⊳\",Vscr:\"������\",vscr:\"������\",vsubnE:\"⫋︀\",vsubne:\"⊊︀\",vsupnE:\"⫌︀\",vsupne:\"⊋︀\",Vvdash:\"⊪\",vzigzag:\"⦚\",Wcirc:\"Ŵ\",wcirc:\"ŵ\",wedbar:\"⩟\",Wedge:\"⋀\",wedge:\"∧\",wedgeq:\"≙\",weierp:\"℘\",Wfr:\"������\",wfr:\"������\",Wopf:\"������\",wopf:\"������\",wp:\"℘\",wr:\"≀\",wreath:\"≀\",Wscr:\"������\",wscr:\"������\",xcap:\"⋂\",xcirc:\"◯\",xcup:\"⋃\",xdtri:\"▽\",Xfr:\"������\",xfr:\"������\",xhArr:\"⟺\",xharr:\"⟷\",Xi:\"Ξ\",xi:\"ξ\",xlArr:\"⟸\",xlarr:\"⟵\",xmap:\"⟼\",xnis:\"⋻\",xodot:\"⨀\",Xopf:\"������\",xopf:\"������\",xoplus:\"⨁\",xotime:\"⨂\",xrArr:\"⟹\",xrarr:\"⟶\",Xscr:\"������\",xscr:\"������\",xsqcup:\"⨆\",xuplus:\"⨄\",xutri:\"△\",xvee:\"⋁\",xwedge:\"⋀\",Yacute:\"Ý\",yacute:\"ý\",YAcy:\"Я\",yacy:\"я\",Ycirc:\"Ŷ\",ycirc:\"ŷ\",Ycy:\"Ы\",ycy:\"ы\",yen:\"¥\",Yfr:\"������\",yfr:\"������\",YIcy:\"Ї\",yicy:\"ї\",Yopf:\"������\",yopf:\"������\",Yscr:\"������\",yscr:\"������\",YUcy:\"Ю\",yucy:\"ю\",Yuml:\"Ÿ\",yuml:\"ÿ\",Zacute:\"Ź\",zacute:\"ź\",Zcaron:\"Ž\",zcaron:\"ž\",Zcy:\"З\",zcy:\"з\",Zdot:\"Ż\",zdot:\"ż\",zeetrf:\"ℨ\",ZeroWidthSpace:\"\",Zeta:\"Ζ\",zeta:\"ζ\",Zfr:\"ℨ\",zfr:\"������\",ZHcy:\"Ж\",zhcy:\"ж\",zigrarr:\"⇝\",Zopf:\"ℤ\",zopf:\"������\",Zscr:\"������\",zscr:\"������\",zwj:\"\",zwnj:\"\"},r=Object.prototype.hasOwnProperty;function n(e){return o=e,(n=t)&&r.call(n,o)?t[e]:e;var n,o}var o=Object.prototype.hasOwnProperty;function s(e,t){return!!e&&o.call(e,t)}function i(e){return[].slice.call(arguments,1).forEach(function(t){if(t){if(\"object\"!=typeof t)throw new TypeError(t+\"must be object\");Object.keys(t).forEach(function(r){e[r]=t[r]})}}),e}var a=/\\\\([\\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;function u(e){return e.indexOf(\"\\\\\")<0?e:e.replace(a,\"$1\")}function l(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function c(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r)}return String.fromCharCode(e)}var p=/&([a-z#][a-z0-9]{1,31});/gi,h=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;function f(e,t){var r=0,o=n(t);return t!==o?o:35===t.charCodeAt(0)&&h.test(t)&&l(r=\"x\"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?c(r):e}function g(e){return e.indexOf(\"&\")<0?e:e.replace(p,f)}var d=/[&<>\"]/,m=/[&<>\"]/g,b={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\"};function v(e){return b[e]}function k(e){return d.test(e)?e.replace(m,v):e}var A=Object.freeze({isString:function(e){return\"[object String]\"===function(e){return Object.prototype.toString.call(e)}(e)},has:s,assign:i,unescapeMd:u,isValidEntityCode:l,fromCodePoint:c,replaceEntities:g,escapeHtml:k}),y={};y.blockquote_open=function(){return\"<blockquote>\\n\"},y.blockquote_close=function(e,t){return\"</blockquote>\"+x(e,t)},y.code=function(e,t){return e[t].block?\"<pre><code>\"+k(e[t].content)+\"</code></pre>\"+x(e,t):\"<code>\"+k(e[t].content)+\"</code>\"},y.fence=function(e,t,r,n,o){var i,a,l=e[t],c=\"\",p=r.langPrefix;if(l.params){if(a=(i=l.params.split(/\\s+/g)).join(\" \"),s(o.rules.fence_custom,i[0]))return o.rules.fence_custom[i[0]](e,t,r,n,o);c=' class=\"'+p+k(g(u(a)))+'\"'}return\"<pre><code\"+c+\">\"+(r.highlight&&r.highlight.apply(r.highlight,[l.content].concat(i))||k(l.content))+\"</code></pre>\"+x(e,t)},y.fence_custom={},y.heading_open=function(e,t){return\"<h\"+e[t].hLevel+\">\"},y.heading_close=function(e,t){return\"</h\"+e[t].hLevel+\">\\n\"},y.hr=function(e,t,r){return(r.xhtmlOut?\"<hr />\":\"<hr>\")+x(e,t)},y.bullet_list_open=function(){return\"<ul>\\n\"},y.bullet_list_close=function(e,t){return\"</ul>\"+x(e,t)},y.list_item_open=function(){return\"<li>\"},y.list_item_close=function(){return\"</li>\\n\"},y.ordered_list_open=function(e,t){var r=e[t];return\"<ol\"+(r.order>1?' start=\"'+r.order+'\"':\"\")+\">\\n\"},y.ordered_list_close=function(e,t){return\"</ol>\"+x(e,t)},y.paragraph_open=function(e,t){return e[t].tight?\"\":\"<p>\"},y.paragraph_close=function(e,t){var r=!(e[t].tight&&t&&\"inline\"===e[t-1].type&&!e[t-1].content);return(e[t].tight?\"\":\"</p>\")+(r?x(e,t):\"\")},y.link_open=function(e,t,r){var n=e[t].title?' title=\"'+k(g(e[t].title))+'\"':\"\",o=r.linkTarget?' target=\"'+r.linkTarget+'\"':\"\";return'<a href=\"'+k(e[t].href)+'\"'+n+o+\">\"},y.link_close=function(){return\"</a>\"},y.image=function(e,t,r){var n=' src=\"'+k(e[t].src)+'\"',o=e[t].title?' title=\"'+k(g(e[t].title))+'\"':\"\";return\"<img\"+n+(' alt=\"'+(e[t].alt?k(g(u(e[t].alt))):\"\")+'\"')+o+(r.xhtmlOut?\" /\":\"\")+\">\"},y.table_open=function(){return\"<table>\\n\"},y.table_close=function(){return\"</table>\\n\"},y.thead_open=function(){return\"<thead>\\n\"},y.thead_close=function(){return\"</thead>\\n\"},y.tbody_open=function(){return\"<tbody>\\n\"},y.tbody_close=function(){return\"</tbody>\\n\"},y.tr_open=function(){return\"<tr>\"},y.tr_close=function(){return\"</tr>\\n\"},y.th_open=function(e,t){var r=e[t];return\"<th\"+(r.align?' style=\"text-align:'+r.align+'\"':\"\")+\">\"},y.th_close=function(){return\"</th>\"},y.td_open=function(e,t){var r=e[t];return\"<td\"+(r.align?' style=\"text-align:'+r.align+'\"':\"\")+\">\"},y.td_close=function(){return\"</td>\"},y.strong_open=function(){return\"<strong>\"},y.strong_close=function(){return\"</strong>\"},y.em_open=function(){return\"<em>\"},y.em_close=function(){return\"</em>\"},y.del_open=function(){return\"<del>\"},y.del_close=function(){return\"</del>\"},y.ins_open=function(){return\"<ins>\"},y.ins_close=function(){return\"</ins>\"},y.mark_open=function(){return\"<mark>\"},y.mark_close=function(){return\"</mark>\"},y.sub=function(e,t){return\"<sub>\"+k(e[t].content)+\"</sub>\"},y.sup=function(e,t){return\"<sup>\"+k(e[t].content)+\"</sup>\"},y.hardbreak=function(e,t,r){return r.xhtmlOut?\"<br />\\n\":\"<br>\\n\"},y.softbreak=function(e,t,r){return r.breaks?r.xhtmlOut?\"<br />\\n\":\"<br>\\n\":\"\\n\"},y.text=function(e,t){return k(e[t].content)},y.htmlblock=function(e,t){return e[t].content},y.htmltag=function(e,t){return e[t].content},y.abbr_open=function(e,t){return'<abbr title=\"'+k(g(e[t].title))+'\">'},y.abbr_close=function(){return\"</abbr>\"},y.footnote_ref=function(e,t){var r=Number(e[t].id+1).toString(),n=\"fnref\"+r;return e[t].subId>0&&(n+=\":\"+e[t].subId),'<sup class=\"footnote-ref\"><a href=\"#fn'+r+'\" id=\"'+n+'\">['+r+\"]</a></sup>\"},y.footnote_block_open=function(e,t,r){return(r.xhtmlOut?'<hr class=\"footnotes-sep\" />\\n':'<hr class=\"footnotes-sep\">\\n')+'<section class=\"footnotes\">\\n<ol class=\"footnotes-list\">\\n'},y.footnote_block_close=function(){return\"</ol>\\n</section>\\n\"},y.footnote_open=function(e,t){return'<li id=\"fn'+Number(e[t].id+1).toString()+'\" class=\"footnote-item\">'},y.footnote_close=function(){return\"</li>\\n\"},y.footnote_anchor=function(e,t){var r=\"fnref\"+Number(e[t].id+1).toString();return e[t].subId>0&&(r+=\":\"+e[t].subId),' <a href=\"#'+r+'\" class=\"footnote-backref\">↩</a>'},y.dl_open=function(){return\"<dl>\\n\"},y.dt_open=function(){return\"<dt>\"},y.dd_open=function(){return\"<dd>\"},y.dl_close=function(){return\"</dl>\\n\"},y.dt_close=function(){return\"</dt>\\n\"},y.dd_close=function(){return\"</dd>\\n\"};var x=y.getBreak=function(e,t){return(t=function e(t,r){return++r>=t.length-2?r:\"paragraph_open\"===t[r].type&&t[r].tight&&\"inline\"===t[r+1].type&&0===t[r+1].content.length&&\"paragraph_close\"===t[r+2].type&&t[r+2].tight?e(t,r+2):r}(e,t))<e.length&&\"list_item_close\"===e[t].type?\"\":\"\\n\"};function w(){this.rules=i({},y),this.getBreak=y.getBreak}function C(){this.__rules__=[],this.__cache__=null}function E(e,t,r,n,o){this.src=e,this.env=n,this.options=r,this.parser=t,this.tokens=o,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending=\"\",this.pendingLevel=0,this.cache=[],this.isInLabel=!1,this.linkLevel=0,this.linkContent=\"\",this.labelUnmatchedScopes=0}function D(e,t){var r,n,o,s=-1,i=e.posMax,a=e.pos,u=e.isInLabel;if(e.isInLabel)return-1;if(e.labelUnmatchedScopes)return e.labelUnmatchedScopes--,-1;for(e.pos=t+1,e.isInLabel=!0,r=1;e.pos<i;){if(91===(o=e.src.charCodeAt(e.pos)))r++;else if(93===o&&0===--r){n=!0;break}e.parser.skipToken(e)}return n?(s=e.pos,e.labelUnmatchedScopes=0):e.labelUnmatchedScopes=r-1,e.pos=a,e.isInLabel=u,s}function _(e,t,r,n){var o,s,i,a,u,l;if(42!==e.charCodeAt(0))return-1;if(91!==e.charCodeAt(1))return-1;if(-1===e.indexOf(\"]:\"))return-1;if((s=D(o=new E(e,t,r,n,[]),1))<0||58!==e.charCodeAt(s+1))return-1;for(a=o.posMax,i=s+2;i<a&&10!==o.src.charCodeAt(i);i++);return u=e.slice(2,s),0===(l=e.slice(s+2,i).trim()).length?-1:(n.abbreviations||(n.abbreviations={}),void 0===n.abbreviations[\":\"+u]&&(n.abbreviations[\":\"+u]=l),i)}function B(e){var t=g(e);try{t=decodeURI(t)}catch(e){}return encodeURI(t)}function q(e,t){var r,n,o,s=t,i=e.posMax;if(60===e.src.charCodeAt(t)){for(t++;t<i;){if(10===(r=e.src.charCodeAt(t)))return!1;if(62===r)return o=B(u(e.src.slice(s+1,t))),!!e.parser.validateLink(o)&&(e.pos=t+1,e.linkContent=o,!0);92===r&&t+1<i?t+=2:t++}return!1}for(n=0;t<i&&32!==(r=e.src.charCodeAt(t))&&!(r<32||127===r);)if(92===r&&t+1<i)t+=2;else{if(40===r&&++n>1)break;if(41===r&&--n<0)break;t++}return s!==t&&(o=u(e.src.slice(s,t)),!!e.parser.validateLink(o)&&(e.linkContent=o,e.pos=t,!0))}function F(e,t){var r,n=t,o=e.posMax,s=e.src.charCodeAt(t);if(34!==s&&39!==s&&40!==s)return!1;for(t++,40===s&&(s=41);t<o;){if((r=e.src.charCodeAt(t))===s)return e.pos=t+1,e.linkContent=u(e.src.slice(n+1,t)),!0;92===r&&t+1<o?t+=2:t++}return!1}function M(e){return e.trim().replace(/\\s+/g,\" \").toUpperCase()}function S(e,t,r,n){var o,s,i,a,u,l,c,p,h;if(91!==e.charCodeAt(0))return-1;if(-1===e.indexOf(\"]:\"))return-1;if((s=D(o=new E(e,t,r,n,[]),0))<0||58!==e.charCodeAt(s+1))return-1;for(a=o.posMax,i=s+2;i<a&&(32===(u=o.src.charCodeAt(i))||10===u);i++);if(!q(o,i))return-1;for(c=o.linkContent,l=i=o.pos,i+=1;i<a&&(32===(u=o.src.charCodeAt(i))||10===u);i++);for(i<a&&l!==i&&F(o,i)?(p=o.linkContent,i=o.pos):(p=\"\",i=l);i<a&&32===o.src.charCodeAt(i);)i++;return i<a&&10!==o.src.charCodeAt(i)?-1:(h=M(e.slice(1,s)),void 0===n.references[h]&&(n.references[h]={title:p,href:c}),i)}w.prototype.renderInline=function(e,t,r){for(var n=this.rules,o=e.length,s=0,i=\"\";o--;)i+=n[e[s].type](e,s++,t,r,this);return i},w.prototype.render=function(e,t,r){for(var n=this.rules,o=e.length,s=-1,i=\"\";++s<o;)\"inline\"===e[s].type?i+=this.renderInline(e[s].children,t,r):i+=n[e[s].type](e,s,t,r,this);return i},C.prototype.__find__=function(e){for(var t=this.__rules__.length,r=-1;t--;)if(this.__rules__[++r].name===e)return r;return-1},C.prototype.__compile__=function(){var e=this,t=[\"\"];e.__rules__.forEach(function(e){e.enabled&&e.alt.forEach(function(e){t.indexOf(e)<0&&t.push(e)})}),e.__cache__={},t.forEach(function(t){e.__cache__[t]=[],e.__rules__.forEach(function(r){r.enabled&&(t&&r.alt.indexOf(t)<0||e.__cache__[t].push(r.fn))})})},C.prototype.at=function(e,t,r){var n=this.__find__(e),o=r||{};if(-1===n)throw new Error(\"Parser rule not found: \"+e);this.__rules__[n].fn=t,this.__rules__[n].alt=o.alt||[],this.__cache__=null},C.prototype.before=function(e,t,r,n){var o=this.__find__(e),s=n||{};if(-1===o)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(o,0,{name:t,enabled:!0,fn:r,alt:s.alt||[]}),this.__cache__=null},C.prototype.after=function(e,t,r,n){var o=this.__find__(e),s=n||{};if(-1===o)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(o+1,0,{name:t,enabled:!0,fn:r,alt:s.alt||[]}),this.__cache__=null},C.prototype.push=function(e,t,r){var n=r||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:n.alt||[]}),this.__cache__=null},C.prototype.enable=function(e,t){e=Array.isArray(e)?e:[e],t&&this.__rules__.forEach(function(e){e.enabled=!1}),e.forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error(\"Rules manager: invalid rule name \"+e);this.__rules__[t].enabled=!0},this),this.__cache__=null},C.prototype.disable=function(e){(e=Array.isArray(e)?e:[e]).forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error(\"Rules manager: invalid rule name \"+e);this.__rules__[t].enabled=!1},this),this.__cache__=null},C.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},E.prototype.pushPending=function(){this.tokens.push({type:\"text\",content:this.pending,level:this.pendingLevel}),this.pending=\"\"},E.prototype.push=function(e){this.pending&&this.pushPending(),this.tokens.push(e),this.pendingLevel=this.level},E.prototype.cacheSet=function(e,t){for(var r=this.cache.length;r<=e;r++)this.cache.push(0);this.cache[e]=t},E.prototype.cacheGet=function(e){return e<this.cache.length?this.cache[e]:0};var T=\" \\n()[]'\\\".,!?-\";function L(e){return e.replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g,\"\\\\$1\")}var R=/\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/,N=/\\((c|tm|r|p)\\)/gi,z={c:\"©\",r:\"®\",p:\"§\",tm:\"™\"};var P=/['\"]/,j=/['\"]/g,I=/[-\\s()\\[\\]]/,O=\"’\";function U(e,t){return!(t<0||t>=e.length)&&!I.test(e[t])}function H(e,t,r){return e.substr(0,t)+r+e.substr(t+1)}var V=[[\"block\",function(e){e.inlineMode?e.tokens.push({type:\"inline\",content:e.src.replace(/\\n/g,\" \").trim(),level:0,lines:[0,1],children:[]}):e.block.parse(e.src,e.options,e.env,e.tokens)}],[\"abbr\",function(e){var t,r,n,o,s=e.tokens;if(!e.inlineMode)for(t=1,r=s.length-1;t<r;t++)if(\"paragraph_open\"===s[t-1].type&&\"inline\"===s[t].type&&\"paragraph_close\"===s[t+1].type){for(n=s[t].content;n.length&&!((o=_(n,e.inline,e.options,e.env))<0);)n=n.slice(o).trim();s[t].content=n,n.length||(s[t-1].tight=!0,s[t+1].tight=!0)}}],[\"references\",function(e){var t,r,n,o,s=e.tokens;if(e.env.references=e.env.references||{},!e.inlineMode)for(t=1,r=s.length-1;t<r;t++)if(\"inline\"===s[t].type&&\"paragraph_open\"===s[t-1].type&&\"paragraph_close\"===s[t+1].type){for(n=s[t].content;n.length&&!((o=S(n,e.inline,e.options,e.env))<0);)n=n.slice(o).trim();s[t].content=n,n.length||(s[t-1].tight=!0,s[t+1].tight=!0)}}],[\"inline\",function(e){var t,r,n,o=e.tokens;for(r=0,n=o.length;r<n;r++)\"inline\"===(t=o[r]).type&&e.inline.parse(t.content,e.options,e.env,t.children)}],[\"footnote_tail\",function(e){var t,r,n,o,s,i,a,u,l,c=0,p=!1,h={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return\"footnote_reference_open\"===e.type?(p=!0,u=[],l=e.label,!1):\"footnote_reference_close\"===e.type?(p=!1,h[\":\"+l]=u,!1):(p&&u.push(e),!p)}),e.env.footnotes.list)){for(i=e.env.footnotes.list,e.tokens.push({type:\"footnote_block_open\",level:c++}),t=0,r=i.length;t<r;t++){for(e.tokens.push({type:\"footnote_open\",id:t,level:c++}),i[t].tokens?((a=[]).push({type:\"paragraph_open\",tight:!1,level:c++}),a.push({type:\"inline\",content:\"\",level:c,children:i[t].tokens}),a.push({type:\"paragraph_close\",tight:!1,level:--c})):i[t].label&&(a=h[\":\"+i[t].label]),e.tokens=e.tokens.concat(a),s=\"paragraph_close\"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,o=i[t].count>0?i[t].count:1,n=0;n<o;n++)e.tokens.push({type:\"footnote_anchor\",id:t,subId:n,level:c});s&&e.tokens.push(s),e.tokens.push({type:\"footnote_close\",level:--c})}e.tokens.push({type:\"footnote_block_close\",level:--c})}}],[\"abbr2\",function(e){var t,r,n,o,s,i,a,u,l,c,p,h,f=e.tokens;if(e.env.abbreviations)for(e.env.abbrRegExp||(h=\"(^|[\"+T.split(\"\").map(L).join(\"\")+\"])(\"+Object.keys(e.env.abbreviations).map(function(e){return e.substr(1)}).sort(function(e,t){return t.length-e.length}).map(L).join(\"|\")+\")($|[\"+T.split(\"\").map(L).join(\"\")+\"])\",e.env.abbrRegExp=new RegExp(h,\"g\")),c=e.env.abbrRegExp,r=0,n=f.length;r<n;r++)if(\"inline\"===f[r].type)for(t=(o=f[r].children).length-1;t>=0;t--)if(\"text\"===(s=o[t]).type){for(u=0,i=s.content,c.lastIndex=0,l=s.level,a=[];p=c.exec(i);)c.lastIndex>u&&a.push({type:\"text\",content:i.slice(u,p.index+p[1].length),level:l}),a.push({type:\"abbr_open\",title:e.env.abbreviations[\":\"+p[2]],level:l++}),a.push({type:\"text\",content:p[2],level:l}),a.push({type:\"abbr_close\",level:--l}),u=c.lastIndex-p[3].length;a.length&&(u<i.length&&a.push({type:\"text\",content:i.slice(u),level:l}),f[r].children=o=[].concat(o.slice(0,t),a,o.slice(t+1)))}}],[\"replacements\",function(e){var t,r,n,o,s,i;if(e.options.typographer)for(s=e.tokens.length-1;s>=0;s--)if(\"inline\"===e.tokens[s].type)for(t=(o=e.tokens[s].children).length-1;t>=0;t--)\"text\"===(r=o[t]).type&&(n=r.content,n=(i=n).indexOf(\"(\")<0?i:i.replace(N,function(e,t){return z[t.toLowerCase()]}),R.test(n)&&(n=n.replace(/\\+-/g,\"±\").replace(/\\.{2,}/g,\"…\").replace(/([?!])…/g,\"$1..\").replace(/([?!]){4,}/g,\"$1$1$1\").replace(/,{2,}/g,\",\").replace(/(^|[^-])---([^-]|$)/gm,\"$1—$2\").replace(/(^|\\s)--(\\s|$)/gm,\"$1–$2\").replace(/(^|[^-\\s])--([^-\\s]|$)/gm,\"$1–$2\")),r.content=n)}],[\"smartquotes\",function(e){var t,r,n,o,s,i,a,u,l,c,p,h,f,g,d,m,b;if(e.options.typographer)for(b=[],d=e.tokens.length-1;d>=0;d--)if(\"inline\"===e.tokens[d].type)for(m=e.tokens[d].children,b.length=0,t=0;t<m.length;t++)if(\"text\"===(r=m[t]).type&&!P.test(r.text)){for(a=m[t].level,f=b.length-1;f>=0&&!(b[f].level<=a);f--);b.length=f+1,s=0,i=(n=r.content).length;e:for(;s<i&&(j.lastIndex=s,o=j.exec(n));)if(u=!U(n,o.index-1),s=o.index+1,g=\"'\"===o[0],(l=!U(n,s))||u){if(p=!l,h=!u)for(f=b.length-1;f>=0&&(c=b[f],!(b[f].level<a));f--)if(c.single===g&&b[f].level===a){c=b[f],g?(m[c.token].content=H(m[c.token].content,c.pos,e.options.quotes[2]),r.content=H(r.content,o.index,e.options.quotes[3])):(m[c.token].content=H(m[c.token].content,c.pos,e.options.quotes[0]),r.content=H(r.content,o.index,e.options.quotes[1])),b.length=f;continue e}p?b.push({token:t,pos:o.index,single:g,level:a}):h&&g&&(r.content=H(r.content,o.index,O))}else g&&(r.content=H(r.content,o.index,O))}}]];function G(){this.options={},this.ruler=new C;for(var e=0;e<V.length;e++)this.ruler.push(V[e][0],V[e][1])}function $(e,t,r,n,o){var s,i,a,u,l,c,p;for(this.src=e,this.parser=t,this.options=r,this.env=n,this.tokens=o,this.bMarks=[],this.eMarks=[],this.tShift=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.parentType=\"root\",this.ddIndent=-1,this.level=0,this.result=\"\",c=0,p=!1,a=u=c=0,l=(i=this.src).length;u<l;u++){if(s=i.charCodeAt(u),!p){if(32===s){c++;continue}p=!0}10!==s&&u!==l-1||(10!==s&&u++,this.bMarks.push(a),this.eMarks.push(u),this.tShift.push(c),p=!1,c=0,a=u+1)}this.bMarks.push(i.length),this.eMarks.push(i.length),this.tShift.push(0),this.lineMax=this.bMarks.length-1}function Z(e,t){var r,n,o;return(n=e.bMarks[t]+e.tShift[t])>=(o=e.eMarks[t])?-1:42!==(r=e.src.charCodeAt(n++))&&45!==r&&43!==r?-1:n<o&&32!==e.src.charCodeAt(n)?-1:n}function W(e,t){var r,n=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];if(n+1>=o)return-1;if((r=e.src.charCodeAt(n++))<48||r>57)return-1;for(;;){if(n>=o)return-1;if(!((r=e.src.charCodeAt(n++))>=48&&r<=57)){if(41===r||46===r)break;return-1}}return n<o&&32!==e.src.charCodeAt(n)?-1:n}G.prototype.process=function(e){var t,r,n;for(t=0,r=(n=this.ruler.getRules(\"\")).length;t<r;t++)n[t](e)},$.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},$.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},$.prototype.skipSpaces=function(e){for(var t=this.src.length;e<t&&32===this.src.charCodeAt(e);e++);return e},$.prototype.skipChars=function(e,t){for(var r=this.src.length;e<r&&this.src.charCodeAt(e)===t;e++);return e},$.prototype.skipCharsBack=function(e,t,r){if(e<=r)return e;for(;e>r;)if(t!==this.src.charCodeAt(--e))return e+1;return e},$.prototype.getLines=function(e,t,r,n){var o,s,i,a,u,l=e;if(e>=t)return\"\";if(l+1===t)return s=this.bMarks[l]+Math.min(this.tShift[l],r),i=n?this.eMarks[l]+1:this.eMarks[l],this.src.slice(s,i);for(a=new Array(t-e),o=0;l<t;l++,o++)(u=this.tShift[l])>r&&(u=r),u<0&&(u=0),s=this.bMarks[l]+u,i=l+1<t||n?this.eMarks[l]+1:this.eMarks[l],a[o]=this.src.slice(s,i);return a.join(\"\")};var J={};[\"article\",\"aside\",\"button\",\"blockquote\",\"body\",\"canvas\",\"caption\",\"col\",\"colgroup\",\"dd\",\"div\",\"dl\",\"dt\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"iframe\",\"li\",\"map\",\"object\",\"ol\",\"output\",\"p\",\"pre\",\"progress\",\"script\",\"section\",\"style\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"tr\",\"thead\",\"ul\",\"video\"].forEach(function(e){J[e]=!0});var Y=/^<([a-zA-Z]{1,15})[\\s\\/>]/,K=/^<\\/([a-zA-Z]{1,15})[\\s>]/;function Q(e,t){var r=e.bMarks[t]+e.blkIndent,n=e.eMarks[t];return e.src.substr(r,n-r)}function X(e,t){var r,n,o=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];return o>=s?-1:126!==(n=e.src.charCodeAt(o++))&&58!==n?-1:o===(r=e.skipSpaces(o))?-1:r>=s?-1:r}var ee=[[\"code\",function(e,t,r){var n,o;if(e.tShift[t]-e.blkIndent<4)return!1;for(o=n=t+1;n<r;)if(e.isEmpty(n))n++;else{if(!(e.tShift[n]-e.blkIndent>=4))break;o=++n}return e.line=n,e.tokens.push({type:\"code\",content:e.getLines(t,o,4+e.blkIndent,!0),block:!0,lines:[t,e.line],level:e.level}),!0}],[\"fences\",function(e,t,r,n){var o,s,i,a,u,l=!1,c=e.bMarks[t]+e.tShift[t],p=e.eMarks[t];if(c+3>p)return!1;if(126!==(o=e.src.charCodeAt(c))&&96!==o)return!1;if(u=c,(s=(c=e.skipChars(c,o))-u)<3)return!1;if((i=e.src.slice(c,p).trim()).indexOf(\"`\")>=0)return!1;if(n)return!0;for(a=t;!(++a>=r||(c=u=e.bMarks[a]+e.tShift[a])<(p=e.eMarks[a])&&e.tShift[a]<e.blkIndent);)if(e.src.charCodeAt(c)===o&&!(e.tShift[a]-e.blkIndent>=4||(c=e.skipChars(c,o))-u<s||(c=e.skipSpaces(c))<p)){l=!0;break}return s=e.tShift[t],e.line=a+(l?1:0),e.tokens.push({type:\"fence\",params:i,content:e.getLines(t+1,a,s,!0),lines:[t,e.line],level:e.level}),!0},[\"paragraph\",\"blockquote\",\"list\"]],[\"blockquote\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d=e.bMarks[t]+e.tShift[t],m=e.eMarks[t];if(d>m)return!1;if(62!==e.src.charCodeAt(d++))return!1;if(e.level>=e.options.maxNesting)return!1;if(n)return!0;for(32===e.src.charCodeAt(d)&&d++,u=e.blkIndent,e.blkIndent=0,a=[e.bMarks[t]],e.bMarks[t]=d,s=(d=d<m?e.skipSpaces(d):d)>=m,i=[e.tShift[t]],e.tShift[t]=d-e.bMarks[t],p=e.parser.ruler.getRules(\"blockquote\"),o=t+1;o<r&&!((d=e.bMarks[o]+e.tShift[o])>=(m=e.eMarks[o]));o++)if(62!==e.src.charCodeAt(d++)){if(s)break;for(g=!1,h=0,f=p.length;h<f;h++)if(p[h](e,o,r,!0)){g=!0;break}if(g)break;a.push(e.bMarks[o]),i.push(e.tShift[o]),e.tShift[o]=-1337}else 32===e.src.charCodeAt(d)&&d++,a.push(e.bMarks[o]),e.bMarks[o]=d,s=(d=d<m?e.skipSpaces(d):d)>=m,i.push(e.tShift[o]),e.tShift[o]=d-e.bMarks[o];for(l=e.parentType,e.parentType=\"blockquote\",e.tokens.push({type:\"blockquote_open\",lines:c=[t,0],level:e.level++}),e.parser.tokenize(e,t,o),e.tokens.push({type:\"blockquote_close\",level:--e.level}),e.parentType=l,c[1]=e.line,h=0;h<i.length;h++)e.bMarks[h+t]=a[h],e.tShift[h+t]=i[h];return e.blkIndent=u,!0},[\"paragraph\",\"blockquote\",\"list\"]],[\"hr\",function(e,t,r,n){var o,s,i,a=e.bMarks[t],u=e.eMarks[t];if((a+=e.tShift[t])>u)return!1;if(42!==(o=e.src.charCodeAt(a++))&&45!==o&&95!==o)return!1;for(s=1;a<u;){if((i=e.src.charCodeAt(a++))!==o&&32!==i)return!1;i===o&&s++}return!(s<3||!n&&(e.line=t+1,e.tokens.push({type:\"hr\",lines:[t,e.line],level:e.level}),0))},[\"paragraph\",\"blockquote\",\"list\"]],[\"list\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d,m,b,v,k,A,y,x,w,C,E=!0;if((p=W(e,t))>=0)d=!0;else{if(!((p=Z(e,t))>=0))return!1;d=!1}if(e.level>=e.options.maxNesting)return!1;if(g=e.src.charCodeAt(p-1),n)return!0;for(b=e.tokens.length,d?(c=e.bMarks[t]+e.tShift[t],f=Number(e.src.substr(c,p-c-1)),e.tokens.push({type:\"ordered_list_open\",order:f,lines:k=[t,0],level:e.level++})):e.tokens.push({type:\"bullet_list_open\",lines:k=[t,0],level:e.level++}),o=t,v=!1,y=e.parser.ruler.getRules(\"list\");!(!(o<r)||((h=(m=e.skipSpaces(p))>=e.eMarks[o]?1:m-p)>4&&(h=1),h<1&&(h=1),s=p-e.bMarks[o]+h,e.tokens.push({type:\"list_item_open\",lines:A=[t,0],level:e.level++}),a=e.blkIndent,u=e.tight,i=e.tShift[t],l=e.parentType,e.tShift[t]=m-e.bMarks[t],e.blkIndent=s,e.tight=!0,e.parentType=\"list\",e.parser.tokenize(e,t,r,!0),e.tight&&!v||(E=!1),v=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=a,e.tShift[t]=i,e.tight=u,e.parentType=l,e.tokens.push({type:\"list_item_close\",level:--e.level}),o=t=e.line,A[1]=o,m=e.bMarks[t],o>=r)||e.isEmpty(o)||e.tShift[o]<e.blkIndent);){for(C=!1,x=0,w=y.length;x<w;x++)if(y[x](e,o,r,!0)){C=!0;break}if(C)break;if(d){if((p=W(e,o))<0)break}else if((p=Z(e,o))<0)break;if(g!==e.src.charCodeAt(p-1))break}return e.tokens.push({type:d?\"ordered_list_close\":\"bullet_list_close\",level:--e.level}),k[1]=o,e.line=o,E&&function(e,t){var r,n,o=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===o&&\"paragraph_open\"===e.tokens[r].type&&(e.tokens[r+2].tight=!0,e.tokens[r].tight=!0,r+=2)}(e,b),!0},[\"paragraph\",\"blockquote\"]],[\"footnote\",function(e,t,r,n){var o,s,i,a,u,l=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(l+4>c)return!1;if(91!==e.src.charCodeAt(l))return!1;if(94!==e.src.charCodeAt(l+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(a=l+2;a<c;a++){if(32===e.src.charCodeAt(a))return!1;if(93===e.src.charCodeAt(a))break}return!(a===l+2||a+1>=c||58!==e.src.charCodeAt(++a)||!n&&(a++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),u=e.src.slice(l+2,a-2),e.env.footnotes.refs[\":\"+u]=-1,e.tokens.push({type:\"footnote_reference_open\",label:u,level:e.level++}),o=e.bMarks[t],s=e.tShift[t],i=e.parentType,e.tShift[t]=e.skipSpaces(a)-a,e.bMarks[t]=a,e.blkIndent+=4,e.parentType=\"footnote\",e.tShift[t]<e.blkIndent&&(e.tShift[t]+=e.blkIndent,e.bMarks[t]-=e.blkIndent),e.parser.tokenize(e,t,r,!0),e.parentType=i,e.blkIndent-=4,e.tShift[t]=s,e.bMarks[t]=o,e.tokens.push({type:\"footnote_reference_close\",level:--e.level}),0))},[\"paragraph\"]],[\"heading\",function(e,t,r,n){var o,s,i,a=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(a>=u)return!1;if(35!==(o=e.src.charCodeAt(a))||a>=u)return!1;for(s=1,o=e.src.charCodeAt(++a);35===o&&a<u&&s<=6;)s++,o=e.src.charCodeAt(++a);return!(s>6||a<u&&32!==o||!n&&(u=e.skipCharsBack(u,32,a),(i=e.skipCharsBack(u,35,a))>a&&32===e.src.charCodeAt(i-1)&&(u=i),e.line=t+1,e.tokens.push({type:\"heading_open\",hLevel:s,lines:[t,e.line],level:e.level}),a<u&&e.tokens.push({type:\"inline\",content:e.src.slice(a,u).trim(),level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:\"heading_close\",hLevel:s,level:e.level}),0))},[\"paragraph\",\"blockquote\"]],[\"lheading\",function(e,t,r){var n,o,s,i=t+1;return!(i>=r||e.tShift[i]<e.blkIndent||e.tShift[i]-e.blkIndent>3||(o=e.bMarks[i]+e.tShift[i])>=(s=e.eMarks[i])||45!==(n=e.src.charCodeAt(o))&&61!==n||(o=e.skipChars(o,n),(o=e.skipSpaces(o))<s||(o=e.bMarks[t]+e.tShift[t],e.line=i+1,e.tokens.push({type:\"heading_open\",hLevel:61===n?1:2,lines:[t,e.line],level:e.level}),e.tokens.push({type:\"inline\",content:e.src.slice(o,e.eMarks[t]).trim(),level:e.level+1,lines:[t,e.line-1],children:[]}),e.tokens.push({type:\"heading_close\",hLevel:61===n?1:2,level:e.level}),0)))}],[\"htmlblock\",function(e,t,r,n){var o,s,i,a=e.bMarks[t],u=e.eMarks[t],l=e.tShift[t];if(a+=l,!e.options.html)return!1;if(l>3||a+2>=u)return!1;if(60!==e.src.charCodeAt(a))return!1;if(33===(o=e.src.charCodeAt(a+1))||63===o){if(n)return!0}else{if(47!==o&&!function(e){var t=32|e;return t>=97&&t<=122}(o))return!1;if(47===o){if(!(s=e.src.slice(a,u).match(K)))return!1}else if(!(s=e.src.slice(a,u).match(Y)))return!1;if(!0!==J[s[1].toLowerCase()])return!1;if(n)return!0}for(i=t+1;i<e.lineMax&&!e.isEmpty(i);)i++;return e.line=i,e.tokens.push({type:\"htmlblock\",level:e.level,lines:[t,e.line],content:e.getLines(t,i,0,!0)}),!0},[\"paragraph\",\"blockquote\"]],[\"table\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g;if(t+2>r)return!1;if(u=t+1,e.tShift[u]<e.blkIndent)return!1;if((i=e.bMarks[u]+e.tShift[u])>=e.eMarks[u])return!1;if(124!==(o=e.src.charCodeAt(i))&&45!==o&&58!==o)return!1;if(s=Q(e,t+1),!/^[-:| ]+$/.test(s))return!1;if((l=s.split(\"|\"))<=2)return!1;for(p=[],a=0;a<l.length;a++){if(!(h=l[a].trim())){if(0===a||a===l.length-1)continue;return!1}if(!/^:?-+:?$/.test(h))return!1;58===h.charCodeAt(h.length-1)?p.push(58===h.charCodeAt(0)?\"center\":\"right\"):58===h.charCodeAt(0)?p.push(\"left\"):p.push(\"\")}if(-1===(s=Q(e,t).trim()).indexOf(\"|\"))return!1;if(l=s.replace(/^\\||\\|$/g,\"\").split(\"|\"),p.length!==l.length)return!1;if(n)return!0;for(e.tokens.push({type:\"table_open\",lines:f=[t,0],level:e.level++}),e.tokens.push({type:\"thead_open\",lines:[t,t+1],level:e.level++}),e.tokens.push({type:\"tr_open\",lines:[t,t+1],level:e.level++}),a=0;a<l.length;a++)e.tokens.push({type:\"th_open\",align:p[a],lines:[t,t+1],level:e.level++}),e.tokens.push({type:\"inline\",content:l[a].trim(),lines:[t,t+1],level:e.level,children:[]}),e.tokens.push({type:\"th_close\",level:--e.level});for(e.tokens.push({type:\"tr_close\",level:--e.level}),e.tokens.push({type:\"thead_close\",level:--e.level}),e.tokens.push({type:\"tbody_open\",lines:g=[t+2,0],level:e.level++}),u=t+2;u<r&&!(e.tShift[u]<e.blkIndent)&&-1!==(s=Q(e,u).trim()).indexOf(\"|\");u++){for(l=s.replace(/^\\||\\|$/g,\"\").split(\"|\"),e.tokens.push({type:\"tr_open\",level:e.level++}),a=0;a<l.length;a++)e.tokens.push({type:\"td_open\",align:p[a],level:e.level++}),c=l[a].substring(124===l[a].charCodeAt(0)?1:0,124===l[a].charCodeAt(l[a].length-1)?l[a].length-1:l[a].length).trim(),e.tokens.push({type:\"inline\",content:c,level:e.level,children:[]}),e.tokens.push({type:\"td_close\",level:--e.level});e.tokens.push({type:\"tr_close\",level:--e.level})}return e.tokens.push({type:\"tbody_close\",level:--e.level}),e.tokens.push({type:\"table_close\",level:--e.level}),f[1]=g[1]=u,e.line=u,!0},[\"paragraph\"]],[\"deflist\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d,m,b;if(n)return!(e.ddIndent<0)&&X(e,t)>=0;if(c=t+1,e.isEmpty(c)&&++c>r)return!1;if(e.tShift[c]<e.blkIndent)return!1;if((o=X(e,c))<0)return!1;if(e.level>=e.options.maxNesting)return!1;l=e.tokens.length,e.tokens.push({type:\"dl_open\",lines:u=[t,0],level:e.level++}),i=t,s=c;e:for(;;){for(b=!0,m=!1,e.tokens.push({type:\"dt_open\",lines:[i,i],level:e.level++}),e.tokens.push({type:\"inline\",content:e.getLines(i,i+1,e.blkIndent,!1).trim(),level:e.level+1,lines:[i,i],children:[]}),e.tokens.push({type:\"dt_close\",level:--e.level});;){if(e.tokens.push({type:\"dd_open\",lines:a=[c,0],level:e.level++}),d=e.tight,h=e.ddIndent,p=e.blkIndent,g=e.tShift[s],f=e.parentType,e.blkIndent=e.ddIndent=e.tShift[s]+2,e.tShift[s]=o-e.bMarks[s],e.tight=!0,e.parentType=\"deflist\",e.parser.tokenize(e,s,r,!0),e.tight&&!m||(b=!1),m=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=g,e.tight=d,e.parentType=f,e.blkIndent=p,e.ddIndent=h,e.tokens.push({type:\"dd_close\",level:--e.level}),a[1]=c=e.line,c>=r)break e;if(e.tShift[c]<e.blkIndent)break e;if((o=X(e,c))<0)break;s=c}if(c>=r)break;if(i=c,e.isEmpty(i))break;if(e.tShift[i]<e.blkIndent)break;if((s=i+1)>=r)break;if(e.isEmpty(s)&&s++,s>=r)break;if(e.tShift[s]<e.blkIndent)break;if((o=X(e,s))<0)break}return e.tokens.push({type:\"dl_close\",level:--e.level}),u[1]=c,e.line=c,b&&function(e,t){var r,n,o=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===o&&\"paragraph_open\"===e.tokens[r].type&&(e.tokens[r+2].tight=!0,e.tokens[r].tight=!0,r+=2)}(e,l),!0},[\"paragraph\"]],[\"paragraph\",function(e,t){var r,n,o,s,i,a,u=t+1;if(u<(r=e.lineMax)&&!e.isEmpty(u))for(a=e.parser.ruler.getRules(\"paragraph\");u<r&&!e.isEmpty(u);u++)if(!(e.tShift[u]-e.blkIndent>3)){for(o=!1,s=0,i=a.length;s<i;s++)if(a[s](e,u,r,!0)){o=!0;break}if(o)break}return n=e.getLines(t,u,e.blkIndent,!1).trim(),e.line=u,n.length&&(e.tokens.push({type:\"paragraph_open\",tight:!1,lines:[t,e.line],level:e.level}),e.tokens.push({type:\"inline\",content:n,level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:\"paragraph_close\",tight:!1,level:e.level})),!0}]];function te(){this.ruler=new C;for(var e=0;e<ee.length;e++)this.ruler.push(ee[e][0],ee[e][1],{alt:(ee[e][2]||[]).slice()})}te.prototype.tokenize=function(e,t,r){for(var n,o=this.ruler.getRules(\"\"),s=o.length,i=t,a=!1;i<r&&(e.line=i=e.skipEmptyLines(i),!(i>=r))&&!(e.tShift[i]<e.blkIndent);){for(n=0;n<s&&!o[n](e,i,r,!1);n++);if(e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),(i=e.line)<r&&e.isEmpty(i)){if(a=!0,++i<r&&\"list\"===e.parentType&&e.isEmpty(i))break;e.line=i}}};var re=/[\\n\\t]/g,ne=/\\r[\\n\\u0085]|[\\u2424\\u2028\\u0085]/g,oe=/\\u00a0/g;function se(e){switch(e){case 10:case 92:case 96:case 42:case 95:case 94:case 91:case 93:case 33:case 38:case 60:case 62:case 123:case 125:case 36:case 37:case 64:case 126:case 43:case 61:case 58:return!0;default:return!1}}te.prototype.parse=function(e,t,r,n){var o,s=0,i=0;if(!e)return[];(e=(e=e.replace(oe,\" \")).replace(ne,\"\\n\")).indexOf(\"\\t\")>=0&&(e=e.replace(re,function(t,r){var n;return 10===e.charCodeAt(r)?(s=r+1,i=0,t):(n=\" \".slice((r-s-i)%4),i=r-s+1,n)})),o=new $(e,this,t,r,n),this.tokenize(o,o.line,o.lineMax)};for(var ie=[],ae=0;ae<256;ae++)ie.push(0);function ue(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function le(e,t){var r,n,o,s=t,i=!0,a=!0,u=e.posMax,l=e.src.charCodeAt(t);for(r=t>0?e.src.charCodeAt(t-1):-1;s<u&&e.src.charCodeAt(s)===l;)s++;return s>=u&&(i=!1),(o=s-t)>=4?i=a=!1:(32!==(n=s<u?e.src.charCodeAt(s):-1)&&10!==n||(i=!1),32!==r&&10!==r||(a=!1),95===l&&(ue(r)&&(i=!1),ue(n)&&(a=!1))),{can_open:i,can_close:a,delims:o}}\"\\\\!\\\"#$%&'()*+,./:;<=>?@[]^_`{|}~-\".split(\"\").forEach(function(e){ie[e.charCodeAt(0)]=1});var ce=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;var pe=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;var he=[\"coap\",\"doi\",\"javascript\",\"aaa\",\"aaas\",\"about\",\"acap\",\"cap\",\"cid\",\"crid\",\"data\",\"dav\",\"dict\",\"dns\",\"file\",\"ftp\",\"geo\",\"go\",\"gopher\",\"h323\",\"http\",\"https\",\"iax\",\"icap\",\"im\",\"imap\",\"info\",\"ipp\",\"iris\",\"iris.beep\",\"iris.xpc\",\"iris.xpcs\",\"iris.lwz\",\"ldap\",\"mailto\",\"mid\",\"msrp\",\"msrps\",\"mtqp\",\"mupdate\",\"news\",\"nfs\",\"ni\",\"nih\",\"nntp\",\"opaquelocktoken\",\"pop\",\"pres\",\"rtsp\",\"service\",\"session\",\"shttp\",\"sieve\",\"sip\",\"sips\",\"sms\",\"snmp\",\"soap.beep\",\"soap.beeps\",\"tag\",\"tel\",\"telnet\",\"tftp\",\"thismessage\",\"tn3270\",\"tip\",\"tv\",\"urn\",\"vemmi\",\"ws\",\"wss\",\"xcon\",\"xcon-userid\",\"xmlrpc.beep\",\"xmlrpc.beeps\",\"xmpp\",\"z39.50r\",\"z39.50s\",\"adiumxtra\",\"afp\",\"afs\",\"aim\",\"apt\",\"attachment\",\"aw\",\"beshare\",\"bitcoin\",\"bolo\",\"callto\",\"chrome\",\"chrome-extension\",\"com-eventbrite-attendee\",\"content\",\"cvs\",\"dlna-playsingle\",\"dlna-playcontainer\",\"dtn\",\"dvb\",\"ed2k\",\"facetime\",\"feed\",\"finger\",\"fish\",\"gg\",\"git\",\"gizmoproject\",\"gtalk\",\"hcp\",\"icon\",\"ipn\",\"irc\",\"irc6\",\"ircs\",\"itms\",\"jar\",\"jms\",\"keyparc\",\"lastfm\",\"ldaps\",\"magnet\",\"maps\",\"market\",\"message\",\"mms\",\"ms-help\",\"msnim\",\"mumble\",\"mvn\",\"notes\",\"oid\",\"palm\",\"paparazzi\",\"platform\",\"proxy\",\"psyc\",\"query\",\"res\",\"resource\",\"rmi\",\"rsync\",\"rtmp\",\"secondlife\",\"sftp\",\"sgn\",\"skype\",\"smb\",\"soldat\",\"spotify\",\"ssh\",\"steam\",\"svn\",\"teamspeak\",\"things\",\"udp\",\"unreal\",\"ut2004\",\"ventrilo\",\"view-source\",\"webcal\",\"wtai\",\"wyciwyg\",\"xfire\",\"xri\",\"ymsgr\"],fe=/^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,ge=/^<([a-zA-Z.\\-]{1,25}):([^<>\\x00-\\x20]*)>/;function de(e,t){return e=e.source,t=t||\"\",function r(n,o){return n?(o=o.source||o,e=e.replace(n,o),r):new RegExp(e,t)}}var me=de(/(?:unquoted|single_quoted|double_quoted)/)(\"unquoted\",/[^\"'=<>`\\x00-\\x20]+/)(\"single_quoted\",/'[^']*'/)(\"double_quoted\",/\"[^\"]*\"/)(),be=de(/(?:\\s+attr_name(?:\\s*=\\s*attr_value)?)/)(\"attr_name\",/[a-zA-Z_:][a-zA-Z0-9:._-]*/)(\"attr_value\",me)(),ve=de(/<[A-Za-z][A-Za-z0-9]*attribute*\\s*\\/?>/)(\"attribute\",be)(),ke=de(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)(\"open_tag\",ve)(\"close_tag\",/<\\/[A-Za-z][A-Za-z0-9]*\\s*>/)(\"comment\",/<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->/)(\"processing\",/<[?].*?[?]>/)(\"declaration\",/<![A-Z]+\\s+[^>]*>/)(\"cdata\",/<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/)();var Ae=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,ye=/^&([a-z][a-z0-9]{1,31});/i;var xe=[[\"text\",function(e,t){for(var r=e.pos;r<e.posMax&&!se(e.src.charCodeAt(r));)r++;return r!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,r)),e.pos=r,!0)}],[\"newline\",function(e,t){var r,n,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(r=e.pending.length-1,n=e.posMax,!t)if(r>=0&&32===e.pending.charCodeAt(r))if(r>=1&&32===e.pending.charCodeAt(r-1)){for(var s=r-2;s>=0;s--)if(32!==e.pending.charCodeAt(s)){e.pending=e.pending.substring(0,s+1);break}e.push({type:\"hardbreak\",level:e.level})}else e.pending=e.pending.slice(0,-1),e.push({type:\"softbreak\",level:e.level});else e.push({type:\"softbreak\",level:e.level});for(o++;o<n&&32===e.src.charCodeAt(o);)o++;return e.pos=o,!0}],[\"escape\",function(e,t){var r,n=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(n))return!1;if(++n<o){if((r=e.src.charCodeAt(n))<256&&0!==ie[r])return t||(e.pending+=e.src[n]),e.pos+=2,!0;if(10===r){for(t||e.push({type:\"hardbreak\",level:e.level}),n++;n<o&&32===e.src.charCodeAt(n);)n++;return e.pos=n,!0}}return t||(e.pending+=\"\\\\\"),e.pos++,!0}],[\"backticks\",function(e,t){var r,n,o,s,i,a=e.pos;if(96!==e.src.charCodeAt(a))return!1;for(r=a,a++,n=e.posMax;a<n&&96===e.src.charCodeAt(a);)a++;for(o=e.src.slice(r,a),s=i=a;-1!==(s=e.src.indexOf(\"`\",i));){for(i=s+1;i<n&&96===e.src.charCodeAt(i);)i++;if(i-s===o.length)return t||e.push({type:\"code\",content:e.src.slice(a,s).replace(/[ \\n]+/g,\" \").trim(),block:!1,level:e.level}),e.pos=i,!0}return t||(e.pending+=o),e.pos+=o.length,!0}],[\"del\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(126!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(126!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),126===s)return!1;if(126===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&126===e.src.charCodeAt(n);)n++;if(n>u+3)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(126===e.src.charCodeAt(e.pos)&&126===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),126!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&126!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"del_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"del_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"ins\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(43!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(43!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),43===s)return!1;if(43===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&43===e.src.charCodeAt(n);)n++;if(n!==u+2)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(43===e.src.charCodeAt(e.pos)&&43===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),43!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&43!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"ins_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"ins_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"mark\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(61!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(61!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),61===s)return!1;if(61===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&61===e.src.charCodeAt(n);)n++;if(n!==u+2)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(61===e.src.charCodeAt(e.pos)&&61===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),61!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&61!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"mark_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"mark_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"emphasis\",function(e,t){var r,n,o,s,i,a,u,l=e.posMax,c=e.pos,p=e.src.charCodeAt(c);if(95!==p&&42!==p)return!1;if(t)return!1;if(r=(u=le(e,c)).delims,!u.can_open)return e.pos+=r,t||(e.pending+=e.src.slice(c,e.pos)),!0;if(e.level>=e.options.maxNesting)return!1;for(e.pos=c+r,a=[r];e.pos<l;)if(e.src.charCodeAt(e.pos)!==p)e.parser.skipToken(e);else{if(n=(u=le(e,e.pos)).delims,u.can_close){for(s=a.pop(),i=n;s!==i;){if(i<s){a.push(s-i);break}if(i-=s,0===a.length)break;e.pos+=s,s=a.pop()}if(0===a.length){r=s,o=!0;break}e.pos+=n;continue}u.can_open&&a.push(n),e.pos+=n}return o?(e.posMax=e.pos,e.pos=c+r,t||(2!==r&&3!==r||e.push({type:\"strong_open\",level:e.level++}),1!==r&&3!==r||e.push({type:\"em_open\",level:e.level++}),e.parser.tokenize(e),1!==r&&3!==r||e.push({type:\"em_close\",level:--e.level}),2!==r&&3!==r||e.push({type:\"strong_close\",level:--e.level})),e.pos=e.posMax+r,e.posMax=l,!0):(e.pos=c,!1)}],[\"sub\",function(e,t){var r,n,o=e.posMax,s=e.pos;if(126!==e.src.charCodeAt(s))return!1;if(t)return!1;if(s+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos<o;){if(126===e.src.charCodeAt(e.pos)){r=!0;break}e.parser.skipToken(e)}return r&&s+1!==e.pos?(n=e.src.slice(s+1,e.pos)).match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(e.pos=s,!1):(e.posMax=e.pos,e.pos=s+1,t||e.push({type:\"sub\",level:e.level,content:n.replace(ce,\"$1\")}),e.pos=e.posMax+1,e.posMax=o,!0):(e.pos=s,!1)}],[\"sup\",function(e,t){var r,n,o=e.posMax,s=e.pos;if(94!==e.src.charCodeAt(s))return!1;if(t)return!1;if(s+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos<o;){if(94===e.src.charCodeAt(e.pos)){r=!0;break}e.parser.skipToken(e)}return r&&s+1!==e.pos?(n=e.src.slice(s+1,e.pos)).match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(e.pos=s,!1):(e.posMax=e.pos,e.pos=s+1,t||e.push({type:\"sup\",level:e.level,content:n.replace(pe,\"$1\")}),e.pos=e.posMax+1,e.posMax=o,!0):(e.pos=s,!1)}],[\"links\",function(e,t){var r,n,o,s,i,a,u,l,c=!1,p=e.pos,h=e.posMax,f=e.pos,g=e.src.charCodeAt(f);if(33===g&&(c=!0,g=e.src.charCodeAt(++f)),91!==g)return!1;if(e.level>=e.options.maxNesting)return!1;if(r=f+1,(n=D(e,f))<0)return!1;if((a=n+1)<h&&40===e.src.charCodeAt(a)){for(a++;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a>=h)return!1;for(f=a,q(e,a)?(s=e.linkContent,a=e.pos):s=\"\",f=a;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a<h&&f!==a&&F(e,a))for(i=e.linkContent,a=e.pos;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);else i=\"\";if(a>=h||41!==e.src.charCodeAt(a))return e.pos=p,!1;a++}else{if(e.linkLevel>0)return!1;for(;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a<h&&91===e.src.charCodeAt(a)&&(f=a+1,(a=D(e,a))>=0?o=e.src.slice(f,a++):a=f-1),o||(void 0===o&&(a=n+1),o=e.src.slice(r,n)),!(u=e.env.references[M(o)]))return e.pos=p,!1;s=u.href,i=u.title}return t||(e.pos=r,e.posMax=n,c?e.push({type:\"image\",src:s,title:i,alt:e.src.substr(r,n-r),level:e.level}):(e.push({type:\"link_open\",href:s,title:i,level:e.level++}),e.linkLevel++,e.parser.tokenize(e),e.linkLevel--,e.push({type:\"link_close\",level:--e.level}))),e.pos=a,e.posMax=h,!0}],[\"footnote_inline\",function(e,t){var r,n,o,s,i=e.posMax,a=e.pos;return!(a+2>=i||94!==e.src.charCodeAt(a)||91!==e.src.charCodeAt(a+1)||e.level>=e.options.maxNesting||(r=a+2,(n=D(e,a+1))<0||(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),o=e.env.footnotes.list.length,e.pos=r,e.posMax=n,e.push({type:\"footnote_ref\",id:o,level:e.level}),e.linkLevel++,s=e.tokens.length,e.parser.tokenize(e),e.env.footnotes.list[o]={tokens:e.tokens.splice(s)},e.linkLevel--),e.pos=n+1,e.posMax=i,0)))}],[\"footnote_ref\",function(e,t){var r,n,o,s,i=e.posMax,a=e.pos;if(a+3>i)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(a))return!1;if(94!==e.src.charCodeAt(a+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(n=a+2;n<i;n++){if(32===e.src.charCodeAt(n))return!1;if(10===e.src.charCodeAt(n))return!1;if(93===e.src.charCodeAt(n))break}return!(n===a+2||n>=i||(n++,r=e.src.slice(a+2,n-1),void 0===e.env.footnotes.refs[\":\"+r]||(t||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[\":\"+r]<0?(o=e.env.footnotes.list.length,e.env.footnotes.list[o]={label:r,count:0},e.env.footnotes.refs[\":\"+r]=o):o=e.env.footnotes.refs[\":\"+r],s=e.env.footnotes.list[o].count,e.env.footnotes.list[o].count++,e.push({type:\"footnote_ref\",id:o,subId:s,level:e.level})),e.pos=n,e.posMax=i,0)))}],[\"autolink\",function(e,t){var r,n,o,s,i,a=e.pos;return!(60!==e.src.charCodeAt(a)||(r=e.src.slice(a)).indexOf(\">\")<0||((n=r.match(ge))?he.indexOf(n[1].toLowerCase())<0||(i=B(s=n[0].slice(1,-1)),!e.parser.validateLink(s)||(t||(e.push({type:\"link_open\",href:i,level:e.level}),e.push({type:\"text\",content:s,level:e.level+1}),e.push({type:\"link_close\",level:e.level})),e.pos+=n[0].length,0)):!(o=r.match(fe))||(i=B(\"mailto:\"+(s=o[0].slice(1,-1))),!e.parser.validateLink(i)||(t||(e.push({type:\"link_open\",href:i,level:e.level}),e.push({type:\"text\",content:s,level:e.level+1}),e.push({type:\"link_close\",level:e.level})),e.pos+=o[0].length,0))))}],[\"htmltag\",function(e,t){var r,n,o,s=e.pos;return!(!e.options.html||(o=e.posMax,60!==e.src.charCodeAt(s)||s+2>=o||33!==(r=e.src.charCodeAt(s+1))&&63!==r&&47!==r&&!function(e){var t=32|e;return t>=97&&t<=122}(r)||!(n=e.src.slice(s).match(ke))||(t||e.push({type:\"htmltag\",content:e.src.slice(s,s+n[0].length),level:e.level}),e.pos+=n[0].length,0)))}],[\"entity\",function(e,t){var r,o,s=e.pos,i=e.posMax;if(38!==e.src.charCodeAt(s))return!1;if(s+1<i)if(35===e.src.charCodeAt(s+1)){if(o=e.src.slice(s).match(Ae))return t||(r=\"x\"===o[1][0].toLowerCase()?parseInt(o[1].slice(1),16):parseInt(o[1],10),e.pending+=l(r)?c(r):c(65533)),e.pos+=o[0].length,!0}else if(o=e.src.slice(s).match(ye)){var a=n(o[1]);if(o[1]!==a)return t||(e.pending+=a),e.pos+=o[0].length,!0}return t||(e.pending+=\"&\"),e.pos++,!0}]];function we(){this.ruler=new C;for(var e=0;e<xe.length;e++)this.ruler.push(xe[e][0],xe[e][1]);this.validateLink=Ce}function Ce(e){var t=e.trim().toLowerCase();return-1===(t=g(t)).indexOf(\":\")||-1===[\"vbscript\",\"javascript\",\"file\",\"data\"].indexOf(t.split(\":\")[0])}we.prototype.skipToken=function(e){var t,r,n=this.ruler.getRules(\"\"),o=n.length,s=e.pos;if((r=e.cacheGet(s))>0)e.pos=r;else{for(t=0;t<o;t++)if(n[t](e,!0))return void e.cacheSet(s,e.pos);e.pos++,e.cacheSet(s,e.pos)}},we.prototype.tokenize=function(e){for(var t,r,n=this.ruler.getRules(\"\"),o=n.length,s=e.posMax;e.pos<s;){for(r=0;r<o&&!(t=n[r](e,!1));r++);if(t){if(e.pos>=s)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},we.prototype.parse=function(e,t,r,n){var o=new E(e,this,t,r,n);this.tokenize(o)};var Ee={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"block\",\"inline\",\"references\",\"replacements\",\"smartquotes\",\"references\",\"abbr2\",\"footnote_tail\"]},block:{rules:[\"blockquote\",\"code\",\"fences\",\"footnote\",\"heading\",\"hr\",\"htmlblock\",\"lheading\",\"list\",\"paragraph\",\"table\"]},inline:{rules:[\"autolink\",\"backticks\",\"del\",\"emphasis\",\"entity\",\"escape\",\"footnote_ref\",\"htmltag\",\"links\",\"newline\",\"text\"]}}},full:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{},block:{},inline:{}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"block\",\"inline\",\"references\",\"abbr2\"]},block:{rules:[\"blockquote\",\"code\",\"fences\",\"heading\",\"hr\",\"htmlblock\",\"lheading\",\"list\",\"paragraph\"]},inline:{rules:[\"autolink\",\"backticks\",\"emphasis\",\"entity\",\"escape\",\"htmltag\",\"links\",\"newline\",\"text\"]}}}};function De(e,t,r){this.src=t,this.env=r,this.options=e.options,this.tokens=[],this.inlineMode=!1,this.inline=e.inline,this.block=e.block,this.renderer=e.renderer,this.typographer=e.typographer}function _e(e,t){\"string\"!=typeof e&&(t=e,e=\"default\"),t&&null!=t.linkify&&console.warn(\"linkify option is removed. Use linkify plugin instead:\\n\\nimport Remarkable from 'remarkable';\\nimport linkify from 'remarkable/linkify';\\nnew Remarkable().use(linkify)\\n\"),this.inline=new we,this.block=new te,this.core=new G,this.renderer=new w,this.ruler=new C,this.options={},this.configure(Ee[e]),this.set(t||{})}function Be(e,t){if(Array.prototype.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}function qe(e,t){for(var r=e.length-1;r>=0;r--)!0===t(e[r])&&e.splice(r,1)}function Fe(e){throw new Error(\"Unhandled case for value: '\"+e+\"'\")}_e.prototype.set=function(e){i(this.options,e)},_e.prototype.configure=function(e){var t=this;if(!e)throw new Error(\"Wrong `remarkable` preset, check name/content\");e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(r){e.components[r].rules&&t[r].ruler.enable(e.components[r].rules,!0)})},_e.prototype.use=function(e,t){return e(this,t),this},_e.prototype.parse=function(e,t){var r=new De(this,e,t);return this.core.process(r),r.tokens},_e.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},_e.prototype.parseInline=function(e,t){var r=new De(this,e,t);return r.inlineMode=!0,this.core.process(r),r.tokens},_e.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};var Me=function(){function e(e){void 0===e&&(e={}),this.tagName=\"\",this.attrs={},this.innerHTML=\"\",this.whitespaceRegex=/\\s+/,this.tagName=e.tagName||\"\",this.attrs=e.attrs||{},this.innerHTML=e.innerHtml||e.innerHTML||\"\"}return e.prototype.setTagName=function(e){return this.tagName=e,this},e.prototype.getTagName=function(){return this.tagName||\"\"},e.prototype.setAttr=function(e,t){return this.getAttrs()[e]=t,this},e.prototype.getAttr=function(e){return this.getAttrs()[e]},e.prototype.setAttrs=function(e){return Object.assign(this.getAttrs(),e),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(e){return this.setAttr(\"class\",e)},e.prototype.addClass=function(e){for(var t,r=this.getClass(),n=this.whitespaceRegex,o=r?r.split(n):[],s=e.split(n);t=s.shift();)-1===Be(o,t)&&o.push(t);return this.getAttrs().class=o.join(\" \"),this},e.prototype.removeClass=function(e){for(var t,r=this.getClass(),n=this.whitespaceRegex,o=r?r.split(n):[],s=e.split(n);o.length&&(t=s.shift());){var i=Be(o,t);-1!==i&&o.splice(i,1)}return this.getAttrs().class=o.join(\" \"),this},e.prototype.getClass=function(){return this.getAttrs().class||\"\"},e.prototype.hasClass=function(e){return-1!==(\" \"+this.getClass()+\" \").indexOf(\" \"+e+\" \")},e.prototype.setInnerHTML=function(e){return this.innerHTML=e,this},e.prototype.setInnerHtml=function(e){return this.setInnerHTML(e)},e.prototype.getInnerHTML=function(){return this.innerHTML||\"\"},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var e=this.getTagName(),t=this.buildAttrsStr();return[\"<\",e,t=t?\" \"+t:\"\",\">\",this.getInnerHtml(),\"</\",e,\">\"].join(\"\")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return\"\";var e=this.getAttrs(),t=[];for(var r in e)e.hasOwnProperty(r)&&t.push(r+'=\"'+e[r]+'\"');return t.join(\" \")},e}();var Se=function(){function e(e){void 0===e&&(e={}),this.newWindow=!1,this.truncate={},this.className=\"\",this.newWindow=e.newWindow||!1,this.truncate=e.truncate||{},this.className=e.className||\"\"}return e.prototype.build=function(e){return new Me({tagName:\"a\",attrs:this.createAttrs(e),innerHtml:this.processAnchorText(e.getAnchorText())})},e.prototype.createAttrs=function(e){var t={href:e.getAnchorHref()},r=this.createCssClass(e);return r&&(t.class=r),this.newWindow&&(t.target=\"_blank\",t.rel=\"noopener noreferrer\"),this.truncate&&this.truncate.length&&this.truncate.length<e.getAnchorText().length&&(t.title=e.getAnchorHref()),t},e.prototype.createCssClass=function(e){var t=this.className;if(t){for(var r=[t],n=e.getCssClassSuffixes(),o=0,s=n.length;o<s;o++)r.push(t+\"-\"+n[o]);return r.join(\" \")}return\"\"},e.prototype.processAnchorText=function(e){return e=this.doTruncate(e)},e.prototype.doTruncate=function(e){var t=this.truncate;if(!t||!t.length)return e;var r=t.length,n=t.location;return\"smart\"===n?function(e,t,r){var n,o;null==r?(r=\"…\",o=3,n=8):(o=r.length,n=r.length);var s=function(e){var t=\"\";return e.scheme&&e.host&&(t+=e.scheme+\"://\"),e.host&&(t+=e.host),e.path&&(t+=\"/\"+e.path),e.query&&(t+=\"?\"+e.query),e.fragment&&(t+=\"#\"+e.fragment),t},i=function(e,t){var n=t/2,o=Math.ceil(n),s=-1*Math.floor(n),i=\"\";return s<0&&(i=e.substr(s)),e.substr(0,o)+r+i};if(e.length<=t)return e;var a=t-o,u=function(e){var t={},r=e,n=r.match(/^([a-z]+):\\/\\//i);return n&&(t.scheme=n[1],r=r.substr(n[0].length)),(n=r.match(/^(.*?)(?=(\\?|#|\\/|$))/i))&&(t.host=n[1],r=r.substr(n[0].length)),(n=r.match(/^\\/(.*?)(?=(\\?|#|$))/i))&&(t.path=n[1],r=r.substr(n[0].length)),(n=r.match(/^\\?(.*?)(?=(#|$))/i))&&(t.query=n[1],r=r.substr(n[0].length)),(n=r.match(/^#(.*?)$/i))&&(t.fragment=n[1]),t}(e);if(u.query){var l=u.query.match(/^(.*?)(?=(\\?|\\#))(.*?)$/i);l&&(u.query=u.query.substr(0,l[1].length),e=s(u))}if(e.length<=t)return e;if(u.host&&(u.host=u.host.replace(/^www\\./,\"\"),e=s(u)),e.length<=t)return e;var c=\"\";if(u.host&&(c+=u.host),c.length>=a)return u.host.length==t?(u.host.substr(0,t-o)+r).substr(0,a+n):i(c,a).substr(0,a+n);var p=\"\";if(u.path&&(p+=\"/\"+u.path),u.query&&(p+=\"?\"+u.query),p){if((c+p).length>=a)return(c+p).length==t?(c+p).substr(0,t):(c+i(p,a-c.length)).substr(0,a+n);c+=p}if(u.fragment){var h=\"#\"+u.fragment;if((c+h).length>=a)return(c+h).length==t?(c+h).substr(0,t):(c+i(h,a-c.length)).substr(0,a+n);c+=h}if(u.scheme&&u.host){var f=u.scheme+\"://\";if((c+f).length<a)return(f+c).substr(0,t)}if(c.length<=t)return c;var g=\"\";return a>0&&(g=c.substr(-1*Math.floor(a/2))),(c.substr(0,Math.ceil(a/2))+r+g).substr(0,a+n)}(e,r):\"middle\"===n?function(e,t,r){if(e.length<=t)return e;var n,o;null==r?(r=\"…\",n=8,o=3):(n=r.length,o=r.length);var s=t-o,i=\"\";return s>0&&(i=e.substr(-1*Math.floor(s/2))),(e.substr(0,Math.ceil(s/2))+r+i).substr(0,s+n)}(e,r):function(e,t,r){return function(e,t,r){var n;return e.length>t&&(null==r?(r=\"…\",n=3):n=r.length,e=e.substring(0,t-n)+r),e}(e,t,r)}(e,r)},e}(),Te=function(){function e(e){this.__jsduckDummyDocProp=null,this.matchedText=\"\",this.offset=0,this.tagBuilder=e.tagBuilder,this.matchedText=e.matchedText,this.offset=e.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(e){this.offset=e},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.getType()]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e}(),Le=function(e,t){return(Le=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function Re(e,t){function r(){this.constructor=e}Le(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var Ne=function(){return(Ne=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},ze=function(e){function t(t){var r=e.call(this,t)||this;return r.email=\"\",r.email=t.email,r}return Re(t,e),t.prototype.getType=function(){return\"email\"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return\"mailto:\"+this.email},t.prototype.getAnchorText=function(){return this.email},t}(Te),Pe=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"\",r.hashtag=\"\",r.serviceName=t.serviceName,r.hashtag=t.hashtag,r}return Re(t,e),t.prototype.getType=function(){return\"hashtag\"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var e=this.serviceName,t=this.hashtag;switch(e){case\"twitter\":return\"https://twitter.com/hashtag/\"+t;case\"facebook\":return\"https://www.facebook.com/hashtag/\"+t;case\"instagram\":return\"https://instagram.com/explore/tags/\"+t;default:throw new Error(\"Unknown service name to point hashtag to: \"+e)}},t.prototype.getAnchorText=function(){return\"#\"+this.hashtag},t}(Te),je=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.mention=\"\",r.mention=t.mention,r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.getType=function(){return\"mention\"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case\"twitter\":return\"https://twitter.com/\"+this.mention;case\"instagram\":return\"https://instagram.com/\"+this.mention;case\"soundcloud\":return\"https://soundcloud.com/\"+this.mention;default:throw new Error(\"Unknown service name to point mention to: \"+this.serviceName)}},t.prototype.getAnchorText=function(){return\"@\"+this.mention},t.prototype.getCssClassSuffixes=function(){var t=e.prototype.getCssClassSuffixes.call(this),r=this.getServiceName();return r&&t.push(r),t},t}(Te),Ie=function(e){function t(t){var r=e.call(this,t)||this;return r.number=\"\",r.plusSign=!1,r.number=t.number,r.plusSign=t.plusSign,r}return Re(t,e),t.prototype.getType=function(){return\"phone\"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return\"tel:\"+(this.plusSign?\"+\":\"\")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t}(Te),Oe=function(e){function t(t){var r=e.call(this,t)||this;return r.url=\"\",r.urlMatchType=\"scheme\",r.protocolUrlMatch=!1,r.protocolRelativeMatch=!1,r.stripPrefix={scheme:!0,www:!0},r.stripTrailingSlash=!0,r.decodePercentEncoding=!0,r.schemePrefixRegex=/^(https?:\\/\\/)?/i,r.wwwPrefixRegex=/^(https?:\\/\\/)?(www\\.)?/i,r.protocolRelativeRegex=/^\\/\\//,r.protocolPrepended=!1,r.urlMatchType=t.urlMatchType,r.url=t.url,r.protocolUrlMatch=t.protocolUrlMatch,r.protocolRelativeMatch=t.protocolRelativeMatch,r.stripPrefix=t.stripPrefix,r.stripTrailingSlash=t.stripTrailingSlash,r.decodePercentEncoding=t.decodePercentEncoding,r}return Re(t,e),t.prototype.getType=function(){return\"url\"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var e=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(e=this.url=\"http://\"+e,this.protocolPrepended=!0),e},t.prototype.getAnchorHref=function(){return this.getUrl().replace(/&/g,\"&\")},t.prototype.getAnchorText=function(){var e=this.getMatchedText();return this.protocolRelativeMatch&&(e=this.stripProtocolRelativePrefix(e)),this.stripPrefix.scheme&&(e=this.stripSchemePrefix(e)),this.stripPrefix.www&&(e=this.stripWwwPrefix(e)),this.stripTrailingSlash&&(e=this.removeTrailingSlash(e)),this.decodePercentEncoding&&(e=this.removePercentEncoding(e)),e},t.prototype.stripSchemePrefix=function(e){return e.replace(this.schemePrefixRegex,\"\")},t.prototype.stripWwwPrefix=function(e){return e.replace(this.wwwPrefixRegex,\"$1\")},t.prototype.stripProtocolRelativePrefix=function(e){return e.replace(this.protocolRelativeRegex,\"\")},t.prototype.removeTrailingSlash=function(e){return\"/\"===e.charAt(e.length-1)&&(e=e.slice(0,-1)),e},t.prototype.removePercentEncoding=function(e){var t=e.replace(/%22/gi,\""\").replace(/%26/gi,\"&\").replace(/%27/gi,\"'\").replace(/%3C/gi,\"<\").replace(/%3E/gi,\">\");try{return decodeURIComponent(t)}catch(e){return t}},t}(Te),Ue=function(e){this.__jsduckDummyDocProp=null,this.tagBuilder=e.tagBuilder},He=/[A-Za-z]/,Ve=/[0-9]/,Ge=/\\s/,$e=/['\"]/,Ze=/[\\x00-\\x1F\\x7F]/,We=/A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC/.source,Je=We+/\\u00a9\\u00ae\\u2000-\\u3300\\ud83c\\ud000-\\udfff\\ud83d\\ud000-\\udfff\\ud83e\\ud000-\\udfff/.source+/\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F/.source,Ye=/0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19/.source,Ke=Je+Ye,Qe=Je+Ye,Xe=\"(?:[\"+Ye+\"]{1,3}\\\\.){3}[\"+Ye+\"]{1,3}\",et=\"[\"+Qe+\"](?:[\"+Qe+\"\\\\-]{0,61}[\"+Qe+\"])?\",tt=function(e){return\"(?=(\"+et+\"))\\\\\"+e},rt=function(e){return\"(?:\"+tt(e)+\"(?:\\\\.\"+tt(e+1)+\"){0,126}|\"+Xe+\")\"},nt=new RegExp(\"[\"+Qe+\"]\"),ot=/(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|vermögensberatung|xn--3oq18vl8pn36a|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermögensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|afamilycompany|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|spreadbetting|travelchannel|wolterskluwer|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|rightathome|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pbt977c|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|சிங்கப்பூர்|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nationwide|newholland|nextdirect|onyourside|properties|protection|prudential|realestate|republican|restaurant|schaeffler|swiftcover|tatamotors|technology|telefonica|university|vistaprint|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|fujixerox|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|honeywell|institute|insurance|kuokgroup|ladbrokes|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|scjohnson|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--tckwe|xn--vhquv|yodobashi|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|budapest|builders|business|capetown|catering|catholic|chrysler|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|esurance|etisalat|everbank|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|movistar|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|symantec|training|uconnect|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|السعودية|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|cartier|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|iselect|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lancome|lanxess|lasalle|latrobe|leclerc|liaison|limited|lincoln|markets|metlife|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|shriram|singles|staples|starhub|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|католик|اتصالات|الجزائر|العليان|پاکستان|كاثوليك|موبايلي|இந்தியா|abarth|abbott|abbvie|active|africa|agency|airbus|airtel|alipay|alsace|alstom|anquan|aramco|author|bayern|beauty|berlin|bharti|blanco|bostik|boston|broker|camera|career|caseih|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|mobily|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|piaget|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|warman|webcam|xihuan|yachts|yandex|zappos|москва|онлайн|ابوظبي|ارامكو|الاردن|المغرب|امارات|فلسطين|مليسيا|भारतम्|இலங்கை|ファッション|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|dodge|drive|dubai|earth|edeka|email|epost|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glade|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|intel|irish|iveco|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|lixil|loans|locus|lotte|lotto|lupin|macys|mango|media|miami|money|mopar|movie|nadex|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|zippo|ایران|بازار|بھارت|سودان|سورية|همراه|भारोत|संगठन|বাংলা|భారత్|ഭാരതം|嘉里大酒店|aarp|able|adac|aero|aigo|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|doha|duck|duns|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|raid|read|reit|rent|rest|rich|rmit|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scor|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|дети|сайт|بارت|بيتك|ڀارت|تونس|شبكة|عراق|عمان|موقع|भारत|ভারত|ভাৰত|ਭਾਰਤ|ભારત|ଭାରତ|ಭಾರತ|ලංකා|グーグル|クラウド|ポイント|大众汽车|组织机构|電訊盈科|香格里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bnl|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceb|ceo|cfa|cfd|com|crs|csc|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jcp|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|off|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|qvc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|srl|srt|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|бел|ком|қаз|мкд|мон|орг|рус|срб|укр|հայ|קום|عرب|قطر|كوم|مصر|कॉम|नेट|คอม|ไทย|ストア|セール|みんな|中文网|天主教|我爱你|新加坡|淡马锡|诺基亚|飞利浦|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|工行|广东|微博|慈善|手机|手表|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|珠宝|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/,st=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.localPartCharRegex=new RegExp(\"[\"+Qe+\"!#$%&'*+/=?^_`{|}~-]\"),t.strictTldRegex=new RegExp(\"^\"+ot.source+\"$\"),t}return Re(t,e),t.prototype.parseMatches=function(e){for(var t=this.tagBuilder,r=this.localPartCharRegex,n=this.strictTldRegex,o=[],s=e.length,i=new it,a={m:\"a\",a:\"i\",i:\"l\",l:\"t\",t:\"o\",o:\":\"},u=0,l=0,c=i;u<s;){var p=e.charAt(u);switch(l){case 0:h(p);break;case 1:f(e.charAt(u-1),p);break;case 2:g(p);break;case 3:d(p);break;case 4:m(p);break;case 5:b(p);break;case 6:v(p);break;case 7:k(p);break;default:Fe(l)}u++}return x(),o;function h(e){\"m\"===e?A(1):r.test(e)&&A()}function f(e,t){\":\"===e?r.test(t)?(l=2,c=new it(Ne({},c,{hasMailtoPrefix:!0}))):y():a[e]===t||(r.test(t)?l=2:\".\"===t?l=3:\"@\"===t?l=4:y())}function g(e){\".\"===e?l=3:\"@\"===e?l=4:r.test(e)||y()}function d(e){\".\"===e?y():\"@\"===e?y():r.test(e)?l=2:y()}function m(e){nt.test(e)?l=5:y()}function b(e){\".\"===e?l=7:\"-\"===e?l=6:nt.test(e)||x()}function v(e){\"-\"===e||\".\"===e?x():nt.test(e)?l=5:x()}function k(e){\".\"===e||\"-\"===e?x():nt.test(e)?(l=5,c=new it(Ne({},c,{hasDomainDot:!0}))):x()}function A(e){void 0===e&&(e=2),l=e,c=new it({idx:u})}function y(){l=0,c=i}function x(){if(c.hasDomainDot){var r=e.slice(c.idx,u);/[-.]$/.test(r)&&(r=r.slice(0,-1));var s=c.hasMailtoPrefix?r.slice(\"mailto:\".length):r;(function(e){var t=(e.split(\".\").pop()||\"\").toLowerCase();return n.test(t)})(s)&&o.push(new ze({tagBuilder:t,matchedText:r,offset:c.idx,email:s}))}y()}},t}(Ue),it=function(e){void 0===e&&(e={}),this.idx=void 0!==e.idx?e.idx:-1,this.hasMailtoPrefix=!!e.hasMailtoPrefix,this.hasDomainDot=!!e.hasDomainDot},at=function(){function e(){}return e.isValid=function(e,t){return!(t&&!this.isValidUriScheme(t)||this.urlMatchDoesNotHaveProtocolOrDot(e,t)||this.urlMatchDoesNotHaveAtLeastOneWordChar(e,t)&&!this.isValidIpAddress(e)||this.containsMultipleDots(e))},e.isValidIpAddress=function(e){var t=new RegExp(this.hasFullProtocolRegex.source+this.ipRegex.source);return null!==e.match(t)},e.containsMultipleDots=function(e){var t=e;return this.hasFullProtocolRegex.test(e)&&(t=e.split(\"://\")[1]),t.split(\"/\")[0].indexOf(\"..\")>-1},e.isValidUriScheme=function(e){var t=e.match(this.uriSchemeRegex),r=t&&t[0].toLowerCase();return\"javascript:\"!==r&&\"vbscript:\"!==r},e.urlMatchDoesNotHaveProtocolOrDot=function(e,t){return!(!e||t&&this.hasFullProtocolRegex.test(t)||-1!==e.indexOf(\".\"))},e.urlMatchDoesNotHaveAtLeastOneWordChar=function(e,t){return!(!e||!t)&&!this.hasWordCharAfterProtocolRegex.test(e)},e.hasFullProtocolRegex=/^[A-Za-z][-.+A-Za-z0-9]*:\\/\\//,e.uriSchemeRegex=/^[A-Za-z][-.+A-Za-z0-9]*:/,e.hasWordCharAfterProtocolRegex=new RegExp(\":[^\\\\s]*?[\"+We+\"]\"),e.ipRegex=/[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?(:[0-9]*)?\\/?$/,e}(),ut=function(e){function t(t){var r,n=e.call(this,t)||this;return n.stripPrefix={scheme:!0,www:!0},n.stripTrailingSlash=!0,n.decodePercentEncoding=!0,n.matcherRegex=(r=new RegExp(\"[/?#](?:[\"+Qe+\"\\\\-+&@#/%=~_()|'$*\\\\[\\\\]?!:,.;✓]*[\"+Qe+\"\\\\-+&@#/%=~_()|'$*\\\\[\\\\]✓])?\"),new RegExp([\"(?:\",\"(\",/(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\\/\\/)(?!\\d+\\/?)(?:\\/\\/)?)/.source,rt(2),\")\",\"|\",\"(\",\"(//)?\",/(?:www\\.)/.source,rt(6),\")\",\"|\",\"(\",\"(//)?\",rt(10)+\"\\\\.\",ot.source,\"(?![-\"+Ke+\"])\",\")\",\")\",\"(?::[0-9]+)?\",\"(?:\"+r.source+\")?\"].join(\"\"),\"gi\")),n.wordCharRegExp=new RegExp(\"[\"+Qe+\"]\"),n.stripPrefix=t.stripPrefix,n.stripTrailingSlash=t.stripTrailingSlash,n.decodePercentEncoding=t.decodePercentEncoding,n}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.stripPrefix,o=this.stripTrailingSlash,s=this.decodePercentEncoding,i=this.tagBuilder,a=[],u=function(){var r=t[0],u=t[1],c=t[4],p=t[5],h=t[9],f=t.index,g=p||h,d=e.charAt(f-1);if(!at.isValid(r,u))return\"continue\";if(f>0&&\"@\"===d)return\"continue\";if(f>0&&g&&l.wordCharRegExp.test(d))return\"continue\";if(/\\?$/.test(r)&&(r=r.substr(0,r.length-1)),l.matchHasUnbalancedClosingParen(r))r=r.substr(0,r.length-1);else{var m=l.matchHasInvalidCharAfterTld(r,u);m>-1&&(r=r.substr(0,m))}var b=[\"http://\",\"https://\"].find(function(e){return!!u&&-1!==u.indexOf(e)});if(b){var v=r.indexOf(b);r=r.substr(v),u=u.substr(v),f+=v}var k=u?\"scheme\":c?\"www\":\"tld\",A=!!u;a.push(new Oe({tagBuilder:i,matchedText:r,offset:f,urlMatchType:k,url:r,protocolUrlMatch:A,protocolRelativeMatch:!!g,stripPrefix:n,stripTrailingSlash:o,decodePercentEncoding:s}))},l=this;null!==(t=r.exec(e));)u();return a},t.prototype.matchHasUnbalancedClosingParen=function(e){var t,r=e.charAt(e.length-1);if(\")\"===r)t=\"(\";else{if(\"]\"!==r)return!1;t=\"[\"}for(var n=0,o=0,s=e.length-1;o<s;o++){var i=e.charAt(o);i===t?n++:i===r&&(n=Math.max(n-1,0))}return 0===n},t.prototype.matchHasInvalidCharAfterTld=function(e,t){if(!e)return-1;var r=0;t&&(r=e.indexOf(\":\"),e=e.slice(r));var n=new RegExp(\"^((.?//)?[-.\"+Qe+\"]*[-\"+Qe+\"]\\\\.[-\"+Qe+\"]+)\").exec(e);return null===n?-1:(r+=n[1].length,e=e.slice(n[1].length),/^[^-.A-Za-z0-9:\\/?#]/.test(e)?r:-1)},t}(Ue),lt=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.matcherRegex=new RegExp(\"#[_\"+Qe+\"]{1,139}(?![_\"+Qe+\"])\",\"g\"),r.nonWordCharRegex=new RegExp(\"[^\"+Qe+\"]\"),r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.nonWordCharRegex,o=this.serviceName,s=this.tagBuilder,i=[];null!==(t=r.exec(e));){var a=t.index,u=e.charAt(a-1);if(0===a||n.test(u)){var l=t[0],c=t[0].slice(1);i.push(new Pe({tagBuilder:s,matchedText:l,offset:a,serviceName:o,hashtag:c}))}}return i},t}(Ue),ct=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.matcherRegex=/(?:(?:(?:(\\+)?\\d{1,3}[-\\040.]?)?\\(?\\d{3}\\)?[-\\040.]?\\d{3}[-\\040.]?\\d{4})|(?:(\\+)(?:9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-\\040.]?(?:\\d[-\\040.]?){6,12}\\d+))([,;]+[0-9]+#?)*/g,t}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.tagBuilder,o=[];null!==(t=r.exec(e));){var s=t[0],i=s.replace(/[^0-9,;#]/g,\"\"),a=!(!t[1]&&!t[2]),u=0==t.index?\"\":e.substr(t.index-1,1),l=e.substr(t.index+s.length,1),c=!u.match(/\\d/)&&!l.match(/\\d/);this.testMatch(t[3])&&this.testMatch(s)&&c&&o.push(new Ie({tagBuilder:n,matchedText:s,offset:t.index,number:i,plusSign:a}))}return o},t.prototype.testMatch=function(e){return/\\D/.test(e)},t}(Ue),pt=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.matcherRegexes={twitter:new RegExp(\"@[_\"+Qe+\"]{1,50}(?![_\"+Qe+\"])\",\"g\"),instagram:new RegExp(\"@[_.\"+Qe+\"]{1,30}(?![_\"+Qe+\"])\",\"g\"),soundcloud:new RegExp(\"@[-_.\"+Qe+\"]{1,50}(?![-_\"+Qe+\"])\",\"g\")},r.nonWordCharRegex=new RegExp(\"[^\"+Qe+\"]\"),r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.parseMatches=function(e){var t,r=this.serviceName,n=this.matcherRegexes[this.serviceName],o=this.nonWordCharRegex,s=this.tagBuilder,i=[];if(!n)return i;for(;null!==(t=n.exec(e));){var a=t.index,u=e.charAt(a-1);if(0===a||o.test(u)){var l=t[0].replace(/\\.+$/g,\"\"),c=l.slice(1);i.push(new je({tagBuilder:s,matchedText:l,offset:a,serviceName:r,mention:c}))}}return i},t}(Ue);function ht(e,t){for(var r=t.onOpenTag,n=t.onCloseTag,o=t.onText,s=t.onComment,i=t.onDoctype,a=new ft,u=0,l=e.length,c=0,p=0,h=a;u<l;){var f=e.charAt(u);switch(c){case 0:g(f);break;case 1:d(f);break;case 2:b(f);break;case 3:m(f);break;case 4:v(f);break;case 5:k(f);break;case 6:A(f);break;case 7:y(f);break;case 8:x(f);break;case 9:w(f);break;case 10:C(f);break;case 11:E(f);break;case 12:D(f);break;case 13:_();break;case 14:B(f);break;case 15:q(f);break;case 16:F(f);break;case 17:M(f);break;case 18:S(f);break;case 19:T(f);break;case 20:L(f);break;default:Fe(c)}u++}function g(e){\"<\"===e&&N()}function d(e){\"!\"===e?c=13:\"/\"===e?(c=2,h=new ft(Ne({},h,{isClosing:!0}))):\"<\"===e?N():He.test(e)?(c=3,h=new ft(Ne({},h,{isOpening:!0}))):(c=0,h=a)}function m(e){Ge.test(e)?(h=new ft(Ne({},h,{name:P()})),c=4):\"<\"===e?N():\"/\"===e?(h=new ft(Ne({},h,{name:P()})),c=12):\">\"===e?(h=new ft(Ne({},h,{name:P()})),z()):He.test(e)||Ve.test(e)||\":\"===e||R()}function b(e){\">\"===e?R():He.test(e)?c=3:R()}function v(e){Ge.test(e)||(\"/\"===e?c=12:\">\"===e?z():\"<\"===e?N():\"=\"===e||$e.test(e)||Ze.test(e)?R():c=5)}function k(e){Ge.test(e)?c=6:\"/\"===e?c=12:\"=\"===e?c=7:\">\"===e?z():\"<\"===e?N():$e.test(e)&&R()}function A(e){Ge.test(e)||(\"/\"===e?c=12:\"=\"===e?c=7:\">\"===e?z():\"<\"===e?N():$e.test(e)?R():c=5)}function y(e){Ge.test(e)||('\"'===e?c=8:\"'\"===e?c=9:/[>=`]/.test(e)?R():\"<\"===e?N():c=10)}function x(e){'\"'===e&&(c=11)}function w(e){\"'\"===e&&(c=11)}function C(e){Ge.test(e)?c=4:\">\"===e?z():\"<\"===e&&N()}function E(e){Ge.test(e)?c=4:\"/\"===e?c=12:\">\"===e?z():\"<\"===e?N():(c=4,u--)}function D(e){\">\"===e?(h=new ft(Ne({},h,{isClosing:!0})),z()):c=4}function _(t){\"--\"===e.substr(u,2)?(u+=2,h=new ft(Ne({},h,{type:\"comment\"})),c=14):\"DOCTYPE\"===e.substr(u,7).toUpperCase()?(u+=7,h=new ft(Ne({},h,{type:\"doctype\"})),c=20):R()}function B(e){\"-\"===e?c=15:\">\"===e?R():c=16}function q(e){\"-\"===e?c=18:\">\"===e?R():c=16}function F(e){\"-\"===e&&(c=17)}function M(e){c=\"-\"===e?18:16}function S(e){\">\"===e?z():\"!\"===e?c=19:\"-\"===e||(c=16)}function T(e){\"-\"===e?c=17:\">\"===e?z():c=16}function L(e){\">\"===e?z():\"<\"===e&&N()}function R(){c=0,h=a}function N(){c=1,h=new ft({idx:u})}function z(){var t=e.slice(p,h.idx);t&&o(t,p),\"comment\"===h.type?s(h.idx):\"doctype\"===h.type?i(h.idx):(h.isOpening&&r(h.name,h.idx),h.isClosing&&n(h.name,h.idx)),R(),p=u+1}function P(){var t=h.idx+(h.isClosing?2:1);return e.slice(t,u).toLowerCase()}p<u&&function(){var t=e.slice(p,u);o(t,p),p=u+1}()}var ft=function(e){void 0===e&&(e={}),this.idx=void 0!==e.idx?e.idx:-1,this.type=e.type||\"tag\",this.name=e.name||\"\",this.isOpening=!!e.isOpening,this.isClosing=!!e.isClosing},gt=function(){function e(t){void 0===t&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:\"end\"},this.className=\"\",this.replaceFn=null,this.context=void 0,this.matchers=null,this.tagBuilder=null,this.urls=this.normalizeUrlsCfg(t.urls),this.email=\"boolean\"==typeof t.email?t.email:this.email,this.phone=\"boolean\"==typeof t.phone?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=\"boolean\"==typeof t.newWindow?t.newWindow:this.newWindow,this.stripPrefix=this.normalizeStripPrefixCfg(t.stripPrefix),this.stripTrailingSlash=\"boolean\"==typeof t.stripTrailingSlash?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=\"boolean\"==typeof t.decodePercentEncoding?t.decodePercentEncoding:this.decodePercentEncoding;var r=this.mention;if(!1!==r&&\"twitter\"!==r&&\"instagram\"!==r&&\"soundcloud\"!==r)throw new Error(\"invalid `mention` cfg - see docs\");var n=this.hashtag;if(!1!==n&&\"twitter\"!==n&&\"facebook\"!==n&&\"instagram\"!==n)throw new Error(\"invalid `hashtag` cfg - see docs\");this.truncate=this.normalizeTruncateCfg(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,r){return new e(r).link(t)},e.parse=function(t,r){return new e(r).parse(t)},e.prototype.normalizeUrlsCfg=function(e){return null==e&&(e=!0),\"boolean\"==typeof e?{schemeMatches:e,wwwMatches:e,tldMatches:e}:{schemeMatches:\"boolean\"!=typeof e.schemeMatches||e.schemeMatches,wwwMatches:\"boolean\"!=typeof e.wwwMatches||e.wwwMatches,tldMatches:\"boolean\"!=typeof e.tldMatches||e.tldMatches}},e.prototype.normalizeStripPrefixCfg=function(e){return null==e&&(e=!0),\"boolean\"==typeof e?{scheme:e,www:e}:{scheme:\"boolean\"!=typeof e.scheme||e.scheme,www:\"boolean\"!=typeof e.www||e.www}},e.prototype.normalizeTruncateCfg=function(e){return\"number\"==typeof e?{length:e,location:\"end\"}:function(e,t){for(var r in t)t.hasOwnProperty(r)&&void 0===e[r]&&(e[r]=t[r]);return e}(e||{},{length:Number.POSITIVE_INFINITY,location:\"end\"})},e.prototype.parse=function(e){var t=this,r=[\"a\",\"style\",\"script\"],n=0,o=[];return ht(e,{onOpenTag:function(e){r.indexOf(e)>=0&&n++},onText:function(e,r){if(0===n){var s=function(e,t){if(!t.global)throw new Error(\"`splitRegex` must have the 'g' flag set\");for(var r,n=[],o=0;r=t.exec(e);)n.push(e.substring(o,r.index)),n.push(r[0]),o=r.index+r[0].length;return n.push(e.substring(o)),n}(e,/( | |<|<|>|>|"|"|')/gi),i=r;s.forEach(function(e,r){if(r%2==0){var n=t.parseText(e,i);o.push.apply(o,n)}i+=e.length})}},onCloseTag:function(e){r.indexOf(e)>=0&&(n=Math.max(n-1,0))},onComment:function(e){},onDoctype:function(e){}}),o=this.compactMatches(o),o=this.removeUnwantedMatches(o)},e.prototype.compactMatches=function(e){e.sort(function(e,t){return e.getOffset()-t.getOffset()});for(var t=0;t<e.length-1;t++){var r=e[t],n=r.getOffset(),o=r.getMatchedText().length,s=n+o;if(t+1<e.length){if(e[t+1].getOffset()===n){var i=e[t+1].getMatchedText().length>o?t:t+1;e.splice(i,1);continue}e[t+1].getOffset()<s&&e.splice(t+1,1)}}return e},e.prototype.removeUnwantedMatches=function(e){return this.hashtag||qe(e,function(e){return\"hashtag\"===e.getType()}),this.email||qe(e,function(e){return\"email\"===e.getType()}),this.phone||qe(e,function(e){return\"phone\"===e.getType()}),this.mention||qe(e,function(e){return\"mention\"===e.getType()}),this.urls.schemeMatches||qe(e,function(e){return\"url\"===e.getType()&&\"scheme\"===e.getUrlMatchType()}),this.urls.wwwMatches||qe(e,function(e){return\"url\"===e.getType()&&\"www\"===e.getUrlMatchType()}),this.urls.tldMatches||qe(e,function(e){return\"url\"===e.getType()&&\"tld\"===e.getUrlMatchType()}),e},e.prototype.parseText=function(e,t){void 0===t&&(t=0),t=t||0;for(var r=this.getMatchers(),n=[],o=0,s=r.length;o<s;o++){for(var i=r[o].parseMatches(e),a=0,u=i.length;a<u;a++)i[a].setOffset(t+i[a].getOffset());n.push.apply(n,i)}return n},e.prototype.link=function(e){if(!e)return\"\";for(var t=this.parse(e),r=[],n=0,o=0,s=t.length;o<s;o++){var i=t[o];r.push(e.substring(n,i.getOffset())),r.push(this.createMatchReturnVal(i)),n=i.getOffset()+i.getMatchedText().length}return r.push(e.substring(n)),r.join(\"\")},e.prototype.createMatchReturnVal=function(e){var t;return this.replaceFn&&(t=this.replaceFn.call(this.context,e)),\"string\"==typeof t?t:!1===t?e.getMatchedText():t instanceof Me?t.toAnchorString():e.buildTag().toAnchorString()},e.prototype.getMatchers=function(){if(this.matchers)return this.matchers;var e=this.getTagBuilder(),t=[new lt({tagBuilder:e,serviceName:this.hashtag}),new st({tagBuilder:e}),new ct({tagBuilder:e}),new pt({tagBuilder:e,serviceName:this.mention}),new ut({tagBuilder:e,stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding})];return this.matchers=t},e.prototype.getTagBuilder=function(){var e=this.tagBuilder;return e||(e=this.tagBuilder=new Se({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),e},e.version=\"3.11.0\",e.AnchorTagBuilder=Se,e.HtmlTag=Me,e.matcher={Email:st,Hashtag:lt,Matcher:Ue,Mention:pt,Phone:ct,Url:ut},e.match={Email:ze,Hashtag:Pe,Match:Te,Mention:je,Phone:Ie,Url:Oe},e}(),dt=/www|@|\\:\\/\\//;function mt(e){return/^<\\/a\\s*>/i.test(e)}function bt(){var e=[],t=new gt({stripPrefix:!1,url:!0,email:!0,replaceFn:function(t){switch(t.getType()){case\"url\":e.push({text:t.matchedText,url:t.getUrl()});break;case\"email\":e.push({text:t.matchedText,url:\"mailto:\"+t.getEmail().replace(/^mailto:/i,\"\")})}return!1}});return{links:e,autolinker:t}}function vt(e){var t,r,n,o,s,i,a,u,l,c,p,h,f,g,d=e.tokens,m=null;for(r=0,n=d.length;r<n;r++)if(\"inline\"===d[r].type)for(p=0,t=(o=d[r].children).length-1;t>=0;t--)if(\"link_close\"!==(s=o[t]).type){if(\"htmltag\"===s.type&&(g=s.content,/^<a[>\\s]/i.test(g)&&p>0&&p--,mt(s.content)&&p++),!(p>0)&&\"text\"===s.type&&dt.test(s.content)){if(m||(h=(m=bt()).links,f=m.autolinker),i=s.content,h.length=0,f.link(i),!h.length)continue;for(a=[],c=s.level,u=0;u<h.length;u++)e.inline.validateLink(h[u].url)&&((l=i.indexOf(h[u].text))&&a.push({type:\"text\",content:i.slice(0,l),level:c}),a.push({type:\"link_open\",href:h[u].url,title:\"\",level:c++}),a.push({type:\"text\",content:h[u].text,level:c}),a.push({type:\"link_close\",level:--c}),i=i.slice(l+h[u].text.length));i.length&&a.push({type:\"text\",content:i,level:c}),d[r].children=o=[].concat(o.slice(0,t),a,o.slice(t+1))}}else for(t--;o[t].level!==s.level&&\"link_open\"!==o[t].type;)t--}e.Remarkable=_e,e.linkify=function(e){e.core.ruler.push(\"linkify\",vt)},e.utils=A,Object.defineProperty(e,\"__esModule\",{value:!0})});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/markdown/remarkable.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/markdown/images/new-markdown-button": {
"title": "$:/plugins/tiddlywiki/markdown/images/new-markdown-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-new-markdown-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n <path d=\"M3.23876972,39.5396716 C3.23876972,35.9653274 6.13586353,33.0691646 9.7141757,33.0691646 L98.1283744,33.0691646 C101.706101,33.0691646 104.60378,35.9646626 104.60378,39.5396716 L104.60378,84.8296213 C104.60378,88.4039654 101.706687,91.3001282 98.1283744,91.3001282 L9.7141757,91.3001282 C6.13644944,91.3001282 3.23876972,88.4046302 3.23876972,84.8296213 L3.23876972,39.5396716 L3.23876972,39.5396716 Z M-2.15298617,39.5396716 L-2.15298617,84.8296213 C-2.15298617,91.3833243 3.15957363,96.6918841 9.7141757,96.6918841 L98.1283744,96.6918841 C104.684083,96.6918841 109.995536,91.382138 109.995536,84.8296213 L109.995536,39.5396716 C109.995536,32.9859686 104.682977,27.6774087 98.1283744,27.6774087 L9.7141757,27.6774087 C3.15846686,27.6774087 -2.15298617,32.9871549 -2.15298617,39.5396716 Z M14.0222815,80.5166164 L14.0222815,43.8526764 L24.8057933,43.8526764 L35.589305,57.3320661 L46.3728168,43.8526764 L57.1563286,43.8526764 L57.1563286,80.5166164 L46.3728168,80.5166164 L46.3728168,59.4887685 L35.589305,72.9681582 L24.8057933,59.4887685 L24.8057933,80.5166164 L14.0222815,80.5166164 Z M81.4192301,80.5166164 L65.2439624,62.723822 L76.0274742,62.723822 L76.0274742,43.8526764 L86.810986,43.8526764 L86.810986,62.723822 L97.5944978,62.723822 L81.4192301,80.5166164 Z\"transform=\"translate(53.921275, 62.184646) rotate(-60.000000) translate(-53.921275, -62.184646) \"></path>\n </g>\n</svg>"
},
"$:/plugins/tiddlywiki/markdown/new-markdown-button": {
"title": "$:/plugins/tiddlywiki/markdown/new-markdown-button",
"tags": "$:/tags/PageControls",
"caption": "{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}} {{$:/language/Buttons/NewMarkdown/Caption}}",
"description": "{{$:/language/Buttons/NewMarkdown/Hint}}",
"list-after": "$:/core/ui/Buttons/new-tiddler",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"text/x-markdown\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewMarkdown/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/plugins/tiddlywiki/markdown/readme": {
"title": "$:/plugins/tiddlywiki/markdown/readme",
"text": "This is a TiddlyWiki plugin for parsing Markdown text, using the [[Remarkable|https://github.com/jonschlinkert/remarkable]] library.\n\nIt is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/markdown]]\n"
},
"$:/plugins/tiddlywiki/markdown/usage": {
"title": "$:/plugins/tiddlywiki/markdown/usage",
"text": "! Plugin Configuration\n\n|!Config |!Default |!Description |\n| <code>[[breaks|$:/config/markdown/breaks]]</code>| ``false``|Remarkable library config: Convert '\\n' in paragraphs into ``<br>`` |\n| <code>[[linkify|$:/config/markdown/linkify]]</code>| ``false``|Remarkable library config: Autoconvert URL-like text to links |\n| <code>[[linkNewWindow|$:/config/markdown/linkNewWindow]]</code>| ``true``|For external links, should clicking on them open a new window/tab automatically? |\n| <code>[[quotes|$:/config/markdown/quotes]]</code>| ``“”‘’``|Remarkable library config: Double + single quotes replacement pairs, when ``typographer`` enabled |\n| <code>[[renderWikiText|$:/config/markdown/renderWikiText]]</code>| ``true``|After Markdown is parsed, should any text elements be handed off to the ~WikiText parser for further processing? |\n| <code>[[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]]</code>| ``\\rules only html image macrocallinline syslink transcludeinline wikilink filteredtranscludeblock macrocallblock transcludeblock``|When handing off to the ~WikiText parser, what pragma rules should it follow? |\n| <code>[[typographer|$:/config/markdown/typographer]]</code>| ``false``|Remarkable library config: Enable some language-neutral replacement + quotes beautification |\n\n! Creating ~WikiLinks\n\nCreate wiki links with the usual Markdown link syntax targeting `#` and the target tiddler title:\n\n```\n[link text](#TiddlerTitle)\n```\n\nIf the target tiddler has a space in its name, that name must be URL-escaped to be detected as a URL:\n\n```\n[link text](#Test%20Tiddler)\n```\n\n! Images\n\nMarkdown image syntax can be used to reference images by tiddler title or an external URI. For example:\n\n```\n\n\n\n```\n"
},
"$:/plugins/tiddlywiki/markdown/wrapper.js": {
"title": "$:/plugins/tiddlywiki/markdown/wrapper.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/markdown/wrapper.js\ntype: application/javascript\nmodule-type: parser\n\nWraps up the remarkable parser for use as a Parser in TiddlyWiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar r = require(\"$:/plugins/tiddlywiki/markdown/remarkable.js\");\n\nvar Remarkable = r.Remarkable,\n\tlinkify = r.linkify,\n\tutils = r.utils;\n\n///// Set up configuration options /////\nfunction parseAsBoolean(tiddlerName) {\n\treturn $tw.wiki.getTiddlerText(tiddlerName).toLowerCase() === \"true\";\n}\nvar pluginOpts = {\n\tlinkNewWindow: parseAsBoolean(\"$:/config/markdown/linkNewWindow\"),\n\trenderWikiText: parseAsBoolean(\"$:/config/markdown/renderWikiText\"),\n\trenderWikiTextPragma: $tw.wiki.getTiddlerText(\"$:/config/markdown/renderWikiTextPragma\").trim()\n};\nvar remarkableOpts = {\n\tbreaks: parseAsBoolean(\"$:/config/markdown/breaks\"),\n\tquotes: $tw.wiki.getTiddlerText(\"$:/config/markdown/quotes\"),\n\ttypographer: parseAsBoolean(\"$:/config/markdown/typographer\")\n};\n\nvar md = new Remarkable(remarkableOpts);\n\nif (parseAsBoolean(\"$:/config/markdown/linkify\")) {\n\tmd = md.use(linkify);\n}\n\nfunction findTagWithType(nodes, startPoint, type, level) {\n\tfor (var i = startPoint; i < nodes.length; i++) {\n\t\tif (nodes[i].type === type && nodes[i].level === level) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn false;\n}\n\n/**\n * Remarkable creates nodes that look like:\n * [\n * { type: 'paragraph_open'},\n * { type: 'inline', content: 'Hello World', children:[{type: 'text', content: 'Hello World'}]},\n * { type: 'paragraph_close'}\n * ]\n *\n * But TiddlyWiki wants the Parser (https://tiddlywiki.com/dev/static/Parser.html) to emit nodes like:\n *\n * [\n * { type: 'element', tag: 'p', children: [{type: 'text', text: 'Hello World'}]}\n * ]\n */\nfunction convertNodes(remarkableTree, isStartOfInline) {\n\tlet out = [];\n\n\tfunction wrappedElement(elementTag, currentIndex, currentLevel, closingType, nodes) {\n\t\tvar j = findTagWithType(nodes, currentIndex + 1, closingType, currentLevel);\n\t\tif (j === false) {\n\t\t\tconsole.error(\"Failed to find a \" + closingType + \" node after position \" + currentIndex);\n\t\t\tconsole.log(nodes);\n\t\t\treturn currentIndex + 1;\n\t\t}\n\t\tlet children = convertNodes(nodes.slice(currentIndex + 1, j));\n\n\t\tout.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: elementTag,\n\t\t\tchildren: children\n\t\t});\n\t\treturn j;\n\t}\n\n\tfor (var i = 0; i < remarkableTree.length; i++) {\n\t\tvar currentNode = remarkableTree[i];\n\t\tif (currentNode.type === \"paragraph_open\") {\n\t\t\ti = wrappedElement(\"p\", i, currentNode.level, \"paragraph_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"heading_open\") {\n\t\t\ti = wrappedElement(\"h\" + currentNode.hLevel, i, currentNode.level, \"heading_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"bullet_list_open\") {\n\t\t\ti = wrappedElement(\"ul\", i, currentNode.level, \"bullet_list_close\", remarkableTree);\n\t\t} else if (currentNode.type == 'ordered_list_open') {\n\t\t\ti = wrappedElement('ol', i, currentNode.level,'ordered_list_close', remarkableTree);\n\t\t} else if (currentNode.type === \"list_item_open\") {\n\t\t\ti = wrappedElement(\"li\", i, currentNode.level, \"list_item_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"link_open\") {\n\t\t\tvar j = findTagWithType(remarkableTree, i + 1, \"link_close\", currentNode.level);\n\n\t\t\tif (currentNode.href[0] !== \"#\") {\n\t\t\t\t// External link\n\t\t\t\tvar attributes = {\n\t\t\t\t\thref: { type: \"string\", value: currentNode.href }\n\t\t\t\t};\n\t\t\t\tif (pluginOpts.linkNewWindow) {\n\t\t\t\t\tattributes.target = { type: \"string\", value: \"_blank\" };\n\t\t\t\t}\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"element\",\n\t\t\t\t\ttag: \"a\",\n\t\t\t\t\tattributes: attributes,\n\t\t\t\t\tchildren: convertNodes(remarkableTree.slice(i + 1, j))\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Internal link\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"link\",\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tto: { type: \"string\", value: decodeURI(currentNode.href.substr(1)) }\n\t\t\t\t\t},\n\t\t\t\t\tchildren: convertNodes(remarkableTree.slice(i + 1, j))\n\t\t\t\t});\n\t\t\t}\n\t\t\ti = j;\n\t\t} else if (currentNode.type.substr(currentNode.type.length - 5) === \"_open\") {\n\t\t\tvar tagName = currentNode.type.substr(0, currentNode.type.length - 5);\n\t\t\ti = wrappedElement(tagName, i, currentNode.level, tagName + \"_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"code\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttag: currentNode.block ? \"pre\" : \"code\",\n\t\t\t\tchildren: [{ type: \"text\", text: currentNode.content }]\n\t\t\t});\n\t\t} else if (currentNode.type === \"fence\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"codeblock\",\n\t\t\t\tattributes: {\n\t\t\t\t\tlanguage: { type: \"string\", value: currentNode.params },\n\t\t\t\t\tcode: { type: \"string\", value: currentNode.content }\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (currentNode.type === \"image\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"image\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttooltip: { type: \"string\", value: currentNode.alt },\n\t\t\t\t\tsource: { type: \"string\", value: currentNode.src }\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (currentNode.type === \"softbreak\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttag: \"br\",\n\t\t\t});\n\t\t} else if (currentNode.type == 'hr') {\n\t\t\tout.push({\n\t\t\t\ttype: 'element',\n\t\t\t\ttag: 'hr',\n\t\t\t});\n\t\t} else if (currentNode.type === \"inline\") {\n\t\t\tout = out.concat(convertNodes(currentNode.children, true));\n\t\t} else if (currentNode.type === \"text\") {\n\t\t\tif (!pluginOpts.renderWikiText) {\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: currentNode.content\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// The Markdown compiler thinks this is just text.\n\t\t\t\t// Hand off to the WikiText parser to see if there's more to render\n\n\t\t\t\t// If we're inside a block element (div, p, td, h1), and this is the first child in the tree,\n\t\t\t\t// handle as a block-level parse. Otherwise not.\n\t\t\t\tvar parseAsInline = !(isStartOfInline && i === 0);\n\t\t\t\tvar textToParse = currentNode.content;\n\t\t\t\tif (pluginOpts.renderWikiTextPragma !== \"\") {\n\t\t\t\t\ttextToParse = pluginOpts.renderWikiTextPragma + \"\\n\" + textToParse;\n\t\t\t\t}\n\t\t\t\tvar wikiParser = $tw.wiki.parseText(\"text/vnd.tiddlywiki\", textToParse, {\n\t\t\t\t\tparseAsInline: parseAsInline\n\t\t\t\t});\n\t\t\t\tvar rs = wikiParser.tree;\n\n\t\t\t\t// If we parsed as a block, but the root element the WikiText parser gave is a paragraph,\n\t\t\t\t// we should discard the paragraph, since the way Remarkable nests its nodes, this \"inline\"\n\t\t\t\t// node is always inside something else that's a block-level element\n\t\t\t\tif (!parseAsInline\n\t\t\t\t\t&& rs.length === 1\n\t\t\t\t\t&& rs[0].type === \"element\"\n\t\t\t\t\t&& rs[0].tag === \"p\"\n\t\t\t\t) {\n\t\t\t\t\trs = rs[0].children;\n\t\t\t\t}\n\n\t\t\t\t// If the original text element started with a space, add it back in\n\t\t\t\tif (rs.length > 0\n\t\t\t\t\t&& rs[0].type === \"text\"\n\t\t\t\t\t&& currentNode.content[0] === \" \"\n\t\t\t\t) {\n\t\t\t\t\trs[0].text = \" \" + rs[0].text;\n\t\t\t\t}\n\t\t\t\tout = out.concat(rs);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.error(\"Unknown node type: \" + currentNode.type, currentNode);\n\t\t\tout.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: currentNode.content\n\t\t\t});\n\t\t}\n\t}\n\treturn out;\n}\n\nvar MarkdownParser = function(type, text, options) {\n\tvar tree = md.parse(text, {});\n\t//console.debug(tree);\n\ttree = convertNodes(tree);\n\t//console.debug(tree);\n\n\tthis.tree = tree;\n};\n\nexports[\"text/x-markdown\"] = MarkdownParser;\n\n})();\n",
"type": "application/javascript",
"module-type": "parser"
}
}
}
Standard ML course - Recitation 1
$:/plugins/sq/Stories/settings
$:/core/ui/ControlPanel/Advanced
$:/core/ui/TiddlerInfo/References
$:/core/ui/ControlPanel/Palette
$:/core/ui/ControlPanel/Settings/TiddlyWiki
$:/core/ui/ControlPanel/Plugins/Installed/Plugins
$:/core/ui/ControlPanel/EditorTypes
$:/core/ui/ControlPanel/Appearance
Standard ML course - Recitation 4
$:/core/ui/DefaultSearchResultList
$:/core/ui/ControlPanel/Appearance
Standard ML course - Recitation 1
$:/core/ui/ControlPanel/Saving/GitHub
Source :: Counsels from the Holy Mountain
������ A mind distracted by a thousand worldly cares cannot ascertain the truth.
What is the best way to take notes?
$:/core/ui/MoreSideBar/All
$:/core/ui/SideBar/Recent
$:/core/ui/ControlPanel/Toolbars/ViewToolbar
[tag[PRIVATE]!prefix[$]][tag[Journal]!prefix[$]]
{
"tiddlers": {
"$:/info/browser": {
"title": "$:/info/browser",
"text": "yes"
},
"$:/info/node": {
"title": "$:/info/node",
"text": "no"
},
"$:/info/url/full": {
"title": "$:/info/url/full",
"text": "https://wiki.sophronios.com/"
},
"$:/info/url/host": {
"title": "$:/info/url/host",
"text": "wiki.sophronios.com"
},
"$:/info/url/hostname": {
"title": "$:/info/url/hostname",
"text": "wiki.sophronios.com"
},
"$:/info/url/protocol": {
"title": "$:/info/url/protocol",
"text": "https:"
},
"$:/info/url/port": {
"title": "$:/info/url/port",
"text": ""
},
"$:/info/url/pathname": {
"title": "$:/info/url/pathname",
"text": "/"
},
"$:/info/url/search": {
"title": "$:/info/url/search",
"text": ""
},
"$:/info/url/origin": {
"title": "$:/info/url/origin",
"text": "https://wiki.sophronios.com"
},
"$:/info/browser/screen/width": {
"title": "$:/info/browser/screen/width",
"text": "1280"
},
"$:/info/browser/screen/height": {
"title": "$:/info/browser/screen/height",
"text": "800"
},
"$:/info/browser/language": {
"title": "$:/info/browser/language",
"text": "en-US"
}
}
}
087e1372729e87fb7a6617379fd92e31fd8b285a563b25ae7f2380204c238062
$:/themes/tiddlywiki/snowwhite
{
"tiddlers": {
"$:/themes/tiddlywiki/snowwhite/base": {
"title": "$:/themes/tiddlywiki/snowwhite/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/vanilla/themetweaks": {
"title": "$:/themes/tiddlywiki/vanilla/themetweaks",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
},
"$:/themes/tiddlywiki/vanilla/base": {
"title": "$:/themes/tiddlywiki/vanilla/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n background-color: transparent;\n}\n\n\"\"\">>\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n left: -50px;\n top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n right: -80px;\n bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n vertical-align: middle;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n \tcursor: pointer;\n\tcolor: <<colour foreground>>;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tborder-radius: 2px;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-primary-btn {\n \tbackground: <<colour primary>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: text-bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.2em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n\tmargin-right: .1em;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n height: 1.2em;\n width: 1.2em;\n margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tbackground-color: <<colour tiddler-editor-background>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tcolor: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-type-selector .tc-edit-typeeditor {\n\twidth: 20%;\n}\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\n}\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down .tc-drop-down-info {\n\tpadding-left: 14px;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n\toverflow: auto;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n display: block;\n width: 100%;\n text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n flex: 1 0;\n background: <<colour tiddler-editor-background>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n flex: 3 1;\n border-left: 0.5em solid <<colour muted-foreground>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n line-height: 0;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n font-size: 0.8em;\n margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n padding: 2px 7px;\n font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n \tlist-style-type: none;\n \tpadding-left: 0;\n \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n \tpadding-left: 1em; \n}\n\n.tc-tree button { \n \tcolor: #acacac;\n}\n\n.tc-tree svg {\n \tfill: #acacac;\n}\n\n.tc-tree span svg {\n \twidth: 1em;\n \theight: 1em;\n \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n \tcolor: lightgray;\n}\n\nselect {\n color: <<colour select-tag-foreground>>;\n background: <<colour select-tag-background>>;\n}\n\n/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\n}"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
"text": "15px"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
"text": "22px"
},
"$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
"text": "14px"
},
"$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
"text": "20px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storytop": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyright": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
"text": "686px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
"text": "960px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
"text": "350px"
},
"$:/themes/tiddlywiki/vanilla/options/stickytitles": {
"title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
"text": "no"
},
"$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
"title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
"text": "fixed-fluid"
},
"$:/themes/tiddlywiki/vanilla/options/codewrapping": {
"title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
"text": "pre-wrap"
},
"$:/themes/tiddlywiki/vanilla/reset": {
"title": "$:/themes/tiddlywiki/vanilla/reset",
"type": "text/plain",
"text": "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
"text": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\""
},
"$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
"text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
"text": "fixed"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
"text": "auto"
},
"$:/themes/tiddlywiki/vanilla/sticky": {
"title": "$:/themes/tiddlywiki/vanilla/sticky",
"text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"
}
}
}
!This is an encrypted Tiddler
!This is an encrypted Tiddler
!This is an encrypted Tiddler
!This is an encrypted Tiddler
!This is an encrypted Tiddler
[[Articles]] | [[COVID-19]] | [[Globalist]]
[[https://www.reuters.com/article/us-health-coronavirus-tanzania-tests/africa-disease-centre-rejects-tanzanias-allegation-that-its-coronavirus-tests-faulty-idUSKBN22J1FO]]
Africa disease centre rejects Tanzania's allegation that its coronavirus tests faulty
Giulia Paravicini
4-5 minutes
ADDIS ABABA (Reuters) - The head of the Africa Centres for Disease Control and Prevention on Thursday rejected an assertion by Tanzania’s president that coronavirus tests it supplied are faulty.
FILE PHOTO: John Nkengasong, Africa's Director of the Centers for Disease Control (CDC), speaks during an interview with Reuters at the African Union (AU) Headquarters in Addis Ababa, Ethiopia March 11, 2020. REUTERS/Tiksa Negeri/File Photo
Tanzania’s government spokesman said a team was conducting investigations on the laboratory that conducted the tests, and the outcome will be made public once complete. The World Health Organization expressed confidence in the tests.
On Sunday, Tanzanian President John Magufuli said the imported test kits were faulty after they had returned positive results on a goat and a pawpaw - among several non-human samples submitted for testing, with technicians left deliberately unaware of their origins.
The next day, the head of the national health laboratory in charge of testing was suspended. The president did not say why the authorities had been initially suspicious of the tests.
“The tests that Tanzania is using, we know they are working very well,” John Nkengasong told journalists.
The Africa CDC, along with the Jack Ma Foundation, a charity founded by the Chinese billionaire, supplied the tests, Nkengasong said.
Ma, founder of Alibaba Group, has donated thousands of tests kits, masks and protective gear to African nations and the equipment is being used across the continent. No other countries have made public complaints about the tests.
“We are very instrumental in training, providing training to nearly all countries and providing them with test kits. We’ve also in the last couple of weeks and months distributed tests from the Jack Ma Foundation that have been validated and proven to be very, very reliable,” Nkengasong said.
Hassan Abbas, Tanzania’s chief government spokesman, said the government had formed a team of experts to examine the lab that conducted the tests, and it would give the outcome of the results once completed.
“What the president said was based on initial tests run by using animals ... to test the veracity of the test results,” Abbas said.
“Our worry was based on empirical findings. Once the team finalises its work we will know the gravity of the lapses in the machines.”
Tanzania, where places of worship remain open, has at least 480 confirmed cases and 18 deaths, the fourth highest case load in Eastern Africa. But the data is from Sunday, the most recent day the government released figures.
Almost all other African nations release daily reports on the latest tallies on infections, fatalities and recoveries. Tanzania’s lag has prompted criticism from the country’s opposition that the government is being secretive.
Asked about Tanzania’s questioning of the tests, WHO Africa head Matshidiso Moeti said on a teleconference with the media: “We are convinced that the tests that have been provided ... both through procurement through WHO and those that came through Jack Ma donations, were not contaminated with the virus.”
Africa’s testing capacity has expanded sharply but it has still carried out only around 685 tests per million people, according to a Reuters tally of figures from the Africa CDC. By comparison, Europe has carried out nearly 17 million tests, or just under 23,000 per million.
Reporting by Giulia Paravicini; Additional reporting by Ayenat Mersie and Nairobi newsroom; Writing by Katharine Houreld and Ayenat Mersie; Editing by Gareth Jones and Alison Williams
[[Bookmarks]] [[https://aplcart.info/#]]
[[Poetry]] | [[Haiku]]
Apreciation
Never taken for granted
Makes happier souls
!This is an encrypted Tiddler
!This is an encrypted Tiddler
[[Thoughts]] | [[Health]] | [[Bioenergetic]]
[[Glibert Ling]]
[[#]] [[Prayer]]
!!Trisagion Prayers
In the Name of the Father, and of the Son, and of the Holy Spirit. Amen.
Glory to Thee, our God, glory to Thee.
Heavenly King, Comforter, Spirit of Truth, Who art everywhere present and fillest all things, Treasury of good gifts and Giver of Life, come and abide in us, and cleanse us of all impurity, and save our souls, O Good One.
Holy God, Holy Mighty, Holy Immortal One, have mercy on us. (thrice)
Glory to the Father, and to the Son, and to the Holy Spirit, now and ever, and to the ages of ages. Amen.
Most Holy Trinity, have mercy on us. O Lord, wash away our sins, O Master, pardon our transgressions. O Holy One, visit and heal our infirmities, for Thy Name's sake.
Lord, have mercy. (thrice)
Glory to the Father, and to the Son and to the Holy Spirit, now and ever, and to the ages of ages. Amen.
Our Father, Who art in heaven, hallowed be Thy Name. Thy Kingdom come. Thy will be done, on earth as it is in heaven. Give us this day our daily bread. And forgive us our debts as we forgive our debtors. And lead us not into temptation, but deliver us from the evil one. For Thine is the kingdom, the power and the glory, of the Father, and of the Son, and of the Holy Spirit, now and ever, and to the ages of ages. Amen.
Lord, have mercy. (12 times)
Glory to the Father, and to the Son and to the Holy Spirit, now and ever, and to the ages of ages. Amen.
O come, let us worship God our King.
O come, let us worship and fall down before Christ our King and God.
O come, let us worship and fall down before Him, Christ the King and our God.
!! Psalm 50
Have mercy on me, O God, according to Thy great mercy; and according to the multitude of Thy compassions, blot out my transgression. Wash me thoroughly from my iniquity, and cleanse me from my sin. For I realize my iniquity, and my sin is before me continually. Against Thee only have I sinned I and done evil in Thy sight, that Thou mayest be justified in Thy words and win when Thou art judged.For, behold, I was conceived in iniquities, and in sins did my mother desire me. For, lo, Thou lovest truth; the unknown and secret things of Thy wisdom Thou hast made known to me. Thou shalt sprinkle me with hyssop, and I shall be cleansed; Thou shalt wash me, and I shall become whiter than snow.Thou shalt make me hear joy and gladness; the bones that have been humbled will rejoice. Turn Thy face from my sins, and blot out all my iniquities.Create in me a clean heart, O God; and renew a right spirit within me. Cast me not away from Thy face, I and take not Thy Holy Spirit from me. Restore to me the joy of Thy salvation, and confirm me with a princely spirit. I shall teach Thy ways to the lawless and the godless will return to Thee. Deliver me from blood, O God - O God of my salvation - and my tongue shall extol Thy justice. O Lord, Thou wilt open my lips, and my mouth shall declare Thy praise. For if Thou hadst desired sacrifice, I would have given it; but burnt offerings do not please Thee. The sacrifice for God is a contrite spirit; a contrite and humble heart God will not despise. Gladden Sion, O Lord, with Thy good will; and let the walls of Jerusalem be built. Then Thou wilt be pleased with the sacrifice of righteousness, the oblation and burnt offerings; then they will offer calves on Thine altar.
!! Jesus Prayer
Lord Jesus Christ, have mercy on me. (300 times)
!! Theotokos Prayer
Most Holy Theotokos, Save us. (100 times)
!! Prostrations
Lord Jesus Christ, have mercy on me. (100 times)
---
''Repeat Jesus Prayer and Theotokos Prayer in sequence per spiritual father's blessing. For example, a novice might repeat it three times.''
''The Jesus Prayer and Theotokos Prayer are said while making the sign of the cross without bows unless otherwise indicated.''
''Any change in the composition of this cell rule, as well as deduction from it or addition to it, is left to the will and blessing of the Elder or Spiritual Father of the individual.''
<$list filter="[[Blogs]backlinks[]]">
<ol>
<li><$link><$view field=title/></$link></li>
<ul><li><$transclude mode=block/><br></li></ul>
</ol></$list>
* [[How to Set up a Custom Domain for Your Homepage in Notion|https://medium.com/@TarasPyoneer/how-to-set-up-a-custom-domain-for-your-homepage-in-notion-53fa3d54f848]]
* https://github.com/Dunedan
*
[[Claim]]
[[Source :: On the Eight Vices]] ch1
[[Source :: On the Eight Vices]]
Chapter 1 pg10
[[Source :: On the Eight Vices]]
[[Services]] | [[Ebooks]]
[ext[eBooks/Canon-de-la-Resurrection.pdf]]
[[CRM]]
[[Address]]: po 3174 Milwaukee W 53201
[[Deep Reading Process]]
* An assertion made by a [[Source]] (very rarely can be sourceless, if it’s something I am very sure of but can’t remember where I learned it).
* Can be assembled into [[Synthesis]].
* If you’re referring to a claim a lot you it should be marked with a source, but most claims aren’t used anywhere and I want low friction to creating them, so you may just have to look it up in the references.
* Should have a kindle loc, page number, or other identifier in the title.
** On the page would be more aesthetic, but this is faster to create and speed is the higher priority
** If you’re using page numbers for a PDF, be sure to note on the [[Source]] page whether it’s the PDF page number or internal page number (which starts after the table of contents and perhaps the preface).
! All ➡s
<$list filter="[prefix[➡ ]]"> <$link><$view field="title" /><br><$view field="text" /></$link><br><br></$list>
[[Lambda Calculus]] | [[Coding]]
[[Bookmarks]] http://www.angelfire.com/tx4/cus/combinator/birds.html
|>|>|>|>| Combinator Birds |h
| Function Abstraction | Symbol |Bird |Combinator | SK Combinator |
|labc.a(bc) |B |Bluebird |S(KS)K |((S(KS))K) |
|labcd.a(bcd) |B1 |Blackbird |BBB |((S(K((S(KS))K)))((S(KS))K)) |
|labcde.a(bcde) |B2 |Bunting |B(BBB)B |((S(K((S(K((S(KS))K)))((S(KS))K)))) ((S(KS))K)) |
|labcd.a(b(cd)) |B3 |Becard |B(BB)B |((S(K((S(K((S(KS))K)))((S(KS))K))))((S(KS))K))|
|labc.acb |C |Cardinal |S(BBS)(KK) |((S((S(K((S(KS))K)))S))(KK)) |
labcd.ab(cd) D Dove BB (S(K((S(KS))K)))
labcde.abc(de) D1 Dickcissel B(BB) (S(K(S(K((S(KS))K)))))
labcde.a(bc)(de) D2 Dovekies BB(BB) ((S(K((S(KS))K)))(S(K((S(KS))K))))
labcde.ab(cde) E Eagle B(BBB) (S(K((S(K((S(KS))K)))((S(KS))K))))
labcdefg.a(bcd)(efg) Ê Bald Eagle B(BBB)(B(BBB)) ((S(K((S(K((S(KS))K)))((S(KS))K))))(S(K((S(K((S(KS))K)))((S(KS))K)))))
labc.cba F Finch ETTET ((S(K((S((SK)K))(K((S(K(S((SK)K))))K)))))((S(K((S(K((S(KS))K)))((S(KS))K))))((S(K(S((SK)K))))K)))
labcd.ad(bc) G Goldfinch BBC ((S(K((S(KS))K)))((S((S(K((S(KS))K)))S))(KK)))
labc.abcb H Hummingbird BW(BC) ((S(K((S(K(S((S(K((S((SK)K))((SK)K))))((S(K((S(KS))K)))((S(K(S((SK)K))))K))))))K)))(S(K((S((S(K((S(KS))K)))S))(KK)))))
la.a I Identity Bird (aka Idiot) SKK ((SK)K)
labcd.ab(adc) J Jay B(BC)(W(BC(B(BBB)))) ((S(K(S(K((S((S(K((S(KS))K)))S))(KK))))))((S((S(K((S((SK)K))((SK)K))))((S(K((S(KS))K)))((S(K(S((SK)K))))K))))(K((S(K((S((S(K((S(KS))K)))S))(KK))))(S(K((S(K((S(KS))K)))((S(KS))K))))))))
lab.a K Kestrel (True) K K
lab.a(bb) L Lark CBM ((S((S(KS))K))(K((S((SK)K))((SK)K))))
la.aa M Mockingbird SII ((S((SK)K))((SK)K))
lab.ab(ab) M2 Double Mockingbird BM (S(K((S((SK)K))((SK)K))))
lab.b(ab) O Owl SI (S((SK)K))
labc.b(ac) Q Queer Bird CB ((S(K(S((S(KS))K))))K)
labc.a(cb) Q1 Quixotic Bird BCB ((S(K((S((S(K((S(KS))K)))S))(KK))))((S(KS))K))
labc.b(ca) Q2 Quizzical Bird C(BCB) ((S(K(S((S(K((S((S(K((S(KS))K)))S))(KK))))((S(KS))K)))))K)
labc.c(ab) Q3 Quirky Bird BT (S(K((S(K(S((SK)K))))K)))
labc.c(ba) Q4 Quacky Bird F*B ((S(K((S((S(K((S(KS))K)))S))(KK))))((S(K(S((S(K((S((S(K((S(KS))K)))S))(KK))))((S(KS))K)))))K))
labc.bca R Robin BBT ((S(K((S(KS))K)))((S(K(S((SK)K))))K))
labc.ac(bc) S Starling S S
lab.ba T Thrush CI ((S(K(S((SK)K))))K)
lab.b(aab) U Turing LO ((S(K(S((SK)K))))((S((SK)K))((SK)K)))
labc.cab V Vireo (aka Pairing) BCT ((S(K((S((S(K((S(KS))K)))S))(KK))))((S(K(S((SK)K))))K))
lab.abb W Warbler C(BMR) ((S(K(S((S(K((S((SK)K))((SK)K))))((S(K((S(KS))K)))((S(K(S((SK)K))))K))))))K)
lab.baa W1 Converse Warbler CW ((S(K(S((S(K(S((S(K((S((SK)K))((SK)K))))((S(K((S(KS))K)))((S(K(S((SK)K))))K))))))K))))K)
la.a(la) Y Why Bird (aka Sage Bird) SLL (((SS)K)((S(K((SS)(S((SS)K)))))K)
lab.ab I* Identity Bird Once Removed S(SK) (S(SK))
labc.abcc W* Warbler Once Removed BW (S(K((S(K(S((S(K((S((SK)K))((SK)K))))((S(K((S(KS))K)))((S(K(S((SK)K))))K))))))K)))
labcd.abdc C* Cardinal Once Removed BC (S(K((S((S(K((S(KS))K)))S))(KK))))
labcd.acdb R* Robin Once Removed C*C* ((S(K((S((S(K((S(KS))K)))S))(KK))))(S(K((S((S(K((S(KS))K)))S))(KK)))))
labcd.adcb F* Finch Once Removed BC*R* ((S(K(S(K((S((S(K((S(KS))K)))S))(KK))))))((S(K((S((S(K((S(KS))K)))S))(KK))))(S(K((S((S(K((S(KS))K)))S))(KK))))))
labcd.acbd V* Vireo Once Removed C*F* ((S(K((S((S(K((S(KS))K)))S))(KK))))((S(K(S(K((S((S(K((S(KS))K)))S))(KK))))))((S(K((S((S(K((S(KS))K)))S))(KK))))(S(K((S((S(K((S(KS))K)))S))(KK)))))))
labc.abc I** Identity Bird Twice Removed
labcd.abcdd W** Warbler Twice Removed B(BW) (S(K(S(K((S(K(S((S(K((S((SK)K))((SK)K))))((S(K((S(KS))K)))((S(K(S((SK)K))))K))))))K)))))
labcde.abced C** Cardinal Twice Removed BC* (S(K(S(K((S((S(K((S(KS))K)))S))(KK))))))
labcde.abdec R** Robin Twice Removed BR* (S(K((S(K((S((S(K((S(KS))K)))S))(KK))))(S(K((S((S(K((S(KS))K)))S))(KK)))))))
labcde.abedc F** Finch Twice Removed BF* (S(K((S(K(S(K((S((S(K((S(KS))K)))S))(KK))))))((S(K((S((S(K((S(KS))K)))S))(KK))))(S(K((S((S(K((S(KS))K)))S))(KK))))))))
labcde.abecd V** Vireo Twice Removed BV* (S(K((S(K((S((S(K((S(KS))K)))S))(KK))))((S(K(S(K((S((S(K((S(KS))K)))S))(KK))))))((S(K((S((S(K((S(KS))K)))S))(KK))))(S(K((S((S(K((S(KS))K)))S))(KK)))))))))
lab.b KI Kite (False) KI (K((SK)K))
l W Omega MM (((S((SK)K))((SK)K))((S((SK)K))((SK)K)))
lab.bb KM Konstant Mocker KM (K((S((SK)K))((SK)K)))
lab.aa C(KM) Crossed Konstant Mocker C(KM) ((S(K(S(K((S((SK)K))((SK)K))))))K)
l Q Theta YO ((((SS)K)((S(K((SS)(S((SS)K)))))K)(S((SK)K)))
Notes on the Combinator Birds:
The combinatory birds were borrowed from To Mock A MockingBird, by Raymond Smullyan.
Some additional information about combinator birds can be found in To Dissect a Mockingbird by David C Keenan.
Some of the SK Combinatory terms were first reduced using the Combinatory Logic Tutorial by Chris Barker.
[[Zettelkasten]] | [[Articles]]
[[Niklas Luhmann]]
[[https://luhmann.surge.sh/communicating-with-slip-boxes]]
<$list filter="[!has[draft.of]tag[task]tag[done]sort[created]]">
<$checkbox tag="done">
~~<$link to={{!!title}}>
<$view field="created" format="date" template="DDth mmm hh:mm"/>
- <$view field="title"/>
</$link>~~
</$checkbox>
<br>
</$list>
[[CRM]] | [[Caligraphy]]
Online Courses in [[Spencerian]] Script
[[https://www.conniechen.academy/]] [[Bookmarks]]
[[Coding]]
https://coolors.co/e2d5bf-9e391f-d2ad5d-849261-4b8b95-546085-33323f
[[Coding]]
<<tabs "[[Cornell CS312]backlinks[]sort[]]" "[[Standard ML course - Recitation 1]]" "$:/state/tab" "tc-vertical">>
[[Services]] [[Outlines]]
*Priest: “Blessed is Our God…”
** Full Trisagion
** Six Psalms (Royal Beginning is omitted)
*Great Litany
*Choir: “The Lord is God…”
**Apolytikion and Theotokion
*Little Litany
**Choir: Sessional Hymns
*Psalm 50
*The Matins Canon
**After Ode 3
*** Irmos of the final canon is chanted
*** Little Litany
*** Sessional Hymns
**After Ode 6
*** Irmos of the final canon is chanted
*** Little Litany
*** Kontakion, Ikos are read
*** Synaxarion
**After Ode 8
*** Irmos of the final canon is chanted
*** Priest: “Thotokos and Mother…”
*** Choir: Magnificat
**After Ode 9
*** Irmos of the final canon is chanted
*** “It is Truly Meet…” is sung (omitted during afterfeasts)
*** Little Litany
*Choir: Exaposteilarion read (GBN omitted)
*The Praises and the Lesser Doxology are read
*Litany of Supplication
*Choir: Aposticha
**Priest: “It is a good thing…”
* Trisagion
* Apoytikion and Theotokion
*Augmented Litany
*Disimissal
** Priest: “Glory to thee, O Christ…”
[[#]] [[Services]] [[Outlines]]
*9th Hour
**Priest: “Blessed is Our God…"
**“O Come Let Us Worship…”
*Psalm 103
*Great Litany
*Lord I Have Cried…
*Gladsome Light (no entrance)
*Priest: “The Evening Prokeimenon”
** Choir: Prokeimenon
** Choir: “Vouchsafe O Lord…”
*Litany of Supplication
*Choir: Aposticha
*Choir: Prayer of St. Symeon
** Choir: Trisagion
*Apolytikion and Theotokion
*Augmented Litany
*The Dismissal
**Priest: “Wisdom”
[[CRM]]
Tools for [[TiddlyWiki]]
[[http://braintest.tiddlyspot.com/]]
| Page Prefix | Link | [[Espanso]] Key sequence |h
| S :: | [[Source]] | ;s |
| C :: | [[Claim]] | ;c |
| Crux :: | [[Crux]] | ;cru |
| Cred :: | [[Credence]] | ;cre |
| Z :: | [[Synthesis]] | ;sy |
| ? :: | [[Question]] | ;que |
| Q :: | [[Quote]] | ;quo |
[[Thoughts]]
We seem to be able to watch over our reasoning ability.
@@width:100%;
@@margin: auto;
@@text-align:center;
[img width=150px [Theotokos|icons/Theotokos-oncloud-transparent.png]]
!! Aν πεθάνεις, πριν πεθάνεις, δεν θα πεθάνεις, όταν πεθάνεις.<br> If you die before you die, then you won't die when you die.
@@
<br>
<br>
@@width:95%;
@@margin:auto;
@@padding: 7px;
@@border: 1px solid #33323f;
@@background-color:#546085;
@@color:#d2ad5d;
@@text-align:center;
''This Enchiridion is a collection of notes, ideas and resources. It will never be polished or finished.''
@@
[[Deep Reading Process]]
https://acesounderglass.com/2019/10/24/epistemic-spot-check-the-fate-of-rome-round-2/
In [[LaTeX]] there are 10 special characters:
# $ % & \ ^ _ { } ~
Most of them can be escaped prepending a simple backslash, but \, ^ and ~ need special treatment:
for backslash (\) use \textbackslash{}
for caret (^) use \^{} or \textasciicircum{}
and for tilde (~) use \~{} or \textasciitilde{}
''In short:''
| To get | You must use|h
| # | \# |
| $ | \$ |
| % | \% |
| & | \& |
| \ | \textbackslash{} |
| ^ | \textasciicircum{} |
| _ | \_ |
| { | \{ |
| } | \} |
| ~ | \textasciitilde{} |
| > | \greaterthan{} |
| < | \lessthan{} |
| ¿ | \textquestiondown{} |
[[Poetry]] | [[Haiku]]
Spring is upon us
But winter comes for us all
Eternal Pascha
[[#]] [[Spiritual Warfare]] [[Philokalia]] [[Quotes]]
Of the demons opposing us in the practice of the ascetic life, there are three groups who fight in the front line: those entrusted with the appetites of gluttony, those who suggest avaricious thoughts, and those who incite us to seek the esteem of men. All the other demons follow behind and in their turn attack those already wounded by the first three groups. For one does not fall into the power of the demon of unchastity, unless one has first fallen because of gluttony: nor is one's anger aroused unless one is fighting for food or material possessions or the esteem of men. And one does not escape the demon of dejection, unless one no longer experiences suffering when deprived of these things. Nor will one escape pride, the first offspring of the devil, unless one has banished avarice, the root of all evil, since poverty makes a man humble, according to Solomon (cf. Prov. 10:4. LXX). In short, no one can fall into the power of any demon, unless he has been wounded by those of the front line. That is why the devil suggested these three thoughts to the Savior: first he exhorted Him to turn stones into bread; then he promised Him the whole world, if Christ would fall down and worship him: and thirdly he said that, if our Lord would listen to him. He would be glorified and suffer nothing in falling from the pinnacle of the temple. But our Lord, having shown Himself superior to these temptations, commanded the devil to 'get behind Him'. In this way He teaches us that it is not possible to drive away the devil, unless we scornfully reject these three thoughts (cf Matt. 4:1-10).
All thoughts inspired by the demons produce within us conceptions of sensory objects; and in this way the intellect, with such conceptions imprinted on it, bears the forms of these objects within itself. So, by recognizing the object presented to it, the intellect knows which demon is approaching. For example, if the face of a person who has done me harm or insulted me appears in my mind, I recognize the demon of rancor approaching. If there is a suggestion of material things or of esteem, again it will be clear which demon is troubling me. In the same way with other thoughts, we can infer from the object appearing in the mind which demon is close at hand, suggesting that object to us. I do not say that all thoughts of such things come from the demons; for when the intellect is activated by man it is its nature to bring forth the images of past events. But all thoughts producing anger or desire in a way that is contrary to nature are caused by demons. For through demonic agitation the intellect mentally commits adultery and becomes incensed. Thus it cannot receive the vision of God, who sets us in order: for the divine splendour only appears to the intellect during prayer, when the intellect is free from conceptions of sensory objects.
Man cannot drive away impassioned thoughts unless he watches over his desire and incensive power. He destroys desire through fasting, vigils and sleeping on the ground, and he tames his incensive power through long-suffering, forbearance, forgiveness and acts of compassion. For with these two passions are connected almost all the demonic thoughts which lead the intellect to disaster and perdition. It is impossible to overcome these passions unless we can rise above attachment to food and possessions, to self-esteem and even to our very body, because it is through the body that the demons often attempt to attack us. It is essential, then, to imitate people who are in danger at sea and throw things overboard because of the violence of the winds and the threatening waves. But here we must be very careful in case we cast things overboard just to be seen doing so by men. For then we shall get the reward we want; but we shall suffer another shipwreck, worse than the first, blown off our course by the contrary wind of the demon of self-esteem. That is why our Lord, instructing the intellect, our helmsman, says in the Gospels: 'Take heed that you do not give alms in front of others, to be seen by them; for unless you take heed, you will have no reward from your Father in heaven.' Again, He says: 'When you pray, you must not be as the hypocrites are: for they love to pray standing in synagogues and at street-comers, so as to be seen by men. Truly I say to you, they get the reward they want. . . . Moreover when you fast, do not put on a gloomy face, like the hypocrites: for they disfigure their faces, so that they may be seen by men to be fasting. Truly I say to you, they get the reward they want' (cf. Matt. 6: 1-18). Observe how the Physician of souls here corrects our incensive power through acts of compassion, purifies the intellect through prayer, and through fasting withers desire. By means of these virtues the new Adam is formed, made again according to the image of his Creator - an Adam in whom, thanks to dispassion, there is 'neither male nor female' and, thanks to singleness of faith, there is 'neither Greek nor Jew, circumcision nor uncircumcision, barbarian, Scythian, bond nor free; but Christ is all, and in all' (Gal. 3:28; Col. 3: 10:11).
[[Jordanville Lazarus Moore Prayer Book]]
In the Name of the Father, the Son and the Holy Spirit. Amen.
Lord Jesus Christ, Son of God, by the prayers of Thy most pure Mother and of our holy and God bearing fathers and of all the Saints, have mercy on us. Amen.
Glory to Thee our God, glory to Thee.
Heavenly King, Comforter, Spirit of Truth, Who art everywhere present
and fillest all things, Treasury of good gifts and Giver of Life, come
and abide in us, and cleanse us of all impurity, and save our souls, O
Good One.
Holy God, Holy Mighty, Holy Immortal One, have mercy on us. (Thrice)
Glory to the Father, and to the Son, and to the Holy Spirit, now and
ever, and to the -ages of ages. Amen.
Most Holy Trinity, have mercy on us. O Lord, wash away our sins. O Master,
pardon our transgressions. O Holy One, visit and heal our infirmities,
for Thy Name's sake.
Lord, have mercy. (3 times)
Glory to the Father, and to the Son, and to the Holy Spirit, now and
ever, and to the ages of ages. Amen.
Our Father, Who art in heaven, hallowed be Thy Name. Thy kingdom come.
Thy will be done, on earth as it is in heaven. Give us this day our daily
bread. And forgive us our debts as we forgive our debtors. And lead us
not into temptation; but deliver us from the evil one.
For Thine is the kingdom, the power and the glory, of the Father,
and of the Son, and of the Holy Spirit, now and ever, and to the ages of
ages. Amen.
O come let us worship God our King.
O come let us worship and fall down before Christ, our King and God.
O come let us worship and fall down before Christ Himself, our King
and God.
**Troparia.**
Have mercy on us, O Lord, have mercy on us. For at a loss for any plea
we sinners offer to Thee, our Master, this supplication: have mercy on
us.
Glory to the Father, and to the Son, and to the Holy Spirit.
Lord, have mercy on us, for our trust is in Thee. Be not very angry
with us, remember not our sins; but even now regard us, in Thy tender compassion,
and deliver us from our enemies. For Thou art our God, and we are Thy people;
we are all the work of Thy Hands, and we call on Thy Name.
Now and ever, and to the ages of ages. Amen.
Open the door of thy loving-kindness, O blessed Mother of God, that
we who put our hope in thee may not perish. Through thee, may we be delivered
from adversities, for thou art the salvation of Christian people.
Lord, have mercy. (12 times)
Then the following prayers in order, with attention and compunction.
**Prayer of St. Macarius
the Great**
**to God the Father**
O Eternal God and King of all creation, Who hast granted me to arrive
at this hour, forgive me the sins that I have committed today in thought,
word and deed, and cleanse, O Lord, my humble soul from all defilement
of flesh and spirit. And grant me, O Lord, to pass the sleep of this night
in peace, that when I rise from my bed I may please Thy most holy Name
all the days of my life and conquer my flesh and the fleshless foes that
war with me. And deliver me, O Lord, from vain and frivolous thoughts,
and from evil desires which defile me. For Thine is the kingdom, the power
and the glory of the Father, Son and Holy Spirit, now and ever, and to
the ages of ages. Amen.
**Prayer of St. Antioch**
**to our Lord Jesus Christ**
O All-Ruler, Word of the Father, Jesus Christ, Thou Who art perfect,
never in Thy great mercy leave me, but ever abide in me, Thy servant. O
Jesus, Good Shepherd of Thy sheep, deliver me not to the revolt of the
serpent and leave me not to the will of satan, for the seed of corruption
is in me. Lord, adorable God, Holy King, Jesus Christ, guard me asleep
by the unwaning light, Thy Holy Spirit, by Whom Thou didst sanctify Thy
disciples. O Lord, grant me, Thy unworthy servant, Thy salvation on my bed. Enlighten my mind with the light of understanding of Thy Holy
Gospel. Enlighten my soul with the love of Thy Cross. Enlighten my heart
with the purity of Thy Word. Enlighten my body with Thy passionless Passion.
Keep my thoughts in Thy humility. And rouse me in good time to glorify
Thee, for Thou art supremely glorified, with Thy eternal Father, and Thy
most Holy Spirit forever. Amen.
**Prayer of St. Ephrem the
Syrian**
**to the Most Holy Spirit**
O Lord, Heavenly King, Comforter, Spirit of Truth, have compassion and
mercy on Thy sinful servant and pardon my unworthiness, and forgive me
all the sins that I humanly committed today, and not only humanly but even
worse than a beast - my voluntary sins, known and unknown, from my youth
and from evil suggestions, and from my brazenness, and from boredom. If
I have sworn by Thy Name or blasphemed it in thought, blamed or reproached
anyone, or in my anger have detracted or slandered anyone, or grieved anyone,
or if I have got angry about anything, or have told a lie, if I have slept
unnecessarily, or if a beggar has come to me and I despised or neglected
him, or if I have troubled my brother or quarrelled with him, or if I have
condemned anyone, or have boasted, or have been proud, or lost my temper
with anyone, or if when standing in prayer my mind has been distracted
by the glamour of this world, or if I have had depraved thoughts or have
overeaten, or have drunk excessively, or have laughed frivolously, or have
thought evil, or have seen the attraction of someone and been wounded by
it in my heart, or said indecent things, or made fun of my brother's sin
when my own faults are countless, or been neglectful of prayer, or have
done some other wrong that I cannot remember - for I have done all this
and much more - have mercy, my Lord and Creator, on me Thy wretched and
unworthy servant, and absolve and forgive and deliver me in Thy goodness and love for men, so that, lustful, sinful and wretched as
I am, I may lie down and sleep and rest in peace. And I shall worship,
praise and glorify Thy most honourable Name, with the Father and His only-begotten
Son, now and ever, and for all ages. Amen.
**Prayer**
O Lord, our God, in Thy goodness and love for men forgive me all the
sins I have committed today in word, deed or thought. Grant me peaceful
and undisturbed sleep. Send Thy Guardian Angel to guard and protect me
from all evil. For Thou art the guardian of our souls and bodies, and to
Thee we ascribe glory, to the Father, Son and Holy Spirit, now and ever,
and to the ages of ages. Amen.
**Prayer**
O Lord our God, in Whom we believe and Whose Name we invoke above every
name, grant us preparing for sleep relaxation of soul and body, and keep
us from all temptations and dark pleasures. Stop the rushing of passions,
and quench the burning of bodily tensions. Grant us to live chastely in word and act, that we
may live a life of heroic virtue and not fall away from Thy promised blessings.
For Thou art blessed for ever. Amen.
**Prayer of St. John Chrysostom**
(Supplicatory prayers corresponding to 24 hours
of the day.)
**Day**
Lord, deprive me not of Thy heavenly joys. Lord, deliver me from eternal
torments. Lord, if I have sinned in mind or thought, in word or deed, forgive
me. Lord, deliver me from all ignorance, forgetfulness, cowardice and stony
insensibility. Lord, deliver me from every temptation. Lord, enlighten
my heart which evil desires have darkened. Lord, I being human have sinned,
but Thou being the generous God, have mercy on me, knowing the sickness
of my soul. Lord, send Thy grace to my help, that I may glorify Thy holy
Name. Lord Jesus Christ, write me Thy servant in the Book of Life, and
grant me a good end. O Lord my God, even though I have done nothing good
in Thy sight, yet grant me by Thy grace to make a good start. Lord, sprinkle
into my heart the dew of Thy grace. Lord of heaven and earth remember me,
Thy sinful servant, shameful and unclean, in Thy Kingdom. Amen.
**Night**
O Lord, accept me in penitence. O Lord, leave me not. O Lord, lead me
not into temptation. O Lord, grant me good thoughts. O Lord, grant me tears
and remembrance of death and compunction. O Lord, grant me the thought
of confessing my sins. O Lord, grant me humility, chastity and obedience.
O Lord, grant me patience, courage and meekness. O Lord, plant in me the root of all blessings, the fear of Thee in my heart. O Lord, grant
me to love Thee with all my mind and soul, and always to do Thy will. O
Lord, protect me from certain people, and demons, and passions, and from
every other harmful thing. O Lord, Thou knowest that Thou actest as Thou
wilt; may Thy will be also in me, a sinner, for blessed art Thou for ever.
Amen.
**Prayer**
**our Lord Jesus Christ**
O Lord Jesus Christ, Son of God, for the sake of Thy most honourable
Mother, Thy fleshless Angels, Thy Prophet and Forerunner and Baptizer,
all the God-inspired Apostles, the radiant and victorious Martyrs, the
holy and God-bearing Fathers, and by the prayers of all Saints, deliver
me from the besetting presence of the devil. My Lord and Creator, Who desirest
not the death of the sinner, but that he should be converted and live,
grant also conversion to me, wretched and unworthy, snatch me from the
jaws of the pernicious serpent, who is ravening to devour me and drag me
down to hell alive. My Lord, my Comfort, Who wast clothed in corruptible
flesh for my miserable sake, deliver me from misery and grant comfort to
my miserable soul. Implant in my heart to fulfil Thy commandments, and
forsake my evil deeds, and to receive Thy joys. Save me, for I hope in
Thee, O Lord. Amen.
**Prayer of Intercession**
**to the Most Holy Mother of God**
O good Mother of the good King, most pure and blessed Virgin Mary, pour
out the mercy of thy Son and our God on my passionate soul and guide me
in good works by thy prayers, that I may pass the rest of my life without
defilement, and find paradise through thee, O Virgin Mother of God, who alone art pure and
blessed.
**Prayer of Intercession**
**to the holy Guardian Angel**
O Angel of Christ, my holy Guardian and Protector of my soul and body,
forgive me all my sins of today. Deliver me from all the wiles of the enemy,
that I may not anger my God by any sin. Pray for me, sinful and unworthy
servant, that thou mayest present me worthy of the kindness and mercy of the All-holy Trinity
and the Mother of my Lord Jesus Christ, and of all the Saints. Amen.
(Here one says a prayer to one's Patron Saint.)
Queen of the Heavenly Host, Defender of our souls, we thy servants offer
to thee songs of victory and thanksgiving, for thou, O Mother of God, hast
delivered us from dangers. But as thou hast invincible power, free us from
conflicts of all kinds that we may cry to thee: Rejoice, unwedded Bride.
Most glorious, Ever-Virgin, blessed, Mother of Christ our God, present
our prayer to thy Son and our God, and pray that through thee He may save
our souls.
I put all my hope in thee, O Mother of God. Guard me under thy protection.
O Virgin Mother of God, despise not me, a sinner, needing thy help and
protection, and have mercy on me, for my soul hopes in thee.
**Prayer**
(Lacking the opportunity of asking pardon of each person.)
O God, absolve, remit, and pardon our voluntary and involuntary sins,
in word and deed, known and unknown, by day and by night, in mind and thought;
forgive us all, in Thy goodness and love for men.
**Prayer of Intercession**
O Lord, Lover of men, forgive those who hate and wrong us. Do good to
those who do good. Grant our brothers and relatives their saving petitions
and eternal life. Visit the sick and grant them healing. Guide those at
sea. Travel with travellers. Struggle alongside the Orthodox. To those
who serve and are kind to us, grant remission of sins. On those who have
charged us, unworthy as we are, to pray for them, have mercy according
to Thy great mercy. Remember, O Lord, our fathers and brothers who have
fallen asleep, and grant them rest where the light of Thy countenance shines.
Remember, O Lord, those who bear fruit and do good works in Thy holy churches
and grant them their saving petitions and eternal life. Remember also,
O Lord, us Thy humble, sinful and unworthy servants, and enlighten our
minds with the light of knowledge of Thyself, and guide us in the way of
Thy commandments, by the prayers of our immaculate Lady, Mother of God,
and Ever-Virgin Mary, and of all Thy Saints, for Thou art blessed to the
ages of ages. Amen.
**Daily Confession of Sins**
I confess to Thee, my Lord, God and Creator, to the One glorified and
worshipped in Holy Trinity, to the Father, Son and Holy Spirit, all my
sins which I have committed all the days of my life, at every hour, in
the present and in the past, day and night, in thought, word and deed;
by gluttony, drunkenness, secret eating, idle talking, despondency, indolence,
contradiction, neglect, aggressiveness, self love, hoarding, stealing,
lying, dishonesty, curiosity, jealousy, envy, anger, resentment, and remembering
wrongs, hatred, mercenariness; and by all my senses: sight, hearing, smell,
taste, touch; and all other sins, spiritual
and bodily, through which I have angered Thee, my God and Creator,
and caused injustice to my neighbours. Sorrowing for this, but determined
to repent, I stand guilty before Thee, my God. Only help me, my Lord and
God, I humbly pray Thee with tears. Forgive my past sins by Thy mercy,
and absolve me from all I have confessed in Thy presence, for Thou art
good and the Lover of men. Amen.
**Prayer of St. John of
Damascus.**
(To be said pointing at the bed.)
O Lord, Lover of men, is this bed to be my coffin, or wilt Thou enlighten
my wretched soul with another day? Here the coffin lies before me, and
here death confronts me. I fear, O Lord, Thy Judgment and the endless torments,
yet I cease not to do evil.
My Lord God, I continually anger Thee, and Thy immaculate Mother, and
all the Heavenly Powers, and my holy Guardian Angel. I know, O Lord, that
I am unworthy of Thy love, but deserve condemnation and every torment.
But, whether I want it or not, save me, O Lord. For to save a good man
is no great thing, and to have mercy on the pure is nothing wonderful,
for they are worthy of Thy mercy. But show the wonder of Thy mercy on me,
a sinner. In this reveal Thy love for men, lest my wickedness prevail over
Thy unutterable goodness and mercy. And order my life as Thou wilt.
(As sleep is the image of death, at night we pray for the departed.)
With the Saints give rest, O Christ, to the souls of Thy servants where
there is no pain, no sorrow, no sighing, but life everlasting.
(When about to lie down in bed, say:)
Lighten my eyes, O Christ God, lest I sleep in death, and lest my enemy
say: I have prevailed over him.
Glory to the Father, and to the Son, and to the Holy Spirit.
Be my soul's Defender, O God, for I step over many snares. Deliver me
from them and save me, O Good One, in Thy love for men.
Now and ever, and to the ages of ages. Amen.
Let us not silently hymn the most glorious Mother of God, holiest of
holy Angels, but confess her with heart and mouth to be the Mother of God,
for she truly bore God incarnate for us, and prays without ceasing for
our souls. Amen.
Kiss your cross, and make the sign of the Cross from head to foot
of the bed and from two sides, and then say:
**Prayer to the Venerable
Cross**
Let God arise, and let His enemies be scattered; and let those who hate
Him flee from His presence. As smoke vanishes, let them vanish; and as
wax melts from the presence of fire, so let the demons perish from the
presence of those who love God and who sign themselves with the Sign of
the Cross and say in gladness: Hail, most precious and life-giving Cross
of the Lord, for Thou drivest away the demons by the power of our Lord Jesus Christ
crucified on thee, Who went down to hell and trampled on the power of the
devil, and gave us thee, His venerable Cross, for driving away all enemies.
O most precious and life-giving Cross of the Lord, help me with our holy
Lady, the Virgin Mother of God, and with all the Saints throughout the
ages. Amen.
(Just before getting into bed, say:)
Guard me, O Lord, by the power of Thy holy and life-giving Cross, and
keep me from all evil.
(Just before yielding yourself up to sleep, say:)
Into Thy hands, O Lord Jesus Christ, my God, I surrender my spirit and
body; bless me, save me, and grant me eternal life. Amen.
Before retiring (or if one prefers, before beginning prayers) go
through all the points suggested below in your mind and memory.
1. Give thanks to Almighty God for granting you during the past day,
by His grace, His gifts of life and health.
2. Examine your conscience by going through each hour of the day, beginning
from the time you rose from your bed, and recall to memory: where you went,
how you acted and reacted towards all persons and other creatures, and
what you talked about. Recall and consider with all care your thoughts,
words and deeds from morning till evening.
3. If you have done any good, do not ascribe it to yourself but to God
Who gives us all the good things and thank Him. Pray that He may confirm
you in this good and enable you to do other good things.
4. But if you have done anything evil, admit that this comes from yourself
and your own weakness, from bad habits or weak will. Repent and pray to
the Lover of men that He may forgive you, and promise Him firmly never
to do this evil again.
5. Implore your Creator with tears to grant you a quiet, undisturbed,
pure and sinless night, and to enable you on the coming day to devote yourself
wholly to the glory of His holy Name.
6. If you find a soft pillow, leave it, and put a stone in its place
for Christ's sake. If you sleep in winter, bear it, saying: Some did not
sleep at all.
[[Greek]] | [[Ebooks]]
[ext[https://keybase.pub/anaxios/Evergetinos/]]
[[Services]] | [[Outlines]]
*Priest: “Blessed is Our God…”
** Full Trisagion
** Six Psalms //(Royal Beginning is omitted)//
*Great Litany
*Choir: “The Lord is God…”
** Apolytikion and Theotokion
** If a great feast, Apolytikion //(x3)//
*Little Litany
*Choir: Sessional Hymns
*Evlogitaria (Sundays) or Polyeleos (other feasts)
*Little Litany
*If appointed: Hypakoe (Sundays)
*Hymns of Ascent
*Choir: “The Morning Prokeimenon”
** Matins Gospel Sequence
*If appointed (Sundays): “Having beheld the Resurrection…”
*Psalm 50
** Hymns following Psalm 50
*The Matins Canon
**After Ode 3
*** Little Litany
*** Sessional Hymns
**If Ode 9 does not replace the Magnificat
*** After Ode 9: Little Litany
***Kontakion and Ikos of the Feast
***Synaxarion
***Katavasia with Magnificat
**If Ode 9 does replace the Magnificat
*** After Ode 8: Little Litany
*** Kontakion and Ikos of the Feast
*** Synaxarion
*** Katavasia with Ode 9 chanted in place of the Magnificat
*Little Litany
*Choir: Exaposteilarion read (GBN omitted)
*The Praises w/ psalms omitted
*The Great Doxology
*Apoytikion of the Feast
[[Notes]]
# Write concept on top of paper
# Explain concept as if to someone who doesn't understand it at all
# Discover the ideas that are not understood
# Go back to reference material and relearn
# Simplify and clarify and wordy or confusing language or create an analogy to describe idea
[[Emacs]] | [[Text editors]]
# ''M-x find-name-dired'': you will be prompted for a root directory and a filename pattern.
# Press ''t'' to "toggle mark" for all files found.
# Press ''Q'' for "Query-Replace in Files...": you will be prompted for query/substitution regexps.
# Proceed as with query-replace-regexp: ''y'' to replace and move to next match, ''n'' to skip a match, ''Y'' to replace all, etc.
# Press ''C-x s'' to save buffers. (You can then press ''y, n'' or ''!'' to save all at once)
[[Web Stuff]]
dscacheutil –flushcache
[[Ebooks]] [[Psalter]]
[ext[Fr Lazarus Moore Psalter PDF|eBooks/fr__lazarus_moore_the_septuagint_psalms_in_english.pdf]]
[[Coding]] | [[Lambda Calculus]]
[[#]] [[CRM]] [[Haidut]]
[[Bookmarks]]: [[IdeaLabs Online Store|http://www.idealabsdc.com/]]
[[Bookmarks]]: [[http://haidut.me/]]
# Click the '+' on the right to make a new Tiddler
# Add some text
# Include a bi-directional link to another page with [[Other Topic]].
# Click through to the link above to make the page.
#View it on 'Map'
\define lingo-base() $:/language/ControlPanel/Basics/
Welcome to ''Stroll'' and the ~TiddlyWiki community!
If you didn't come here from the Stroll website, please [[go there first|https://giffmex.org/stroll/stroll.html]] for the tutorial.
Before you start storing important information in Stroll, it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details
!! Set up this ~TiddlyWiki
<div class="tc-control-panel">
|<$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> |
|<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> |
|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |
</div>
See the [[control panel|$:/ControlPanel]] for more options.
[[Services]] | [[Outlines]]
*9th Hour
*Priest: “Blessed is Our God…”
** “O Come Let Us Worship…”
** Psalm 103
*Great Litany
*If appointed: “Blessed is the Man…”
**Little Litany
*Lord I Have Cried…
*Gladsome Light W/ Entrance
*Deacon: “Let us attend…”
** Choir: Prokeimenon
*Augmented Litany
** Choir: “Vouchsafe O Lord…”
*Litany of Supplication
*Choir: Aposticha
*Choir: Prayer of St. Symeon
** Choir: Trisagion
*Apolytikion and Theotokion
** If a great feast, Apolytikion (x3)
*The Dismissal
** Priest: “Wisdom”
[[Services]] | [[Greek]]
http://glt.goarch.org/ [[Bookmarks]]
[[Ebooks]]
[ext[Guide to Confession PDF|eBooks/Guide-to-Confession-in-English.pdf]]
[[Prayer]] | [[Rejoice Virgin Theotokos]]
Hail Mary, full of grace, the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb, Jesus. Holy Mary, Mother of God, pray for us sinners, now and at the hour of our death. Amen.
[[Coding]] [[Haskell]]
https://courses.edx.org/courses/course-v1:DelftX+FP101x+3T2015/
!This is an encrypted Tiddler
!This is an encrypted Tiddler
[[Sonke Ahrens]] | [[Zettelkasten]] | [[Articles]]
[[https://www.quora.com/How-do-you-effectively-keep-and-organize-your-study-notes/answer/S%C3%B6nke-Ahrens?ch=10&share=115486bd&srid=uJBsW]]
[[Prayer]] | [[Western Rite]]
[[https://frnovak.blogspot.com/2017/10/how-to-pray-orthodox-rosary.html?m=1]]
!INTRODUCTION
What is commonly called the Rosary was known as Our Lady’s Psalter in the ancient Christian West, and is known as The Rule of the Theotokos (Mother of God) in the East. It is an Orthodox Christian devotion based on praying the Angelic Salutation (Hail Mary) 150 times. The prayer rule consists of 150 Angelic Salutations, which are divided into 15 decades. Each decade focuses on some important event in the life of the Mother of God. The Orthodox Rosary is prayed on a Prayer Rope, also called a Chotki or Comboschini. The same Prayer Rope that is used to pray the Jesus Prayer is used for this devotion. To pray the Rosary, a Prayer Rope is used in which the knots are divided into groups of ten, or decades, with a beed separating each decade.
Many people think that the Rosary originated in Roman Catholicism and that it is a Roman Catholic devotion, but that is not historically correct. “The rosary was originally an Orthodox form of prayer that was later adopted by the Roman Catholics” (1).
“The prayer rope was formed by St. Pachomius in the fourth century. From there the rosary developed, some say as early as the eighth century” (2). While the devotion originated among the monks of ancient Egypt, it was given name the Rosary by the Christians of the British Isles.
OUR LADY’S PSALTER: THE ROSARY OR GARLAND OF ROSES
The monks of the Egyptian Thebaid were praying one hundred fifty Angelic Salutations (Hail Mary’s) grouped into fifteen decades following the pattern of the one hundred and fifty Psalms as early as the fourth century. However, while the origin of The Rule of the Theotokos, or Our Lady’s Psalter, is found in ancient Egypt, the term “Rosary” — or “garland of roses” — has its origin in the British Isles.
“It was the Western Celtic and Sarum Rites that were to develop what is today called the ‘rosary’ or ‘garland of roses.’ The Western Churches, like those of the East, had a great devotion to the Psalter of David which they divided into three parts composed of fifty psalms each. The ‘Three Fifties’ were recited for the dead and for all manner of other intentions as well by both monastics and lay-people.
“To accommodate monks and laity who could not read, little psalters were devised based on the repetition of the Lord's Prayer and the Angelical Salutation 150 times, divided into three fifties as well. Other psalters based on meditations on the life of Christ and the Most Holy Mother of God were also developed. Soon these were all fused into ‘Our Lady's Psalter’ or the ‘Rosary.’ The use of such rosaries is of a venerable age and the Western Rites of the Orthodox Church continue in its use” (3).
SOMETIMES CALLED ST. SERAPHIM’S ROSARY
The Orthodox Rosary is sometimes called St. Seraphim’s Rosary after two great Saints of the Orthodox Church — both named St. Seraphim — who were proponents of The Rule of the Theotokos: [[St Seraphim of Sarov]] (1754-1833) and [[St Seraphim Zvezdinsky]] (1883-1937).
Fr. Zosima, one of the spiritual children of St. Seraphim of Sarov said, “In my hands I have a hand-written book from the cell of Saint Seraphim, containing a description of the many miracles which took place through praying to the Mother of God and especially through saying one hundred and fifty times the O Hail, Mother of God and Virgin [an Eastern Rite version of the Angelic salutation]. If, being unaccustomed to it, it is difficult to master one hundred and fifty repetitions daily, say it fifty times at first…Whomever he spoke to about this miracle-working Rule remained grateful to him.”
St. Seraphim (Zvezdinsky) was an Endoverie (Old Rite) Russian Orthodox bishop who had been consecrated to the episcopate by St. Tikhon of Moscow as Bishop of Dimitrov, and was martyred by the Soviet communists in 1937. He was tonsured a monk with the name of Seraphim after St. Seraphim of Sarov. He had great devotion to the Mother of God; and received from God the gift of preaching, becoming well known for his sermons. St. Seraphim Zvezdinsky also possessed the gifts of clairvoyance and healing of the sick; these gifts manifested themselves many times throughout his life.
[[Fr Alexander Gumanovsky]] writes: “[[Bishop Seraphim Zvezdinsky]] performed the Rule of the Mother of God every day, and, when he performed it he prayed for the whole world, embracing in his Rule the whole life of the Queen of Heaven.”
!!HOW THE ROSARY IS PRAYED
Our Lady’s Psalter — the Rosary — usually includes introductory and closing prayers. Those following the Western liturgical tradition should follow a standard form, such as opening with the Sign of the Cross, and then saying “O Lord, open thou my [our] lips. And my [our] mouth shall show forth thy praise. O God, made make speed to save me [us]. O Lord, make haste to help me [us];” followed by “Glory be to the Father…” (Gloria Patri).
Then, the appropriate Meditation is named followed by the Lord’s Prayer on the bead and ten Hail Mary’s on the knots. Fifteen decades, or at least five decades, are thus prayed, each preceded by naming the appropriate Meditation and then praying the Lord’s Prayer and ten Hail Marys. The Rosary, can then be concluded with a closing prayer such as the Regina Caeli (Queen of Heaven).
!!!There are fifteen Meditations:
Meditations:
# The Birth of the Theotokos [Theotokos means, Mother of God]
#The Presentation of the Theotokos
#The Annunciation of the Lord's Birth
#The Meeting of the Theotokos and St. Elizabeth
#The Birth of the Lord
#The Prophecy of St. Simeon
#The Flight into Egypt
#The Boy-Christ among the Doctors
#The Wedding of Cana
#The Crucifixion of the Lord
#The Resurrection of the Lord
#The Ascension of the Lord into Heaven
#Pentecost
#The Dormition of the Virgin Theotokos
#The Crowning of the Theotokos by the Blessed Trinity
//There are no set Meditations for certain days of the week. The Rosary can be begun on any day, with fifteen decades or five decades prayed. If five decades are prayed, then the Rosary is begun with the first Meditation, followed by the sixth Meditation the next day, and with the eleventh Meditation on the third day. Then, the Three Fifties begin again with the first Meditation.//
//St. Seraphim (Zvezdinsky) provides spiritual direction and beautiful prayer intentions for those praying the Rosary. Fr. Alexander Gumanovsky writes, “He [St. Seraphim Zvezdinsky] gave one of his spiritual children the task of copying a plan which included his prayer to the Ever Virgin Mary." St. Seraphim (Zvezdinsky's) spiritual directions and prayer intentions are included in this guide to praying the Rosary (4).//
!!!PRAYING THE ROSARY
//To pray the Rosary, begin by making the Sign of the Cross and saying,//
In the Name of the Father, and of the Son, and of the Holy Ghost (Spirit). Amen.
V. O Lord, open thou my [our] lips.
R. And my [our] mouth shall show forth thy praise.
V. O God, made make speed to save me [us].
R. O Lord, make haste to help me [us].
GLORY BE to the Father, and to the Son, and to the Holy Ghost (Spirit).
As it was in the beginning, is now, and ever shall be, world without end (unto all ages of ages) Amen.
//Each of the Meditations may be combined with the spiritual direction and prayer intentions of St. Seraphim (Zvezdinsky) as is done here://
Meditations:
#The Birth of the Theotokos
#*//First decade://
#**Let us remember the birth of the Mother of God. Let us pray for mothers, fathers, and children.
#*//Each Meditation is followed by the Lord’s Prayer (Our Father) on the bead, and ten Angelic Salutations (Hail Marys) on the knots://
#**OUR FATHER, Who art in heaven, Hallowed be Thy Name. Thy Kingdom come. Thy Will be done, on earth as it is in Heaven. Give us this day our daily bread. And forgive us our trespasses, as we forgive those who trespass against us. And lead us not into temptation, but deliver us from evil. Amen.
#*//Ten Hail Marys://
#**HAIL MARY, full of grace, the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb (5).
#The Presentation of the Theotokos
#*//Second decade://
#**Let us remember the feast of the Presentation of the Blessed Virgin and Mother of God. Let us pray for those who have lost their way and fallen away from the church.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Annunciation of the Lord's Birth
#*//Third decade://
#**Let us remember the Annunciation of the Blessed Mother of God—let us pray for the soothing of sorrows and the consolation of those who grieve.
#*Pray the Lord’s Prayer, followed by ten Hail Marys.
#The Meeting of the Theotokos and St. Elizabeth
#*//Fourth decade://
#**Let us remember the Visitation of the Blessed Virgin with the righteous Elizabeth. Let us pray for the reunion of the separated, for those whose dear ones or children are living away from them or missing.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Birth of the Lord
#*//Fifth decade://
#**Let us remember the Birth of Christ. Let us pray for the rebirth of souls, for new life in Christ.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Prophecy of St. Simeon
#*//Sixth decade://
#**Let us remember the Feast of the [Presentation] of the Lord, and the words uttered by St. Simeon: “Yea, a sword shall pierce through thy own soul also” (Luke 2:35). Let us pray that the Mother of God will meet our souls at the hour of our death, and will contrive that we receive the Holy Sacrament with our last breath, and will lead our souls through the terrible torments.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Flight into Egypt
#*//Seventh decade://
#**Let us remember the flight of the Mother of God with the God-Child into Egypt. Let us pray that the Mother of God will help us avoid temptation in this life and deliver us from misfortunes.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Boy-Christ among the Doctors
#*//Eighth decade://
#**Let us remember the disappearance of the twelve-year old boy Jesus in Jerusalem and the sorrow of the Mother of God on this account. Let us pray, begging the Mother of God for the constant repetition of the Jesus Prayer.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Wedding of Cana
#*//Ninth decade://
#**Let us remember-the miracle performed in Cana of Galilee, when the Lord turned water into wine at the words of the Mother of God: “They have no wine” (John 2:3). Let us ask the Mother of God for help in our affairs and deliverance from need.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Crucifixion of the Lord
#*//Tenth decade://
#**Let us remember the Mother of God standing at the Cross of the Lord, when grief pierced through her heart like a sword. Let us pray to the Mother of God for the strengthening of our Souls and the banishment of despondency.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Resurrection of the Lord
#*//Eleventh decade://
#**Let us remember the Resurrection of Christ and ask the Mother of God in prayer to resurrect our souls and give us a new courage for spiritual feats.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Ascension of the Lord into Heaven
#*//Twelfth decade://
#**Let us remember the Ascension of Christ, at which the Mother of God was present. Let us pray and ask the Queen of Heaven to raise up our souls from earthly and worldly amusements and direct them to striving for higher things.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#Pentecost
#*//Thirteenth decade://
#**Let us remember the Upper Room and the descent of the Holy Spirit on the Apostles and the Mother of God. Let us pray: “Create in me a clean heart, O God; and renew a right spirit within me. Cast me not away from thy presence; and take not thy holy spirit from me” (Psalm 51).
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Dormition of the Virgin Theotokos
#*//Fourteenth decade://
#**Let us remember the Assumption of the Blessed Mother of God, and ask for a peaceful and serene end.
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
#The Crowning of the Theotokos by the Blessed Trinity
#*//Fifteenth decade://
#**Let us remember the glory of the Mother of God, with which the Lord crowned her after her removal from earth to heaven. Let us pray to the Queen of Heaven not to abandon the faithful who are on earth but to defend them from every evil, covering them with her honoring and protecting veil
#*//Pray the Lord’s Prayer, followed by ten Hail Marys.//
//The Rosary, is then concluded with a closing prayer such as the Regina Caeli (Queen of Heaven)://
O QUEEN of heaven, be joyful, alleluia;
Because He whom so meetly thou barest, alleluia,
Hath arisen, as He promised, alleluia:
Pray for us to the Father, alleluia.
V. Rejoice and be glad, O Virgin Mary, alleluia.
R. For the Lord is risen indeed, alleluia.
Let us pray.
O GOD, who by the resurrection of thy Son Jesus Christ, didst vouchsafe to give gladness unto the world: grant, we beseech thee, and we, being holpen by the Virgin Mary, His Mother, may attain unto the joys of everlasting life: through the same Christ our Lord. Amen.
!!PRAYING THE ROSARY AS A FAMILY OR GROUP
If the Rosary is prayed as a family or group, everyone makes the Sign of the cross together. The leader says the versicles (V.) and the group says the responses (R.). The words “our” and “us” replace “my” and “me” in the opening versicles and responses.
The leader then begins the Glory Be (Gloria Patri), with the words, “Glory be to the father…,” and prays the first half of the prayer. The group follows by reciting the second half, beginning, “As it was in the beginning… Amen”
Next, the leader names the Meditation and begins the Lord’s Prayer, reciting the first half of the prayer; followed by the group which recites the second half beginning with the words, “Give us this day… Amen.”
The leader begins the Hail Mary each time it is prayed and recites the first verse; followed by the group which recites the second verse, beginning, “Blessed art thou among…” There is no need to say “Amen” after each Hail Mary.
If the longer, modern version of the Hail Mary is prayed, the leader begins the prayer and prays through the words, “of thy womb, Jesus.” The group then recites the rest of the prayer beginning with, “Holy Mary, Mother of God…”
The leader then leads in praying the Regina Caeli (Queen of Heaven), saying “Let us pray” and the final Collect alone. Amen is said by the group. Then everyone makes the Sign of the Cross and the devotion is concluded.
!!CONCLUSION
The Rosary can be prayed as a private devotion, as a family devotion, or with a group. Pray for us, O Holy Mother of God. That we may be made worthy of the promises of Christ.
Footnotes.
1. The Rosary, OrthodoxWiki
2. The Rosary, OrthodoxWiki
3. The Historical Development of the Orthodox Prayer Rope and Its Importance to our Spiritual Life, by Dr. Alexander Roman
4. The Walsingham Way (Vol. ii, No. 1), published by the Orthodox Christian Society of Our Lady of Walsingham
5. The Hail Mary is a combination of Biblical texts taken from Luke 1:28 and Luke 1:42, and is a prayer of praise. It is very similar to its Eastern form:
O Hail Mother of God and Virgin, Mary full of Grace, the Lord is with thee. Blessed art thou among women and blessed is the fruit of thy womb, for thou has given birth to the Saviour of our souls. Amen.
Centuries later, the name of Jesus and a petition for Mary’s intercession were commonly added, giving us the Hail Mary as we have it today:
Hail Mary, full of grace, the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb, Jesus. Holy Mary, Mother of God, pray for us sinners, now and at the hour of our death. Amen.
The longer version of the Hail Mary was unknown in the first millennium of Christianity, and remained unknown in the time of Thomas Aquinas as is clear from his writings. The petition "Holy Mary, Mother of God, pray for us sinners, now and at the hour of our death. Amen," was added later. This petition combined with the Hail Mary first appeared in print in AD 1495 in Girolamo Savonarola's "Esposizione sopra l’Ave Maria.” The early (shorter) version of the Hail Mary was still being used among the Irish at the beginning of the 20th century. Although the longer version of the Hail Mary is not ancient, it is perfectly Orthodox in content and is freely used by Orthodox Christians.
[[Shu Omi]] | [[Roam Research]]
[[https://youtu.be/ljyo_WAJevQ]]
<$transclude tiddler="Enchiridion of Sophronios" mode=block />
<br>
---
<br>
@@width: 90%;
@@margin:auto;
@@background-color:#;
@@border-radius: 10px;
@@padding: 0px;
@@border:0px sold black;
|^ [[Zettelkasten]] |^ [[Shortcuts]] |^ [[TASKS]] |h
|^<$list filter="[!has[draft.of]tag[Zettelkasten]sort[created]]"><$link to={{!!title}}><$view field="title"/></$link><br></$list>|^<$list filter="[prefix[Prologue -]days:created[-14]sort[created]first[]]"><$link to={{!!title}}>Prologue for Today<br></$link></$list><$list filter="[!has[draft.of]tag[Hub]sort[]]"><$link to={{!!title}}><$view field="title"/></$link><br></$list>|^<$list filter="[!has[draft.of]tag[task]!tag[done]sort[created]]"><$checkbox tag="done"> <$link to={{!!title}}><$view field="title"/></$link></$checkbox><br></$list>|
@@
<br>
<<tabs "
[[Orthodoxy]]
[[Coding]]
[[TASKS]]
[[Blogs]]
Hub"
"[[Orthodoxy]]" "" "">>
"Glory to the Father and to the Son and to the Holy Spirit. Open to me the doors of repentance O Lifegiver; for my spirit rises early to pray towards Thy Holy Temple, bearing the temple of my body all defiled. But in Thy Compassion purify me by the loving kindness of Thy Mercy. Now and ever and unto ages of ages. Amen. Lead me on the paths of Salvation O Mother of God, for I have covered my soul in shameful sins and have wasted my life in lazy acts. But by your intercessions, deliver me from all impurity. Have mercy on me O God according to Thy Great Mercy and according to the multitude of Thy Compassions blot out my transgressions. When I think of the many evil things I have done, wretched I am, I tremble at the fearful day of Judgement, but trusting in Thy loving kindness, like David I cry to Thee. Have mercy on me O God, have mercy on me O God, Have mercy on me O God according to Thy great Mercy."
[[TiddlyWiki]]
[[https://danielorodriguez.com/TW5-EncryptTiddlerPlugin/]]
[[Thoughts]]
[[https://en.wikipedia.org/wiki/Sign_of_contradiction]]
[[#]] [[CRM]] [[Apologetics]]
[[Jay's Analysis|https://jaysanalysis.com/]]
[[Thoughts]]
If the scripture never says that Jesus laughed or spoke with the intention of making someone laugh why are some absolutely convinced that he "had a great sense of humor"?
* What do we know about the nature of humor?
[[Notes]]
[[https://read.amazon.com/kp/notebook]]
[[#]] [[Notes]] [[WIP]]
# ''Renunciation of the world''
The first step in the spiritual life is the renunciation of everything for the sake of God. We must relinquish our attachment to everything that is not eternal for all things are a passing vanity. Like the scripture says, "Therefore I hated life; because the work that is wrought under the sun is grievous unto me: for all is vanity and vexation of spirit." (Eccl 2:17).
We must not even have attachment to our family: "He that loveth father or mother more than me is not worthy of me: and he that loveth son or daughter more than me is not worthy of me." (Mat 10:37)
We must not even be attached to our own life: "He that loveth his life shall lose it; and he that hateth his life in this world shall keep it unto life eternal." (Jn 12:25)
We must renounce the world with the right intentions or we will either, not endure temptation when it comes because we renounced the world out of fear, or we will fall to self-esteem because we renounced the world to attain glory.
There are only two ways we will find true renunciation, the first by the desire to repent of our sins the second to acquire the Kingdom of Heaven.
# ''Detachment''
#. Exile or pilgrimage
4. Blessed obedience
5. True repentance
6. Remembrance of death
7. Joy-making mourning
8. Freedom from anger - meekness
9. On remembrance of wrongs
10. On slander calumny
11. On talkativeness & silence
12. On lying
13. On despondency
14. On the stomach
15. On purity & chastity
16. On love of money - avarice
17. On non-possesiveness
18. On insensibiblity
19. On sleep, prayer, and psalmnody
20. On bodily vigil and how to make it spiritual
21. On unmanliness - cowardice
22. On multiform vainglory
23. On pride & blasphemous thoughts
24. On meekness, simplicity, & guilelessness
25. On humility - the bane of passions
26. On discernment
27. On stillness of body & soul
28. On holy prayer
29. Concerning heaven & earth, Godlike dispassion & resurrection of the soul before the general resurrection
30. Linking the supreme Trinity among the virtues
[[Poetry]] | [[Haiku]] | [[Coding]] | [[Functional Programming]]
Lambda calculus
Discovered not invented
The Creator's mind
[[Services]] | [[Outlines]] | [[Lent]] | [[WIP]]
1. **“Blessed is our God...”**
2. **Trisagion**
3. **Six Psalms with Royal Beginning**
4. **Great Litany**
5. **Alleluia**
6. **Hymns to the Trinity**
7. **Kathisma**
8. **The Little Litany**
9. **Sessional Hymns**
1. Three sets from the LT and LTS
1. Hymns of Repentance (668-699)
2. Of the day LT & LTS
3. Of the day LT & LTS
10. **Psalm 50**
11. **The “O God Save Thy People…”**
12. **The Canon**
1. **For structure of Canon see attached**
13. **Little Litany and Hymn of Light**
14. **Daily Praises and Lesser Doxology**
15. **The Litany of Supplication**
16. **Aposticha**
17. **Priest: “It is a good thing...”**
1. Trisagion Prayers
2. Priest “Blessed is He who is…”
3. The Prayer of St, Ephraim
[[Prayer]]
O Lord and Master of my life, take from me the spirit of sloth, despair, lust of power, and idle talk.
But give rather the spirit of chastity, humility, patience, and love to Thy servant.
Yea, O Lord and King, grant me to see my own transgressions, and not to judge my brother, for blessed art Thou, unto ages of ages. Amen.
[[S :: Letter 2 - St Basil the Great]]
[[Source]]
---
[[The Complete Ante-Nicene & Nicene and Post-Nicene Church Fathers Collection]]
Author: [[St Basil the Great]]
!!Summary:
* St. Basil sought punishment of a thief who broke into his house and stole things. He didn't wish to be seen as an easy target. He also admitted being indignant.
---
!!Notes:
*
[[Letter 3 - St Basil the Great]]
[[Source]]
[[The Complete Ante-Nicene & Nicene and Post-Nicene Church Fathers Collection]]
Author: [[St Basil the Great]]
Summary:
* St. Basil is comforting the mother of a son who passed before his time.
Notes:
* The Providence of God oversees even the smallest thing. Nothing happens by chance.
* Death is not necessarily something to be mourned, but can also be seen as a loosening of the fetters of the suffering of this world
* We need to reckon that we are mortal
[[Letter 6 - St Basil the Great]]
[[Source]]
[[The Complete Ante-Nicene & Nicene and Post-Nicene Church Fathers Collection]]
Author: [[St Basil the Great]]
Summary:
*
Notes:
*
[[Thoughts]]
[[https://www.theguardian.com/books/2020/may/09/the-real-lord-of-the-flies-what-happened-when-six-boys-were-shipwrecked-for-15-months?CMP=fb_gu&utm_medium=Social&utm_source=Facebook#Echobox=1589017302]]
!This is an encrypted Tiddler
[[Bookmarks]]: [[http://www.saintdionysiosmonastery.org]]
[[Address]]: 481 N Country Rd, St James, NY 11780, USA
[[Address]]: 5052 S DIXIE HWY
RESACA, GA 30735-9325 US
[[Jordanville Lazarus Moore Prayer Book]]
On rising, make the sign of the Cross and say:In the Name of the Father, and of the Son, and of
the Holy Spirit. Amen. Glory to Thee, our God, glory to Thee. Heavenly King, Comforter, Spirit of Truth, Who art
everywhere present and fillest all things, Treasury of good gifts and Giver of Life, come
and abide in us, and cleanse us of all impurity, and save our souls, O Good One. Holy God, Holy Mighty, Holy Immortal One, have mercy
on us. (thrice) Glory to the Father, and to the Son, and to the Holy
Spirit, now and ever, and to the ages of ages. Amen. Most Holy Trinity, have mercy on us. O Lord, wash
away our sins, O Master, pardon our transgressions. O Holy One, visit and heal our
infirmities, for Thy Name's sake. Lord, have mercy. (3 times.) Glory to the Father, and to the Son and to the Holy
Spirit, now and ever, and to the ages of ages. Amen. Our Father, Who art in heaven, hallowed be Thy Name.
Thy Kingdom come. Thy will be done, on earth as it is in heaven. Give us this day our
daily bread. And forgive us our debts as we forgive our debtors. And lead us not into
temptation, but deliver us from the evil one. For Thine is the kingdom, the power
and the glory, of the Father, and of the Son, and of the Holy Spirit, now and ever, and to
the ages of ages. Amen. **The Troparia to
the Holy Trinity** As we rise from sleep we worship Thee, O good and
powerful Lord, and to Thee we sing the Angel's hymn: Holy, Holy, Holy art Thou, O God;
through the Mother of God, have mercy on us. Glory to the Father, and to the Son, and to the Holy
Spirit. Having raised me from bed and sleep, O Lord,
enlighten my mind, and open my heart and lips to praise Thee, O Holy Trinity: Holy, Holy,
Holy art Thou, O God; through the Mother of God, have mercy on us. Now and ever, and to the ages of ages. Amen. Suddenly the Judge will come, and the deeds of each
will be laid bare; but at midnight let us cry with fear: Holy, Holy, Holy art Thou, O God;
through the Mother of God, have mercy on us. Lord, have mercy. (12 times.) **Prayer of St.
Basil the Great to the Most Holy Trinity** As I rise from sleep I thank Thee, O Holy Trinity,
for through Thy great goodness and patience Thou wast not angered with me, an idler and
sinner, nor hast Thou destroyed me in my sins, but hast shown Thy usual love for men, and
when I was prostrate in despair, Thou hast raised me to keep the morning watch and glorify
Thy power. And now enlighten my mind's eye and open my mouth to study Thy words and
understand Thy commandments and do Thy will and sing to Thee in heartfelt adoration and
praise Thy Most Holy Name of Father, Son and Holy Spirit, now and ever, and to the ages of
ages. Amen. O come let us worship God our King. O come let us worship and fall down before Christ our
King and our God. O come let us worship and fall down before Christ
Himself, our King and our God. **Psalm 50** Have mercy on me, O God, according to
Thy great mercy; and according to the multitude of Thy compassions, blot out my
transgression. Wash me thoroughly from my iniquity, and cleanse me from my sin. For I
realize my iniquity, and my sin is before me continually. Against Thee only have I sinned
I and done evil in Thy sight, that Thou mayest be justified in Thy words and win when Thou
art judged.For, behold, I was conceived in iniquities, and in sins did my mother desire
me. For, lo, Thou lovest truth; the unknown and secret things of Thy wis dom Thou hast
made known to me. Thou shalt sprinkle me with hyssop, and I shall be cleansed; Thou shalt
wash me, and I shall become whiter than snow.Thou shalt make me hear joy and gladness; the
bones that have been humbled will rejoice. Turn Thy face from my sins, and blot out all my
iniquities.Create in me a clean heart, O God; and renew a right spirit within me. Cast me
not away from Thy face, I and take not Thy Holy Spirit from me. Restore to me the joy of
Thy salvation, and confirm me with a princely spirit. I shall teach Thy ways to the
lawless and the godless will return to Thee. Deliver me from blood, O God - O God of my
salvation - and my tongue shall extol Thy justice. O Lord, Thou wilt open my lips, and my
mouth shall declare Thy praise. For if Thou hadst desired sacrifice, I would have given
it; but burnt offerings do not please Thee. The sacrifice for God is a contrite spirit; a
contrite and humble heart God will not despise. Gladden Sion, O Lord, with Thy good will;
and let the walls of Jerusalem be built. Then Thou wilt be pleased with the sacrifice of
righteousness, the oblation and burnt offerings; then they will offer calves on Thine
altar. **The Creed**
(Symbol of Faith) I believe in one God, Father,
Almighty, Maker of heaven and earth, and of all things visible and invisible: And in one
Lord Jesus Christ, the only-begotten Son of God; begotten of the Father before all ages;
Light from Light, True God from True God, begotten, not made, of One Essence with the
Father, through Whom all things were made: Who for us men, and for our salvation, came
down from Heaven, and was incarnate by the Holy Spirit and the Virgin Mary, and became
Man: And was crucified for us under Pontius Pilate, and suffered and was buried: And He
rose on the third day according to the Scriptures: And ascended into Heaven, and sits at
the right hand of the Father: And He is coming again with glory to judge the living and
the dead; And His Kingdom will have no end: And in the Holy Spirit, the Lord, the Giver of
the Life, Who proceeds from the Father, Who with the Father and the Son is equally
worshipped and glorified, Who spoke by the Prophets: And in One, Holy, Catholic and
Apostolic Church. I confess one Baptism for the remission of sins. I look for the
Resurrection of the Dead; And the life of the Age to come. Amen. **First Prayer** **of
St. Macarius the Great** O God, cleanse me, a sinner, for I
have never done anything good in I Thy sight; deliver me from the evil I one, and may Thy
will be in me, that I may open my unworthy mouth without condemnation, and praise Thy holy
Name of Father, Son and Holy Spirit, now and ever, and to the ages of ages. Amen. **Second Prayer** **of St. Macarius the Great** Having risen from sleep, I offer
Thee, O Saviour, the midnight song, and I fall down and cry unto Thee: grant me not to
fall asleep in the death of sin, but have compassion on me, O Thou Who wast voluntarily
crucified, and hasten to raise me who am prostrate in idleness, and save me in prayer and
intercession, and after the night's sleep, bless me with a sinless day O Christ, our God,
and save me. **Third Prayer** **of St. Macarius the Great** Having risen from sleep I hasten to
Thee, O Lord, Lover of men, and by Thy loving-kindness I strive to do Thy work, and I pray
to Thee: help me at all times, in everything, and deliver me from every evil thing of
the world and every attack of the devil, and lead me into Thine eternal Kingdom. For Thou
art my Creator, the Giver and Provider of everything good, and all my hope is in Thee, and
to Thee I send up glory, now and ever, and to the ages of ages. Amen. **Fourth Prayer** **of St. Macarius the Great** O Lord, Who in Thy abundant goodness
and Thy great compassion hast granted me, Thy servant, to pass the time of this night
without the temptation of any opposing evil, Lord and Creator of all, by Thy true light
and with an enlightened heart grant me to do Thy will, now and ever, and to the ages of
ages. Amen. **Fifth Prayer** **of St. Macarius the Great** Almighty Lord God, Who dost receive
from Thy Heavenly Powers the thrice-holy hymn, receive also from me, Thy unworthy servant,
this song of the night, and grant me every year of my life and at every hour to send up
glory to Thee, Father, Son and Holy Spirit, now and ever, and to the ages of ages. Amen. **First Prayer** **of St. Basil the Great** Almighty Lord, God of the Powers and
of all flesh, Who livest in the highest and carest for the humble, Who searchest our
hearts and affections, and clearly foreknowest the secrets of men; eternal and everliving
Light, in Whom is no change nor shadow of variation; O Immortal King, receive our prayers
which at the present time we offer to Thee from unclean lips, trusting in the multitude of
Thy mercies. Forgive all sins committed by us in thought, word or deed, consciously or
unconsciously, and cleanse us from all defilement of flesh and spirit. Grant us to pass
the night of the whole present life with wakeful heart and sober thought, ever expecting
the coming of the radiant day of the appearing of Thy only-begotten Son, our Lord and God
and Saviour, Jesus Christ, when the Judge of all will come with glory to render to each
according to their deeds. May we not be found fallen and idle, but awake and alert for
action, ready to accompany Him into the joy and divine palace of His glory, where there is
the ceaseless sound of those keeping festival and the unspeakable delight of those who
behold the ineffable beauty of Thy Face. For Thou art the true Light that enlightens and
sanctifies all, and all creation sings to Thee throughout the ages. Amen. **Second Prayerof St. Basil ihe Great** We bless Thee, O most high God and
Lord of mercy, Who art ever doing numberless great and inscrutable things with us,
glorious and wonderful; Who grantest to us sleep for rest from our infirmities, and repose
from the burdens of our much toiling flesh.We thank Thee that Thou hast not destroyed us
with our sins, but hast loved us as ever, and though we are sunk in despair, Thou hast
raised us up to glorify Thy power. Therefore we implore Thy incomparable goodness,
enlighten the eyes of our understanding and raise up our mind from the heavy sleep of
indolence; open our mouth and fill it with Thy praise, that we may be able undistracted to
sing and confess Thee, Who art God glorified in all and by all, the eternal Father, with
Thy only-begotten Son, and Thy all-holy and good and life-giving Spirit, now and ever, and
to the ages of ages. Amen. **Midnight Songto the Most Holy Mother of God** I sing thy grace, O Sovereign Lady,
and pray to thee to grace my mind. Teach me to step right in the way of Christ's
commandments. Strengthen me to keep awake in song and dispel the dream of despondency.
Release me, bound with bonds of sin, O bride of God, by thy prayers. Guard me by night and
also by day, and drive away my foes who defeat me. O Bearer of God, the Giver of Life,
enliven me who am deadened by passions. O bearer of the unfailing Light, enlighten my
blinded soul. O Marvellous Palace of the Master, make me a house of the Divine Spirit. O
Mother of the Healer, heal the perennial passions of my soul. Guide me to the path of
repentance, for I am tossed in the storm of life. Deliver me from eternal fire, from
wicked war and from hell. Expose me guilty as I am of many sins. Renew me, grown old from
senseless sins, O most Immaculate One. Present me untouched by all torments, and pray for
me to the Lord of all. Grant me to receive the joys of Heaven with all the Saints. O most
holy Virgin, hear the voice of thy unprofitable servant. Grant me torrents of tears, O
most Pure One, to cleanse my soul from impurity. I offer the groans of my heart to Thee
unceasingly. Strive for me, O Sovereign Lady. Accept my service of supplication and offer
it to compassionate God. O thou who art above the Angels, raise me above this world's
confusion. O Light-bearing heavenly Tabernacle, direct the grace of the Spirit in me. I
raise my hands and lips in thy praise, defiled as they are by impurity, O All-Immaculate
One. Deliver me from soul-corrupting evils, and fervently intercede to Christ to Whom is
due honour with adoration, now and ever, and to the ages of ages. Amen. **Prayer** **to our Lord Jesus Christ** My most merciful and all-merciful
God, Lord Jesus Christ, through Thy great love Thou didst come down and take flesh to save
all. And again, O Saviour, save me by Thy grace, I pray Thee, for if Thou shouldst save me
for my works, this would not be grace or a gift, but rather a duty. Indeed, in Thy
infinite compassion and unspeakable mercy, Thou O my Christ hast said: Whoever believes in
Me shall live and never see death. If faith in Thee saves the desperate, save me, for Thou
art my God and Creator. Impute my faith instead of deeds, O my God, for Thou wilt find no
deeds which could justify me, but may my faith suffice for all my deeds. May it answer for
and acquit me, and may it make me a partaker of Thy eternal glory. And may satan not seize
me, O Word, and boast that he has torn me from Thy hand and fold. O Christ, my Saviour,
whether I will or not, save me. Make haste, quick, quick, for I perish. Thou art my God
from my mother's womb. Grant me, O Lord, to love Thee now as once I loved sin, and also to
work for Thee without idleness, as I worked before for deceptive satan. But supremely
shall I work for Thee, my Lord and God, Jesus Christ, all the days of my life, now and
ever, and to the ages of ages. Amen. **Prayer** **to the Guardian Angel of Human Life** O Holy Angel, interceding for my
wretched soul and my passionate life, forsake me not, a sinner, nor shrink from me for my
intemperance. Give no place for the subtle demon to master me through the violence of my
mortal body. Strengthen my poor and feeble hand, and guide me in the way of salvation. O
holy Angel of God, guardian and protector of my wretched body and soul, forgive me for all
the insults I have given thee every day of my life, and for whatever sins I may have
committed during the past night. Protect me during the present day, and guard me from
every temptation of the enemy, that I may not anger God by any sin. And pray to the Lord
for me, that He may strengthen me in His fear, and make me, His slave, worthy of His
goodness. Amen. **Prayer** **to the Most Holy Mother of God** My most holy Lady, Mother of God, by
thy holy and all-powerful prayers banish from me, thy humble, wretched servant,
despondency, forgetfulness, folly, carelessness, and all impure, evil and blasphemous
thoughts out of my wretched heart and my darkened mind. And quench the flame of my
passions, for I am poor and wretched, and deliver me from my many cruel memories and
deeds, and free me from all their bad effects; for blessed art thou by all generations,
and glorified is thy most honorable name to the ages of ages. Amen. **Prayers to the
Mother of God** Virgin Mother of God, rejoice, Mary full of grace;
the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb,
for thou hast borne the Saviour of our souls. Under thy tender compassion we run, O Mother of God,
reject not our prayer in our trouble, but deliver us from harm, only pure, only blessed
one. Most glorious Ever-Virgin, Mother of
Christ our God, present our prayer to thy Son and our God and pray that through thee He
may save our souls. **Prayer for
Intercession** **to the Angelic Hosts** O Heavenly Hosts of holy Angels and
Archangels, pray for us sinners. **Prayer for
Intercession to all Saints** O glorious Apostles, Prophets and
Martyrs, and all Saints, pray for us sinners. **Prayerful
Invocation** **to the Saint whose Name we bear** Pray for me Saint.... (name), for
with fervour I come to thee, speedy helper and intercessor for my soul. **The Troparion to
the Cross** O Lord, save Thy people and bless Thine inheritance.
Grant victory over all enemies to Orthodox Christians and protect Thy people with Thy
Cross. It is truly meet and right to bless thee, the
Ever-Blessed and Most Pure Virgin and Mother of our God. More honourable than the
Cherubim, and incomparably more glorious than the Seraphim, thou who in virginity didst
bear God the Word, thee, true Mother of God, we magnify. Glory to the Father, and to the Son, and to the Holy
Spirit, now and ever, and to the ages of ages. Amen. Lord, have mercy. (3 times) God be gracious to us and bless us, and shine Thy
countenance upon us and have mercy upon us. This is the day which the Lord has
made; let us rejoice and be glad in it. **INTERCESSION** **Commemoration** **of
the Living and Departed** Remember, O Lord Jesus Christ our God, Thy mercies
and bounties which are from all eternity, and through which Thou didst become man and
didst will to suffer crucifixion and death for the salvation of those who rightly believe
in Thee, and having risen from the dead didst ascend into heaven, and sittest at the right
hand of God the Father and regardest the humble entreaties of those who call upon Thee
with all their heart: incline Thy ear, and hear the humble prayer of me, Thy worthless
servant, as the fragrance of spiritual incense, which I offer to Thee for all people. And
first remember Thy Holy Catholic and Apostolic Church, which Thou hast provided through
Thy Precious Blood. Confirm, strengthen, extend, and increase her, and keep her in peace,
and for ever proof against the power of hell. Calm the dissensions of the Churches, and
foil the plans of the powers of darkness, dispel the prejudice of the nations, and quickly
ruin and root out the risings of heresy, and frustrate them by the power of the Holy
Spirit. Bow. Save, O Lord, and have mercy on our president and
all in authority throughout the world, commanders-in-chief of armies and navies and
airfleets, governors of provinces and cities, and all the Christ-loving navies, armies and
police; protect their power with peace, and subdue under their feet every enemy and foe,
and speak peace and blessing in their hearts for Thy Holy Church, and for all Thy people,
and grant that in their calm we too may lead a quiet and peaceful life in true belief, in
all piety and honesty. Bow. Save, O Lord, and have mercy on Orthodox Patriarchs,
Metropolitans, Archbishops and Bishops, the Priests and Deacons, and all who serve in the
Church, and whom Thou hast ordained to feed Thy spiritual flock; and by their prayers,
have mercy on me, a sinner. Bow. Save, O Lord, and have mercy on our father (parish
priest or abbot of monastery), with all his brethren in Christ, and by their prayers have
mercy on me, wretch that I am. Bow. Save, O Lord, and have mercy on my Spiritual Father (name)
and by his prayers forgive me my sins. Bow. Save, O Lord, and have mercy on all workers in this
holy community, our brethren and all manual workers, and lay-workers, and farm labourers
of this monastery, and all Christians. Bow. Save, O Lord, and have mercy on my parents (names),
my brothers and sisters and all my relatives, and the neighbours of my family, and friends
- and grant them Thy worldly and spiritual goods. Bow. Save, O Lord, and have mercy according to the
multitude of Thy bounties, on all priests, monks and nuns, and on all living in virginity,
devotion and fasting, in monasteries, in deserts, in caves, on mountains, on pillars, in
hermitages, in the clefts of rocks, and right faith in every place of Thy dominion, and
devoutly serving Thee, and praying to Thee. Lighten their burden, console them in their
afflictions, and grant them strength, power and perseverance in their struggle, and by
their prayers grant me remission of sins. Bow. Save, O Lord, and have mercy on the old and the
young, the poor and destitute, the orphans and widows, the leper colonies, epileptics and
spastics, and those in sickness and sorrow, misfortune and tribulation, captives and
exiles, in mines and prisons and reformatories, and especially on those of Thy servants
suffering persecution for Thy sake and for the Orthodox Faith from godless peoples,
apostates and heretics. Visit, strengthen, comfort, and heal them, and by Thy power quickly
grant them relief, freedom and deliverance. Bow. Save, O Lord, and have mercy on our benefactors, who
have mercy on us and feed us, and relieve us of anxiety by giving us alms, and entrust us,
unworthy as we are, to pray for them; and give them Thy grace, and grant them all their
requests which conduce to salvation, and the attainment of eternal joy. Bow. Save, O Lord, and have mercy on the Fathers and
Sisters, and our Brotherhood, and on all Orthodox Christians who are messengers and
missionaries in Thy service, and are travelling. Bow. Save, O Lord, and have mercy on those whom I have
offended or scandalized by my madness or inadvertence, and whom I have turned from the way
of salvation, and whom I have led into evil and harmful deeds. By Thy divine providence
restore them again to the way of salvation. Bow. Save, O Lord, and have mercy on those who hate and
offend me, and do me harm, and let them not perish through me, a sinner. Bow. Illumine with the light of grace all
apostates from the Orthodox Faith, and those blinded by pernicious heresies, and draw them
to Thyself, and unite them to Thy Holy, Apostolic, Catholic Church. Bow. **For Those
Departed in Sleep** Remember, O Lord, those who have
departed from this life, Orthodox kings and queens, princes and princesses, Orthodox
Patriarchs, Metropolitans, Archbishops and Bishops, Priests and Deacons and those who have
served Thee in the Monastic State, and the laity of the Church, and the blessed founders
of all Churches and monasteries, and grant them rest with the Saints in Thy eternal
dwellings. Bow. **Prayer of
Rememberance** **for Parents Departed in Sleep** Remember, O Lord, the souls of Thy
servants who have departed in sleep, my parents (names), and all my relatives
according to the flesh; forgive them every transgression, voluntary and involuntary; grant
them the Kingdom and a part in Thy eternal joys, and the delight of Thy blessed and
everlasting life. Bow. **Prayer for
Monastery Brotherhood** Remember, O Lord, also all Fathers
and Sisters and members of our Brotherhood who have departed in sleep with the hope of
resurrection and eternal life, and all Orthodox Christians who lie here and in all the
world, and with Thy Saints give them repose where the light of Thy Face shines and have
mercy on us, for Thou art good and the Lover of men. Amen. Bow. At the end, say three times: Grant, O Lord, remission of all sins to our Fathers,
Brothers and Sisters departed in the faith and hope of resurrection, and grant them memory
eternal.
!This is an encrypted Tiddler
the new computer I want https://www.dell.com/en-us/shop/gaming-laptops/new-dell-g5-15-special-edition-gaming-laptop/spd/g-series-15-5505-laptop
!This is an encrypted Tiddler
[[Poetry]] | [[Haiku]]
Discussion online
Say everything on your mind
Say nothing at all
nesslabs.com
Open source and self-hosted alternatives to Roam Research
4-5 minutes
As you may know by now, I’m a massive fan of Roam Research. It’s a fantastic tool for thought and has the potential to become a powerful enabler of collective intelligence. But for various reasons, you may not want to rely on a SaaS to save your notes. For instance, a friend of mine mentioned their notes were mostly work-related and highly confidential—they just can’t put that data on a third-party’s server. If you are looking for a free, open source, and self-hosted alternative to Roam Research, here are a few options.
TiddlyBlink, a Roam Research alternative
TiddlyBlink. Based on TiddlyWiki, this is the most solid and intuitive alternative I have found. Linking to an inexisting page will create a new one, backlinks are shown as references below each note, you can open notes side by side, easily search through pages, and more. You can keep on using [[ to link to pages or create new pages, so you won’t be lost. Some people even use it as a static site generator. It’s completely open source, private, offline, and customisable. Because it’s just one HTML + JS file, you also have many options to host it in the cloud or sync it with Dropbox. It’s better to have a basic understanding of how the command line works to set it up, but then you’re good to go. Here is a short guide to get started.
Idea Stew. From the same creator as TiddlyBlink, this is another TiddlyWiki add-on for people who tend to take lots of notes from source material (as opposed to writing essays or other original content). In the words of Dave Gifford: “Idea Stew speeds up the process for taking notes on a source and indexing the note by topic by having the note be a bridge between the source and the topic.” Watch the walk-through video.
TiddlyRoam. Want the knowledge graph? TiddlyRoam combines TiddlyWiki, TiddlyBlink, and TiddlyMap so you have most of the pure text-based functionalities of Roam as well as a live map of all the nodes in your knowledge graph. You can also install TiddlyMap separately.
Org-roam. People are raving about this one. After watching this amazing video by Matt Williams I was both excited about the software and defeated by the idea of going through all these hoops just to get to try it. It looks great but unstable, so I haven’t installed it. If you’re okay with being a bit more of an early adopter and have your install fail because of some incompatibilities, Org-roam is almost an exact replica of Roam.
DocuWiki. This is a modular wiki which supports backlinks by default. Great community and fairly simple to install (if you have ever installed WordPress it’s a similar process). Install one of the inclusion plugins to easily embed a page inside another. There is also a modified version called DocuRoam, which supports transclusion out of the box, as well as daily summaries, revision history, and markdown. Watch the demo video or see some screenshots.
Other alternatives include Zim, Freeplane, Trillium, and Wikidpad, but they all lack many of the core features of Roam, and tend to be either too close to mind maps or too hierarchical. I haven’t tried any of them.
Finally, Connor Finley implemented some of the key functionalities of Roam and published the code on GitHub.
Roam Research free alternative on GitHub
It’s missing data binding, individual blocks, and the knowledge graph, but if you want to contribute you could submit a pull request.
Please keep in mind that by using a self-hosted note-taking tool, you won’t be able to collaborate as easily with other people—you can read about the future of collective thinking Conor White Sullivan envisions in our interview. You also have a higher risk of breaking something. The ease of use and low maintenance cost is part of the appeal of a SaaS such as Roam. But an open source tool—especially the ones that allow for metaprogramming such as TiddlyWiki—will let you tinker and create the tool you need.
[[Coding]]
https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/index.html
[[Prayer]] [[Optina Monastery]]
! ''The Cell Rule of Five Hundred of the Optina Monastery''
!!!!//''In ADDITION to the church services: the Liturgy, Matins, and Vespers with Compline, which all of the brethren of the monastery are obligated to attend, many of them daily read in their cells.''//
!!! Scripture Reading:
* One chapter from the Gospel in order, beginning first with the Gospel of Matthew, to the last chapter of the Gospel of John,
* Two chapters from the Epistle, likewise in order, beginning with the Acts of the holy Apostles and ending with the last chapter of the Apocalypse of Saint John the Theologian. The last seven chapters of the Apocalypse are read one a day.
* One kathisma a day of the Psalter, beginning with the first and ending with the last.
!!!!//''In this way the last chapter of the Apocalypse is read on exactly the same day as the last chapter of the Gospel of John.''//
!!!!//''After the completion of the reading of the whole New Testament, in this manner they begin again from the first chapters a new cycle of reading in precisely the same order.''//
In addition to this, they perform the so-called:
! ''Cell Rule of Five Hundred''
!!!!//''It is begun with the customary three prostrations performed at the commencement of every rule of prayer, both in church and in one's cell, with the prayers:''//
* God, be merciful to me a sinner.
* God be gracious unto my sins and have mercy on me.
* O Thou Who hast fashioned me, Lord, have mercy. I have sinned beyond measure, O Lord, forgive me.
* In one's cell a fourth prostration is added together with the prayer: My Lady, Most Holy Theotokos, save me a sinner.
!!!!//''Then the following prayers are said:''//
!!''Trisagion Prayers''
Through the Prayers of our holy Fathers, Lord Jesus Christ our God, have mercy on us. Amen.
Glory to Thee, our God, glory to Thee.
Heavenly King, Comforter, Spirit of Truth, Who art everywhere present and fillest all things, Treasury of good gifts and Giver of Life, come and abide in us, and cleanse us of all impurity, and save our souls, O Good One.
Holy God, Holy Mighty, Holy Immortal One, have mercy on us. (thrice)
Glory to the Father, and to the Son, and to the Holy Spirit, now and ever, and to the ages of ages. Amen.
Most Holy Trinity, have mercy on us. O Lord, wash away our sins, O Master, pardon our transgressions. O Holy One, visit and heal our infirmities, for Thy Name's sake.
Lord, have mercy. //(thrice)//
Glory to the Father, and to the Son and to the Holy Spirit, now and ever, and to the ages of ages. Amen.
Our Father, Who art in heaven, hallowed be Thy Name. Thy Kingdom come. Thy will be done, on earth as it is in heaven. Give us this day our daily bread. And forgive us our debts as we forgive our debtors. And lead us not into temptation, but deliver us from the evil one. For Thine is the kingdom, the power and the glory, of the Father, and of the Son, and of the Holy Spirit, now and ever, and to the ages of ages. Amen.
Lord, have mercy. //(12 times)//
Glory to the Father, and to the Son and to the Holy Spirit, now and ever, and to the ages of ages. Amen.
O come, let us worship God our King.
O come, let us worship and fall down before Christ our King and God.
O come, let us worship and fall down before Him, Christ the King and our God.
!!! ''Psalm 50''
Have mercy on me, O God, according to Thy great mercy; and according to the multitude of Thy compassions, blot out my transgression. Wash me thoroughly from my iniquity, and cleanse me from my sin. For I realize my iniquity, and my sin is before me continually. Against Thee only have I sinned I and done evil in Thy sight, that Thou mayest be justified in Thy words and win when Thou art judged.For, behold, I was conceived in iniquities, and in sins did my mother desire me. For, lo, Thou lovest truth; the unknown and secret things of Thy wisdom Thou hast made known to me. Thou shalt sprinkle me with hyssop, and I shall be cleansed; Thou shalt wash me, and I shall become whiter than snow.Thou shalt make me hear joy and gladness; the bones that have been humbled will rejoice. Turn Thy face from my sins, and blot out all my iniquities.Create in me a clean heart, O God; and renew a right spirit within me. Cast me not away from Thy face, I and take not Thy Holy Spirit from me. Restore to me the joy of Thy salvation, and confirm me with a princely spirit. I shall teach Thy ways to the lawless and the godless will return to Thee. Deliver me from blood, O God - O God of my salvation - and my tongue shall extol Thy justice. O Lord, Thou wilt open my lips, and my mouth shall declare Thy praise. For if Thou hadst desired sacrifice, I would have given it; but burnt offerings do not please Thee. The sacrifice for God is a contrite spirit; a contrite and humble heart God will not despise. Gladden Sion, O Lord, with Thy good will; and let the walls of Jerusalem be built. Then Thou wilt be pleased with the sacrifice of righteousness, the oblation and burnt offerings; then they will offer calves on Thine altar.
!!! ''Symbol of Faith''
I believe in one God, Father, Almighty, Maker of heaven and earth, and of all things visible and invisible: And in one Lord Jesus Christ, the only-begotten Son of God; begotten of the Father before all ages; Light from Light, True God from True God, begotten, not made, of One Essence with the Father, through Whom all things were made: Who for us men, and for our salvation, came down from Heaven, and was incarnate by the Holy Spirit and the Virgin Mary, and became Man: And was crucified for us under Pontius Pilate, and suffered and was buried: And He rose on the third day according to the Scriptures: And ascended into Heaven, and sits at the right hand of the Father: And He is coming again with glory to judge the living and the dead; And His Kingdom will have no end: And in the Holy Spirit, the Lord, the Giver of the Life, Who proceeds from the Father, Who with the Father and the Son is equally worshipped and glorified, Who spoke by the Prophets: And in One, Holy, Catholic and Apostolic Church. I confess one Baptism for the remission of sins. I look for the Resurrection of the Dead; And the life of the Age to come. Amen.
!!! ''First group''
Lord Jesus Christ, Son of God, have mercy on me a sinner. //(100 times)//
!!!!//''In this group of one hundred:''//
* the first ten prayers are likewise made with full prostrations
* and the following twenty with full bows,
* the remaining without bows only the Sign of the Cross.
* The last and hundredth prayer is made with a full prostration
My Most Holy Lady Theotokos, by thy holy and all-powerful entreaties dispel from me, thy humble, wretched servant, despondency, forgetfulness, folly, carelessness, and all impure, evil, and blasphemous thoughts out of my wretched heart and my darkened mind. And quench the flame of my passions, for I am poor and wretched, and deliver me from my many cruel memories and deeds, and free me from all evil actions: for blessed art thou by all generations, and glorified is thy most honourable name unto the ages of ages. Amen.
!!!!//''At the end of this prayer a full prostration.''//
!!! ''Second group''
!!!!//''Repeat the first group.''//
!!! ''Third group''
!!!!//''Repeat the first group.''//
!!! ''Fourth group''
My Most Holy Lady Theotokos, save me a sinner. //(100 times)//
!!!!//''In this group of one hundred:''//
* the first ten prayers are likewise made with full prostrations
* and the following twenty with full bows,
* the remaining without bows only the Sign of the Cross.
* The last and hundredth prayer is made with a full prostration
My Most Holy Lady Theotokos, by thy holy and all-powerful entreaties dispel from me, thy humble, wretched servant, despondency, forgetfulness, folly, carelessness, and all impure, evil, and blasphemous thoughts out of my wretched heart and my darkened mind. And quench the flame of my passions, for I am poor and wretched, and deliver me from my many cruel memories and deeds, and free me from all evil actions: for blessed art thou by all generations, and glorified is thy most honourable name unto the ages of ages. Amen.
!!!!//''At the end of this prayer a full prostration.''//
!!! ''Fifth group''
O Holy Angel of God, my Guardian, pray to God for me a sinner. //(50 times)//
!!!!//''In this group of fifty:''//
* the first 5 prayers are likewise made with full prostrations
* and the following 10 with full bows,
* the remaining without bows only the Sign of the Cross.
* The last and hundredth prayer is made with a full prostration
My Most Holy Lady Theotokos, by thy holy and all-powerful entreaties dispel from me, thy humble, wretched servant, despondency, forgetfulness, folly, carelessness, and all impure, evil, and blasphemous thoughts out of my wretched heart and my darkened mind. And quench the flame of my passions, for I am poor and wretched, and deliver me from my many cruel memories and deeds, and free me from all evil actions: for blessed art thou by all generations, and glorified is thy most honourable name unto the ages of ages. Amen.
!!!!//''At the end of this prayer a full prostration.''//
!!! ''Sixth group''
All Saints, pray to God for me a sinner. //(50 times)//
!!!!//''In this group of fifty:''//
* the first 5 prayers are likewise made with full prostrations
* and the following 10 with full bows,
* the remaining without bows only the Sign of the Cross.
* The last and hundredth prayer is made with a full prostration
My Most Holy Lady Theotokos, by thy holy and all-powerful entreaties dispel from me, thy humble, wretched servant, despondency, forgetfulness, folly, carelessness, and all impure, evil, and blasphemous thoughts out of my wretched heart and my darkened mind. And quench the flame of my passions, for I am poor and wretched, and deliver me from my many cruel memories and deeds, and free me from all evil actions: for blessed art thou by all generations, and glorified is thy most honourable name unto the ages of ages. Amen.
!!!!//''At the end of this prayer a full prostration.''//
!!! ''Dismissal''
It is truly meet to call thee blessed, the Theotokos, the ever-blessed and all-immaculate and Mother of our God. More honourable than the Cherubim, and beyond compare more glorious than the Seraphim, thee who without corruption gavest birth to God the Word,the very Theotokos, thee do we magnify.
!!!!//''At the end of this prayer a full prostration.''//
Glory to Thee, Christ God, our Hope, glory be to Thee.
Glory to the Father, and to the Son and to the Holy Spirit, now and ever, and to the ages of ages. Amen.
Lord, have mercy. //(3)//
Through the prayers of our Holy Fathers, Lord Jesus Christ our God, have mercy on us. Amen.
---
''On weekdays all of the above-mentioned bows and prostrations are performed.''
---
* On the days of Pentecost,
* on days when there is the Polyeleos,
* on Forefeasts and for the duration of the Feasts,
* on days when the Great Doxology is chanted at Matins
* and in the church services full prostrations are dispensed with,
''in like manner in one's cell the full prostrations are replaced with full bows, as is also the case on all days throughout the year when there is a Vigil.''
---
* On the last two days of Passion Week,
* for all of Bright Week,
* and from the twenty-fourth of December until the seventh of January,
''this cell rule is completely dispensed with, as is likewise the case on all Sundays throughout the year, even if the all-night Vigil has not been performed, but only Vespers and Matins, as is done in winter.''
---
@@color:red;
!!!''Any change in the composition of this cell rule, as well as deduction from it or addition to it, is left to the will and blessing of the Elder or Spiritual Father of the individual.''@@
<<tabs "[[Enchiridion of Sophronios]] [[Prologue of Ochrid]] [[Z :: How a Monk Should Act]] [[How to pray the Orthodox Rosary]] [[Z :: How One Should Converse]] [[Canon-de-la-Resurrection]] [[Daily Matins]] [[Daily Vespers]] [[Festial Matins]] [[Great Vespers]] [[Greek Horologion]] [[Lenten Matins]] [[Syriac Typikon]] " "[[Enchiridion of Sophronios]]" "" "tc-vertical" "" "" "no">>
[[Blogs]] | [[Fr Neilos]]
https://panagiaquicktohear.com/
Compassed with perils, let us flee to the icon of God’s most pure Mother and her infinite goodness, while crying from the depths with grief and pain of soul: Swiftly hearken to our prayers, O immaculate Virgin, for thou hast been rightly called Quick to Hear for thy mercies; for thou art our defender in all need, our ready helper in every adversity.^^1^^
When any given person begins a blog site it is obvious they have something they would like to share with others. They feel that they have found something good and worthwhile, something that could perhaps be of some benefit to others. Often someone just wants share their life and reflections with those who are close. And so, an Orthodox Christian and a monk (who at times has been asked to share some reflections I have authored) I too, have decided to post a blog, in order—so-to-speak—to share things that are close to me with those who are close to me. I believe this site should be dedicated to our most pure Lady the Theotokos. It is especially to her icon “She Who Is Quick to Hear” that this site is dedicated to. Thus it is that this icon and the tropar are above.
So, in setting out upon this I refer to the Elder John of Valaamo, who in writing to a correspondent once said not to accept his advice if it was inconsistent with the Holy Scriptures and the message of the Holy Fathers.
Father Neilos
The Greek Archdiocese Metropolis of Denver<br>
St. Arsenius Hermitage
P.O. Box 1683
Decatur, TX 76234
^^1^^This tropar is from “The Supplicatory Canon to our Lady Quick to Hear” published by the Holy Transfiguration Monastery, Brookline, MA. http://htmp.org/
!!Reference:
Source:
* Keywords: [[Permanent Notes]]
**
* Relevant Notes:
**
---
!!Notes:
[[CRM]] | [[Functinoal Programming]] | [[Coding]] | [[Lambda Calculus]]
[[Bookmarks]] https://homepages.inf.ed.ac.uk/wadler/
!This is an encrypted Tiddler
[[Prayer]]
Grant unto me, O Lord, that with peace of mind I may face all that this new day is to bring. Grant unto me to dedicate myself completely to Thy Holy Will. For every hour of this day, instruct and support me in all things. Whatsoever tidings I may receive during the day, do Thou teach me to accept tranquilly, in the firm conviction that all eventualities fulfill Thy Holy Will. Govern Thou my thoughts and feelings in all I do and say. When things unforeseen occur, let me not forget that all cometh down from Thee. Teach me to behave sincerely and rationally toward every member of my family, that I may bring confusion and sorrow to none. Bestow upon me, my Lord, strength to endure the fatigue of the day, and to bear my part in all its passing events. Guide Thou my will and teach me to pray, to believe, to hope, to suffer, to forgive, and to love.
Amen
[[Poetry]] | [[Haiku]]
Revolving planet
temporary vanity
preparing the soul
!This is an encrypted Tiddler
<$list filter="[has:field[encrypted]]">
</$list>
! SAINT MARY OF EGYPT
The biography of this wonderful saint was written by St. Sophronius, the Patriarch of Jerusalem. Once, during Great Lent, a certain priest-monk (heiromonk), the Elder Zosimas, withdrew into the wilderness beyond the Jordan, a twenty-day trek. Suddenly, he caught sight of a human being with a withered and naked body, whose hair was as white as snow, and who fled from Zosimas's sight. The elder ran for a long while, until this person stopped at a brook and cried out: "Abba Zosimas, forgive me for the sake of the Lord. I cannot face you, for I am a naked woman." Zosimus then threw his outer garment to her, which she wrapped around herself, and then she showed herself to him. The elder was frightened upon hearing his name spoken from the mouth of this woman whom he did not know. Following his prolonged insistence, the woman related her life's story. She was born in Egypt, and at the age of twelve began to live a life of debauchery in Alexandria, where she spent seventeen years in this perverted way of life. Driven by the adulterous flame of the flesh, she one day boarded a boat which was sailing for Jerusalem. Arriving at the Holy City, she wanted to enter the church in order to venerate the Honorable Cross, but some invisible force restrained her, preventing her from entering the church. In great fear, she gazed upon the icon of the All-holy Mother of God in the narthex (vestibule) and prayed that she be allowed to enter the church to venerate the Honorable Cross, all the while confessing her sinfulness and uncleanness, and promising that she would go wherever the All-pure One would direct her. She was then permitted to enter the church. Having venerated the Cross, she went back to the narthex and, before the icon, gave thanks to the Mother of God. At that very moment she heard a voice saying: "If you cross over Jordan you will find true peace!" Immediately she purchased three loaves of bread and started out for the Jordan, arriving there that same evening. The next day she received Holy Communion in the Monastery of St. John and crossed over the Jordan River. She remained in the wilderness for forty-eight years in great torment and fear, struggling with passionate thoughts as though with wild beasts. She ate vegetation. After she finished her narrative, when she stood for prayer, Zosimas saw her levitate in the air. She begged him to bring her Holy Communion the following year on the shore of the Jordan, where she would then come to receive it. The following year Zosimas arrived with Holy Communion on the shore of the Jordan in the evening. He wondered how the saint would cross the Jordan. Then, in the light of the moon, he saw her approach the river, make the sign of the Cross over it and walk upon the water as though upon dry land. After Zosimas communed her, she begged him to come the following year to the same brook where they had first met. Zosimas came and discovered her lifeless body on that spot. Above her head in the sand was written: "Abba Zosimas, bury the body of the humble Mary on this site; render dust to dust. I died on April 1, the same night of the saving suffering of Christ, after having received Communion of the Divine Mysteries." From this inscription Zosimas first learned her name and the other and awesome miracle--that the previous year, when she received Holy Communion, she arrived that same night at this brook, which took him twenty days to reach. Thus, Zosimas buried the body of this wonderful saint, Mary of Egypt. When he returned to the monastery, Zosimas related the entire story of her life and the miracles which he had personally witnessed. Thus the Lord knows how to glorify penitent sinners. St. Mary is also commemorated on the Fifth Sunday of Great Lent. The Church holds her up as an example to the faithful during these days of the Fast as a model of repentance. She reposed in about the year 530 A.D.
! SAINT MELETION, BISHOP OF SARDIS IN ASIA MINOR
Meletion was a celebrated shepherd of the second-century Church. Governing with great ability, he endeavored to gather all the books of Sacred Scripture into a single codex. By his meekness and piety, Meletion also labored to restore peace in the Church of Laodicea, which was troubled by a controversy regarding the celebration of Pascha (The Feast of the Resurrection). Besides this, he defended Christianity against the pagans. He traveled to Rome in about the year 170 A.D., to submit to Emperor Marcus Aurelius a written Apologia (Defense) of the Faith and of the Christian Church. St. Meletion--this learned, pious and zealous man--reposed peacefully in the Lord in the year 177 A.D.
! THE VENERABLE PROCOPIUS THE CZECH
Procopius was born in Hotish in what is today the Czech Republic. He was ordained a priest, then retreated to a mountain to live according to the model of the Eastern hermits. Herzog Ulrich (the Duke) accidentally came upon Procopius and assisted him in establishing the Monastery of St. John the Forerunner by the Sazava River. This holy man died in the year 1053 A.D.
! HYMN OF PRAISE
! SAINT MARY THE EGYPTIAN
A wonderful penitent, self-tormentor,
Mary hid herself from the face of men.
Yes, O sinful me,
By passion darkened.
Passions are beasts which eat at our heart;
Like serpents they secretly weave in us a nest.
Yes, O sinful me,
By passion consumed!
In order to save sinners, Thou didst suffer, O Christ,
Do Thou now not loathe me, the impure one!
Hearken to the cry of Mary,
The most-sinful of all!
The Lord showed compassion, He healed Mary;
Her darkened soul He whitened as snow.
Thanks be to Thee, O All-good One,
O Lord most dear!
Thou didst cleanse an impure vessel and gild it with gold;
Thou didst fill it to overflowing with Thy grace.
This is true mercy.
To Thee, O God, be glory!
And Mary became radiant with the Spirit,
Girded by strength as an angel of God,
By Thy power, O Christ,
By Thy mercy, Most-pure!
What is this fragrance in the awesome wilderness,
Like beautiful incense in a temple coffer?
Mary breathes it,
She exudes sanctity!
! REFLECTION
Why is it that much is said and written about the sufferings of holy men and holy women? Because the saints alone are considered victors. Can anyone be a victor without conflict, pain and suffering? In ordinary earthly combat, no one can be considered victorious or heroic who has not been in combat, endured much or suffered greatly. The more so in spiritual combat, where the truth is known, and where self-boasting not only does not help at all but, indeed, hinders it. He who does not engage in combat for the sake of Christ, either with the world, with the devil or with one's self, how can he be counted among the soldiers of Christ? How then is it with Christ's fellow victors? St. Mary spoke about her savage spiritual combat to Elder Zosimas: "For the first seventeen years in this wilderness, I struggled with my deranged lusts as though with fierce beasts. I desired to eat meat and fish, which I had in abundance in Egypt. I also desired to drink wine, and here I did not have even water to drink. I desired to hear lustful songs. I cried and beat my breast. I prayed to the All-pure Mother of God to banish such thoughts from me. When I had sufficiently wept and beat my breast, it was then that I saw a light encompassing me on all sides, and a certain miraculous peace filled me."
! CONTEMPLATION
Contemplate the Lord Jesus in death:
# How there lay in the grave the lifeless body of Him Who, while living, gave life to the dead;
# How against Him, even in death, there raged the hatred of His enemies;
# How His disciples locked themselves in a house //for fear of the Jews// (John 20:19).
! HOMILY
! on the fulfillment of the great prophecy
"Like a lamb led to the slaughter" (Isaiah 53:7).
Through many centuries of time, the discerning Prophet Isaiah foresaw the awesome sacrifice on Golgotha. From afar he saw the Lord Jesus Christ led to the slaughter as a lamb is led. A lamb permits itself to be led to the laughter as it is led to the pasture: defenseless, without fear, and without malice. Thus, our Lord Christ was led to the slaughter without defense, without fear, and without malice. He does not say, "Men, do not do this!" nor does He ask, "Why are you doing this to Me?" nor does He condemn anyone. Nor does He protest. Nor does He become angry. Nor does He think evilly of His judges. When, from the crown of thorns, His blood flowed, He was silent. When His face was soiled from being spat upon, He was silent. When His Cross became heavy along the way, He endured. When His pain became unbearable on the Cross, He complained not to men but to the Father. When He breathed His last, He directed His gaze and sighs toward heaven and not toward earth. For the source of His strength is heaven and not earth. The source of His consolation is in God and not in men. His true homeland is the Heavenly Kingdom and not the earthly kingdom.
//Behold, the Lamb of God, which taketh away the sin of the world// (John 1:29). This was the first exclamation of St. John the Baptist when he saw the Lord. And, behold, now on Golgotha that prophecy was fulfilled. Behold, under the weight of the sins of the entire world, the Lamb of God lay slaughtered and lifeless.
O brethren, this costly sacrifice was made for our sins as well. The blood of this sinless and meek Lamb was destined for all times and all generations, from the first to the last person on earth. Christ also felt the pains on the Cross for our sins, even those of the present day. He also wept in the Garden of Gethsemane for our wickedness, our weakness and our sinfulness. He also destined His blood for us. Brethren, let us not then despise the indescribable costly price by which we have been redeemed. Because of this sacrifice of Christ we, indeed, have some worth as people. Without this sacrifice, or if we disavow this sacrifice, our worth, by itself alone, is equal to nothing. It is equal to smoke without a flame or a cloud without light.
O Lord, unequaled in mercy, have mercy on us also!
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS TERENCE (TERENTIUS), AFRICANUS, MAXIMUS, POMPEIUS (POMPILIUS) AND THIRTY-SIX OTHERS WITH THEM
They all suffered for Christ and were crowned with wreaths of glory during the reign of Emperor Decius. By order of the emperor, the governor of Africa announced to the people that everyone had to offer sacrifices to the idols. Those who resisted, the governor threatened with cruel tortures. Upon hearing about these threats, many fell away from the Faith and worshipped the idols. However, these forty remained unwavering in their faith and were subjected to torture. St. Terence encouraged his companions, saying: "Brothers, let us be on guard that we do not deny Christ our God, lest He deny us before His Heavenly Father and the holy angels." The governor divided them into two groups. Thirty-six of them, after being flogged and having their skin scraped and salt poured into their open wounds, were all beheaded. The first four were cast into prison with heavy iron chains around their necks, hands and feet. An angel of God appeared in the prison and touched the chains of the shackled men, and the chains fell off. After that, the angel prepared a bountiful table for them and fed them. Once again, they were brought out and tortured, and again they were imprisoned. Then the governor ordered the soothsayers to gather as many poisonous, loathsome creatures as possible, such as snakes and scorpions, and to lock them up in the same cell with the martyrs. The loathsome creatures did not touch the God-pleasers, but rather lay huddled in the corner, where they remained for three days. On the third day, when the door of the cell was opened, the repulsive creatures rushed out and bit the soothsayers. Finally, the governor pronounced the death penalty upon the four martyrs. When they were brought out to be beheaded, they joyfully chanted psalms and praised God, Who had vouchsafed them a martyr's death. They suffered honorably in the year 250 A.D., and were found worthy of the Kingdom.
! THE SIX THOUSAND MARTYRS IN GEORGIA
In the desert of St. David of Garesja in Georgia, there were twelve monasteries, in which many monks lived the ascetic life for centuries. In 1615 A.D., the king of Persia, Shah Abbas I, attacked Georgia, devasted it and beheaded many Christians. Once, while hunting early in the morning on the Feast of the Resurrection, Shah Abbas noticed many lights in the mountains. They were the monks from the twelve monasteries, in procession around the Church of the Resurrection with lighted tapers in hand. When the Shah discovered that they were monks, he asked in amazement: "Has not all of Georgia been given over to the sword?" He then ordered his solders to immediately behead all the monks. At that moment, an angel of God appeared to Abbot Arsenius and informed him of their impending death. Arsenius informed his brethren. They all received the All-pure Mysteries (Communion) and prepared themselves for death. Suddenly, the assailants arrived and cut to pieces first the abbot, who was the first to come out, and then the rest. They all suffered honorably and were crowned with incorruptible wreaths in the year 1615 A.D. Thus ended the history of these famous monasteries, which, for more than a thousand years, had served as the spiritual hearth of enlightenment for the Georgians. Only two of the monasteries exist today: St. David and St. John the Forerunner. The Georgian King Archil gathered the relics of the monks and honorably interred them. Even today, these relics emit a sweet-smelling myrrh (oil) and heal the sick.
! HYMN OF PRAISE
! THE SIX THOUSAND MARTYRS OF GEORGIA
Six thousand God-pleasers
Rejoicing in the glorious Resurrection;
Six thousand human hearts,
A whole flock of innocent lambs!
With tapers they processed around the church,
Singing sweet hymns to the Resurrection,
Until a terrible wolf, from the midnight darkness,
Attacked together with his hungry pack,
To slaughter the innocent lambs.
Yet these were not lambs, but shepherds
Of the suffering Georgian race:
Saints and enlighteners,
All monks, wonderful ascetics.
Arsenius foresaw death for all,
And spoke thus to the monks:
"Brethren of mine, sons of Georgia,
The hour has come to drink of the cup,
The sweet cup of suffering for Christ.
Behold, the wolves rush through the mountains.
Faster, brethren, let us rush to All-pure Communion,
And then to a baptism of blood!
Repent for yourselves and for the people,
And direct all your thoughts to God.
Forgive those who have done you wrong:
For us the gates of Paradise are opening--
Let every brother forgive his brother.
Christ is Risen--that we may resurrect.
We are faithful to Him unto death!"
! REFLECTION
When a man detaches his mind from earth and opens it toward God with the desire to please Him, then God reveals His will in various ways. St. Peter of Damascus writes: "If a man has a full intention to please God, then God teaches him His will either through thoughts, through some other person, or through Holy Scripture." Such a man becomes attentive and keen, and awaits God's promptings from within and from without. For him, chance ceases to exist. The whole world becomes as a ten-stringed harp, which does not give out a single sound without the finger of God.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How He appeared to two of His disciples on the road to Emmaus, and they did not recognize Him;
# How the hearts of these two disciples burned within them when He spoke to them, and how they recognized Him only when He blessed and broke bread for them;
# How the Lord suddenly disappeared before their eyes.
! HOMILY
! on living hope
"Blessed be the God and Father of our Lord Jesus Christ, which according to His abundant mercy hath begotten us again unto a living hope by the Resurrection of Jesus Christ from the dead" (1 Peter 1:3).
Brethren, who has dead hope and who has living hope? He who hopes in dead things has a dead hope. He who hopes in the Living God has a living hope.
Further, he who hopes in himself and in other people has a dead hope. He who hopes in the Living God has a living hope.
Further, he who hopes in luck and well-being in this brief earthly existence, and who does not extend his hope beyond the grave has a dead hope. He who hopes in the resurrection and eternal life in the Kingdom of Heaven has a living hope.
Truly, a living hope is better than a dead hope; as life is better than death; as light is better than darkness; as health is better than sickness; as understanding is better than ignorance.
But Who brought and showed man that living hope--Who and how? The Apostle Peter gives an answer to that question: Our Lord Jesus Christ, by His Resurrection from the dead. No one else but the Lord Jesus Christ and by nothing else than His Resurrection from the dead. By His Resurrection, the Lord gave wings to the pathetic hopes of man and extended those hopes beyond the grave, showing man the goal and purpose and fruit beyond the grave.
All of this is confirmed not by a credulous man, but by an apostle who wavered for a long while in his faith and who denied Christ three times. That is why St. Peter's testimony of the resurrected Lord and the significance of His Resurrection is inexpressibly priceless for us.
O resurrected Lord, Thou Victor over death, uproot from us dead hope, and plant a living hope in us through the prayers of St. Peter, Thy great apostle.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR [PRIESTLY-MARTYR] ANTIPAS, BISHOP OF PERGAMUM IN ASIA MINOR
Antipas is mentioned in the Book of Revelation as, //Antipas, my faithful martyr, who was slain among you, where Satan dwelleth// (Revelation 2:13), that is, in the city of Pergamum. The inhabitants of this city lived in the darkness of idolatry and in extreme impurity. They were slaves to passions. They were slanderers, tyrants and incestuous people. In other words, they were the servants of Satan. Here among them lived Antipas, "as a light in the midst of darkness, as a rose among thorns and as gold in the mire." In this city, he who captured and killed a Christian was deemed good and just. The totality of their pagan belief consisted of soothsaying, interpretation of dreams, serving demons and extreme perversion. Being frightened of Antipas as of fire, the demons appeared to the soothsayers in a dream and confessed how afraid they were of Antipas--and how, because of him, they had to depart from the city. The pagan priests assembled a large number of people against Antipas and interrogated him, trying to force him to deny Christ and worship idols. Antipas said to them: "When your so-called gods, lords of the universe, are frightened of me, a mortal man, and must flee from this city, do you not recognize by this that your faith is a delusion?" The saint spoke to them further about the Christian Faith as the One, True, Saving Faith. They became enraged as wild beasts and dragged the aged Antipas to the temple of Artemis, before which stood an ox cast in bronze. They heated the bronze ox and hurled the servant of God inside. From within the fiery ox, St. Antipas glorified God with thanksgiving, like Jonah in the belly of the whale or the Three Youths in the fiery furnace. Antipas prayed for his flock and for the entire world, until his soul parted from his weakened body and ascended among the angels into the Kingdom of Christ. He died in torments and was crowned with unfading glory in the year 92 A.D.
! THE HOLY MARTYRS PROCESSUS AND MARTINIAN
Processus and Martinian were jailers in the Roman prison where the Apostles Peter and Paul were imprisoned. Hearing the words and witnessing the miracles of the apostles, they were baptized, and released the apostles from prison. The apostles left Rome, but the Lord appeared to Peter on the way. "Lord, where are you going?" Peter asked. [(Wither goest Thou?--Domine Quo Vadis?)] The Lord answered: "I am going to Rome, to be crucified a second time." Ashamed, the apostles returned to Rome, where they were apprehended and slain. Also slain with the apostles were these two brave martyrs, Processus and Martinian.
! HYMN OF PRAISE
! SAINT ANTIPAS!
In a fiery ox as in a luminous temple,
Antipas, the Christian, does not suffer loneliness:
In his pure heart the Lord abides.
The fire does not burn him, nor is he afraid of it.
For Christ the saint patiently endures all,
And his prayers to Christ ascend from the fire:
"O All-powerful Christ, King of all ages,
For these sufferings, a hundredfold thanks be to Thee!
Let burn with fire all that is sinful in me,
That I may be more precious according to heavenly worth.
I pray to Thee, O Savior, protect my flock
In this town, in this awful dung!
May my blood strengthen them in the Faith,
And may their hearts be fixed on Thee.
And for the heathen, also, I pray to Thee, O Blessed One:
Tear them away, once and for all, from demonic lies.
I pray for all sinners who mock Thy law:
Direct them to serve none but Thee.
Behold, all is in the power of Thy holy will.
Finally, I further pray: may it be better for the Church!"
! REFLECTION
"There can be no rest for those on earth who desire to be saved," says St. Ephraim the Syrian. The struggle is unceasing, be it either external or internal. The adversary acts at times visibly, through men and other things, and at other times invisibly, through thoughts. At times the adversary appears openly and behaves brutally and cruelly like an enemy and, at other times, under the guise of a flattering friend, he seduces by shrewdness. That which occurs in battle between two opposing armies also occurs to every man individually in battle with the passions of this world. Truly, "there can be no rest for those on earth who desire to be saved." When salvation comes, rest also comes.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How Simon Peter and the other disciple ran quickly to the tomb to confirm the news of the Resurrection;
# How one after the other entered the tomb and saw the linen cloths and the napkin;
# How they both saw and believed, and then witnessed; and how, for their witness, they died.
! HOMILY
! on the two Adams; the death-creating and the life-giving
"For as in Adam all die, even so in Christ shall all be made alive" (1 Corinthians 15:22).
In Adam, life is sown in shame; in Christ, life is raised in glory. Sin is from Adam and justice is from Christ. Weakness and death come from Adam, and strength and life come from Christ. Thus, in Adam we all die. And thus, in Christ we shall all be brought to life. That one is the earthly man [Adam]; this one is the heavenly man [Christ]. That is the bodily man and this is the spiritual man.
Christ did not resurrect for His sake but for our sake, just as He did not die for His sake but for our sake. If His resurrection does not signify our resurrection, then His Resurrection is bitterness and not sweetness. Where, then, would the love of God be? Where, then, would the meaning of our miserable earthy experience be? What, then, would be the purpose of Christ's coming to earth?
Where Adam ends, Christ begins. Adam ends up in the grave, and Christ begins with the Resurrection from the grave. Adam's generation is the seed underground that rots and decays, that does not see the sun. It does not believe that it can emerge from beneath the earth to blossom into a green plant with leaves, flowers and fruit. Christ's generation is a green field upon which wheat grows, turns green, puts forth leaves, blossoms and bears much fruit.
"In Adam" does not only mean that we will die one day; rather it means that we are already dead--dead to the last one. "In Christ" does not only mean that we will revive one day, but rather that we are already alive--that the seed in the ground has already begun to germinate and to break through to the light of the sun. The complete expression of death is in the grave, but the complete expression of eternal life is in the Kingdom of God.
The mind of the sons of Adam is in accordance with death, reconciled with being in a state of decay, and it sinks even deeper into the ground. The mind of the sons of Christ rebels against death and decay, and strives all the more, so that a man burgeons toward the light, with the help of the grace of God. O resurrected Lord, sober the minds of all the sons of men, that they would flee from darkness and destruction and reach out toward light and life eternal, which is in Thee.
To Thee be glory and praise forever. Amen.
! THE VENERABLE ISAAC THE SYRIAN II
(Isaac the Syrian I is commemorated on January 28.) St. Gregory the Dialogist writes about this Isaac. He came to Italy at the time of the Goths, and in the city of Spoleto he entered a church to pray. He asked the verger to allow him to remain locked in the church overnight. And so he spent the entire night in prayer, remaining in the same place. The same thing happened the next day and even the second night. The verger called him a hypocrite and struck him with his fist. Instantly, the verger went insane. Seeing that the verger was bitterly tormented, Isaac bent over him, and the evil spirit departed from him and the verger was restored to health. Upon hearing of this incident, the entire populace of the city thronged around this amazing foreigner. They offered him money and property, but he declined all, accepted nothing and withdrew into the forest, where he built a cell for himself, which was rapidly grew into a large monastery. Isaac was known for working miracles and especially for his discernment. On one occasion he ordered the brethren to carry all the hoes into the vineyard and to leave them there. The next day Isaac, along with the brethren, went out into the vineyard and brought along lunch. The brethren were puzzled. Who was this lunch for, since there were no laborers? Upon arriving at the vineyard, there were as many men digging as there were hoes. This is what happened: these men came as thieves to steal the hoes, but by the power of God, they were kept there and made to dig all night. On another occasion, two half-naked men came to Isaac and sought clothing from him. Isaac sent a monk to a hollow tree along the road to retrieve what he would find there. The monk departed, found some clothing and brought it to the monastery. The abbot took these clothes and gave them to the beggars. The beggars were extremely ashamed when they recognized their own clothes, which they had hidden in this tree. Once a man sent two beehives to the monastery. A monk hid one along the way, and he brought the other to the monastery and turned it over to the abbot. The saint said to him: "Be careful upon your return. For a poisonous snake has slithered into the beehive that you left along the way. Be careful, therefore, that it does not bite you."
! SAINT BASIL THE CONFESSOR
During a time of iconoclasm, this devout man was bishop in the town of Parius in Asia Minor. He refused to sign an imperial document against the veneration of icons. For that, Basil was greatly persecuted and severely tortured. But he remained as firm as a diamond in His Orthodoxy. He reposed at the beginning of the eighth century and was translated to the Lord.
! THE VENERABLE ACACIUS
Acacius was from the village of Gollitsa in Epirus. He was a great Athonite ascetic, spiritual father and clairvoyant. Acacius had many heavenly visions. He gave his blessing to several monks who chose the ascetic feat of martyrdom. Acacius reposed in his ninety-eighth year, in the year 1730 A.D.
! THE VENERABLE ATHANASIA
Athanasia was born on the island of Aegina, of wealthy and benevolent parents. She distributed her wealth to the poor and retreated to a monastery [convent]. There she took upon herself increasingly difficult ascetic labors. Athanasia took food only once a day, and then only bread and water. During Great Lent she ate once every other day. She tasted oil and fish only on the Feasts of the Nativity and the Resurrection of our Lord Jesus Christ. Even though she was the abbess of this convent, Athanasia was a servant to the other sisters and shied away from having anyone serve her. Athanasia was made worthy of the great gift of working miracles, both during her life and after death. She reposed in the Lord in the year 860 A.D.
! HYMN OF PRAISE
! SAINT ATHANASIA
Athanasia fulfilled good counsel;
She shone on earth like a bright star,
By the spirit she overcame bodily weakness;
While still young she came to love God.
Through fasting and vigils she withered her body,
Only to attain salvation for her soul.
Much property she distributed to the poor,
And gave herself fully to the will of God.
She saw a vision in the holy church:
A heavenly light penetrated the darkness,
And a voice came to her: "Athanasia,
Meekness and humility--this is pleasing to God.
Practice this above all else,
As long as your heart beats and your spirit breathes."
Athanasia, a wonderful soul,
Crushed all pride in herself,
She utterly sacrificed her will to God,
As obedient to God as the blazing sun.
THe Lord returned love with love,
And with grace He rewarded her labors.
And when her time on earth was over,
He granted her life, immortal and paradisal.
! REFLECTION
The wicked Emperor Constantine Copronymus had a virtuous daughter, the maiden, Anthusa, "a beautiful branch on a wicked tree." Despite all the pressure her father put on her to marry, Anthusa remained adamant, for she was firmly attached, with a sincere love, to Christ the Lord. When her father died, Anthusa distributed her entire estate to the poor, entered a monastery [convent] and was tonsured a nun. As much a cause for astonishment as are the many noble men who have left the vanity of this world and followed the narrow path of Christ, the many women who have despised youth, riches and the transitory attractions of this world for the love of Christ are twice as much a cause for astonishment. The Lord Himself said that it is hard for a rich man to enter the Kingdom of Heaven (cf. Matthew 19:23). Difficult yes, but not impossible. For him who despises himself, it is easy to despise the riches of the whole world.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How He entered among His disciples through closed doors and gave them peace;
# How there were no material obstacles to His appearing in His glorified body wherever He wanted.
! HOMILY
! on the city which is being built
"For here have we no continuing city, but we seek one to come" (Hebrews 13:14).
Brethren, where are the great cities of Babylon and Nineveh? Today, only lizards lie in the dust of their towers. Memphis and Thebes, were they not the pride of the pharaohs and princes of mankind? Today, it is difficult to find the exact place where these two cities had been located.
However, let us leave these cities of stone and brick. Let us look at the cities of blood, flesh and bones. Men fashion the cities of their bodies more slowly and more painstakingly than they fashion fortresses and cathedrals. Men spend about eighty to a hundred years in fashioning the cities of their bodies and, in the end, see that their efforts are in vain. That which took them decades to fashion, with care and constant fear, collapses into the dust of the grave in the twinkling of an eye. Whose bodily city is not toppled over and turned into dust? No one's.
But let us leave the cities of the body. Let us look at the cities of happiness, which men have built from generation to generation. The materials from which these cities are built are merriment, pleasure, property, authority, honor and glory. Where are these cities? Like a cobweb they are woven around man in an instant, and like a cobweb they break and vanish, making the fortunate more unfortunate than the unfortunate.
Truly, we have no city here that will remain. That is why we seek the city that is to come. This is the city built of spirit, life and truth. This is the city whose one and only Architect is the Lord Jesus Christ. This city is called the Kingdom of Heaven, eternal life, the dwelling place of the angels, the haven of saints and the refuge of martyrs. In this city there is no dualism of good or evil, but everything is a harmony of good. Everything that is built in this city is built to last forever. Every brick in this city will remain and endure without end; these bricks are living angels and men. In this city the resurrected Lord Jesus Christ is enthroned and reigns.
O resurrected Lord, redeem us from beneath the ruins of time, and lead us mercifully into Thine eternal city of heaven.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR [PRIEST-MARTYR] ARTEMON
Artemon was a priest in Laodicea during the reign of Emperor Diocletian. Before his tormentor-judge, he spoke of himself: "I am called Artemon, a slave of Christ, my God. For sixteen years I was a reader (lector) and read books in the church of my God. For twenty-eight years I was a deacon and read the Holy Gospel. With the help of Christ, I have fulfilled thirty-three years as a presbyter, teaching men and setting them on the path of salvation." The judge brought him to the temple of Aesculapius, where the soothsayers kept large serpents dedicated to this "god." They all assumed that the snakes would bite Artemon. Artemon crossed himself and, by the power of the Cross, fixed all the snakes to the ground, rendering them immovable. Then he brought them all out into the courtyard and breathed upon them, and all of them died instantly. All the soothsayers were in great fear. Upon seeing this miracle, Vitalis, the chief soothsayer of this temple, fell to his knees before Artemon and cried out: "Great is the Christian God!" The martyr then baptized him, along with several of his friends. The malicious judge remained persistent in his malice and tortured the aged Artemon in various ways. At one point, he was ready to throw him into a vat of boiling pitch, but the judge himself was thrown off his horse into the pitch, and was killed. Two eagles were seen to swoop down upon the judge, lift him from his horse and drop him into the pitch. St. Artemon remained free for a period of time. He traveled about, always accompanied by his two beloved deer, and instructed the people. He was captured again and beheaded in the year 303 A.D.; his soul took up habitation in the Kingdom of Christ our God, Whom he had faithfully served.
! THE HOLY MARTYR CRESCENS
Crescens was from the city of Myra in Lycia. He was an honored and well-known citizen. He openly confessed his faith in Christ and mocked the dead idols. For this, he was burned to death by the pagans.
! THE HOLY MARTYR THOMAIS
Thomais was born in Alexandria of honorable parents. She was taught piety from her youth. At the age of fifteen, she was married to an honorable man. Her father-in-law was a vile old man and, in the absence of his son, he attacked his daughter-in-law, desiring to seduce her. Becoming terrified, Thomais reminded her father-in-law of the Law of God and slipped out of his hands. After a prolonged struggle, the father-in-law drew a knife and murdered his daughter-in-law, then cut her in half. At that moment the punishment of God fell upon him. He was instantly blinded and was unable to find the door from which to leave. In that very room he was apprehended in the act and turned over to the court, which sentenced him to death. Thus Thomais suffered for the sake of God's commandment regarding marital fidelity and chastity. After that, many who were tempted by adulterous passions directed their prayers to St. Thomais and received strong assistance from her. The great ascetic Daniel translated her relics to Scetis and buried them in the cemetery of the heiromonks. St. Thomais suffered in the year 476 A.D.
! HYMN OF PRAISE
! SAINT THOMAIS
! Whoever suffers because of his evil deeds,
Does not have a share with the angels.
Whoever suffers for the will of God,
And endures misfortunes for the sake of Christ,
Either from the faithful or from the unfaithful,
Such a one will gaze upon the face of God.
Thomais, handmaiden of God,
Was in her heart truly devout [Bogomoljka].
But, for the sake of God's law, she suffered
From her arrogant father-in-law.
"Leave, O Father-in-law, my poor body alone!
Are you not afraid of the Most-high God?
The human body--even though it is plain mud--
Is given to us by God for the sake of the soul.
If we defile the body with sin,
We are breaking the wings of our soul;
We are separating it from the Living God,
And giving it as booty to the unclean one."
Blinded by passion, the father-in-law cut her to pieces;
"May God forgive!" the righteous one said.
But blindness befell the murderer--
And the doubly blind man crawls through hell.
! REFLECTION
When they brought the martyr Crescens (a nobleman of Myra in Lycia) to court, the judge counseled him for a long time, trying to persuade him to worship idols. When he did not succeed, he finally said to Crescens: "Bow down only in body, but in spirit bow down before your God!" To this the honorable Crescens replied: "The body cannot do anything independently of the soul, which is its driving force and leader." For that Crescens was killed--an obvious lesson that a Christian cannot be duplicitous. Still another lesson: A Christian has an obligation to serve his Creator not only with the soul but also with the body. This refutes the false position of certain Christians, who live physically as pagans, while praising themselves that they believe in God and love God with their souls. They divide themselves in two, placing themselves in the service of two masters, even though the holiest lips proclaimed that to be an impossibility.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How, because of Thomas, who was momentarily the only unbelieving one among the disciples, He appeared again in His glorified Body;
# How Thomas placed his finger into the wounds of the All-pure Body of the Lord and believed.
! HOMILY
! on Thomas's test
"My Lord and my God" (John 20:28).
When the Apostle Thomas felt the wounds of the Lord Jesus, he cried out: //My Lord and my God!//
When Mary Magdalene heard the voice of the Resurrected One in her soul, she cried out: //My Lord and my God!//
When Saul saw the light and heard the words of the Resurrected One, he acknowledged: //My Lord and my God!//
When the pagans, in amazement, observed how countless numbers of martyrs joyfully underwent pains and asked them Who this Christ was, all of them replied: //My Lord and my God!//
When the scoffers ridiculed the army of ascetics and asked them Who He was for Whom they took upon themselves the awesome burden of asceticism, they all had one answer: //My Lord and my God!//
When the scorners derided the virgins who had vowed their virginity and asked them Who He was for Whom they had renounced marriage, they all had one answer: //My Lord and my God!//
When the avaricious, in astonishment, asked the wealthy for Whose sake they had distributed their wealth and become beggars, all of them had the same reply: //My Lord and my God!//
Some have seen Him and have said: //My Lord and my God!//Some have only heard Him and said: //My Lord and my God!// Some have only felt Him and said: //My Lord and my God!// Some have only observed Him in the fabric of events and in the destinies of peoples and said: //My Lord and my God!// Some have felt His presence in their lives and cried out: //My Lord and my God!// Some have recognized Him by some sign, to themselves or to others, and cried out: //My Lord and my God!// Still some have only heard about Him from others and believed and cried out: //My Lord and my God!// Truly, these last ones are the most blessed!
Let us also exclaim, with all our hearts, regardless of how we have come to recognize Him or learn about Him: //My Lord and my God!//
To Thee be glory and praise forever. Amen.
! SAINT MARTIN THE CONFESSOR, POPE OF ROME
Martin became pope on July 5, 649 A.D., at the time of the furious debates between the Orthodox and the Monothelete heretics, who held to the belief in a single will in Christ. Reigning at that time was Constans II, the grandson of Heraclius. The Patriarch of Constantinople was Paul. In order to establish peace in the Church, the emperor compiled a small volume entitled the "Typos," which was very favorable to the heretics. Pope Martin convoked a Council of 105 bishops (in the Church of the Holy Savior in the Lateran Palace in October), which condemned this book of the emperor. At the same time, the pope wrote a letter to Patriarch Paul, imploring him to adhere to the purity of the Orthodox Faith and to counsel the emperor to renounce this heretical sophistry. This letter angered both the emperor and the patriarch. The emperor dispatched Olympius, one of his commanders, to Rome to bring the pope to Constantinople in bonds. The commander did not dare to bind the pope, but bribed a soldier to slay him in church with a sword. When the soldier entered the church with the concealed sword, he was instantly blinded. Thus, by the providence of God, Martin escaped death. At that time the Saracens attacked Sicily, and Olympius was ordered to Sicily, where he died. Then, through the intrigues of the heretical Patriarch Paul, the emperor dispatched Theodore, another commander, to bind the pope and bring him to Constantinople, under the accusation that he, Pope Martin, was in collaboration with the Saracens and did not honor the All-pure Mother of God. When the commander arrived in Rome and read the accusation against Pope Martin, the latter responded that this was slanderous and that he had no association with the Saracens, the adversaries of Christianity: "And as regards the All-pure Mother of God, if one does not honor her and does not confess her and does not reverence her, let him be cursed in this world and in the next." However, this did not alter the decision of the commander. Pope Martin was bound and brought to Constantinople, where he lay for a long time in prison, painfully ill, suffering from grief and hunger, until he was finally sentenced to exile to Cherson. Pope Martin lived for two years in exile. He died in the year 655 A.D., offering his soul to the Lord, for Whom he had suffered much. Two years prior to Pope Martin's death, the repentant Paul died. When the emperor visited him before his death, Paul turned his face toward the wall and wept, confessing that he had greatly sinned against Pope Martin, and begged the emperor to release Martin.
! THE HOLY MARTYRS ANTHONY, JOHN AND EUSTATHIUS [EUSTACE]
All three were pagans and were at first fire worshippers. All of them were servants in the palace of the Lithuanian Prince Olgard in Vilnius. They were formerly called Krugletz, Kumetz and Nezhilo. All three were baptized by the priest Nestor. All three were hanged, one after the other, on the same oak tree in the year 1347 A.D. Christians cut down the tree and erected a church in honor of the Holy Trinity. The revered relics of these martyrs were then placed in this church and a holy altar table was carved from the stump of the oak tree. Their relics repose in Vilnius.
! THE HOLY MARTYR ARDALION THE ACTOR
At first Ardalion was an actor-comedian. For the sake of entertaining the people, he eagerly played the role of a martyr for the Faith, mocking Christians in every possible manner. When a persecution surfaced during the reign of Emperor Maximian, his spirit completely changed. In front of the crowd, he cried out in a loud voice that he was a Christian and that he was not jesting. For this, Ardalion was condemned; he suffered for Christ and died while tied to a red hot framework of rods, thus truly and honorably fulfilling the role of a martyr.
! HYMN OF PRAISE
! SAINT MARTIN
Saint Martin the Pope speaks before the Senate:
"Let my body be crushed and burned.
The most cruel sufferings will I joyfully endure,
But the true Faith will I not deny.
The Good Savior was God and Man.
He had two natures and two wills,
But both natures were in one Person,
And both wills in a single light.
Such a Faith all the Fathers passed on to us;
For such a Faith many suffered.
May I suffer also, I the least of all,
A servant of my Lord, and of all the most sinful!"
Thus Martin confessed his faith to all,
Speaking truth before the heretics.
Oh, the worth of a man when he fears God!
Above little men he stands like a mountain!
! REFLECTION
"It is befitting for a monk to love God as a son and to fear Him as a slave," says Evgarius. Naturally, this is also befitting for every Christian, even though he may not be a monk. It is a great art for anyone to unite love for God with fear of God. Many other Holy Fathers, whenever they speak of love for God, at the same time mention fear of God, and vice versa. In his homily "On Perfect Love," St. John Chrysostom discusses suffering and the pains of hell. Why? Because, without fear, a great love of God imperceptibly crosses over into pride; and, without love, a great fear of God leads to despair.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How He appeared to the disciples on the shore of the lake and addressed them: //Children// (John 21:5);
# How He filled their nets again with fish, and they knew Him, though none dared ask: //Who art Thou?// (John 21:12).
! HOMILY
! on the personal experience of all the apostles
"That ... which we have heard, which we have seen with our eyes, which we have looked upon, and our hands have handled, ... declare we unto you" (1 John 1:1).
Behold, such is the apostolic preaching! The apostles do not speak as worldly sages or as philosophers, and even less as theoreticians who make suppositions about things in order to discover something. The apostles speak about things which they have not sought but which unexpectedly surrounded them, about a fact which they did not discover but which, so to speak, unexpectedly found them and seized them. They did not occupy themselves with spiritual investigation, nor did they study psychology, nor much less did they occupy themselves with spiritism. Their occupation was fishing--a totally experiential, physical occupation. While they were fishing, the God-man appeared to them and cautiously and slowly introduced them to a new vocation in His service. At first they did not believe Him, but ever cautiously and slowly--with fear, hesitation and much wavering--they came toward Him and recognized Him. It was not until the apostles had seen Him many times with their own eyes and examined Him and felt Him with their own hands, that they believed. What they experienced was supernatural, but their method of recognizing this was thoroughly sensory and learned through positive encounter. Not even one contemporary scholar would be able to use a more positive method to know Christ. The apostles saw not only one miracle, but numerous miracles. They heard not only one lesson, but so many lessons that they could not be contained in numerous books. They saw the resurrected Lord for forty days: they walked with Him, they conversed with Him, they ate with Him, and they touched Him. In a word, they personally had thousands of wondrous facts firsthand, by which they learned and confirmed the one great fact, that is, that Christ is the God-man, the Son of the Living God, the man-loving Savior of mankind and the All-powerful Judge of the living and the dead.
O resurrected Lord, confirm us in the faith and ardor of Thy Holy Apostles.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLES ARISTARCHUS, PUDENS AND TROPHIMUS
They were numbered among the Seventy Apostles. Aristarchus was bishop of Apamea in Syria. The Apostle Paul mentions him several times: //The city was filled with confusion and the people rushed with one accord into the theater, seizing Gaius and Aristarchus//(Acts 19:29. See also Colossians 4:10 & Philemon 1:23-24). Aristarchus was arrested in Ephesus, together with Gaius, by a multitude of people who had risen up against Paul. The Apostle Paul writes to the Colossians: //Aristarchus my fellow prisoner saluteth you// (Colossians 4:10). In the Epistle to Philemon, Paul calls Aristarchus //my fellow laborer,// together with Mark, Demas and Luke.
Pudens was a distinguished citizen of Rome. The Apostle Paul mentions him once. //Eubulus, Pudens, Linus, Claudia and all the brothers send greetings// (2 Timothy 4:21). At first, the home of Pudens was a haven for the chief apostles [Peter and Paul] and later it was converted into a place of worship, called the Shepherd's Church.
Trophimus was from Asia. //Sopater, the son of Pyrrhus, from Beroea, accompanied him, as did Aristarchus and Secundus from Thessalonica, Gaius from Derbe, Timothy and Tychicus and Trophimus from Asia//(Acts 20:4), and he accompanied the Apostle on his travels. In one place the Apostle Paul writes: //Trophimus have I left at Miletum sick //(2 Timothy 4:20).
During Nero's persecution, when the Apostle Paul was beheaded, all three of these glorious apostles were also beheaded.
! THE HOLY MARTYR SABBAS THE GOTH
In the land of the Goths there was a brutal persecution against Christians. A certain prince of the Goths [Atharidus] entered the village where this devout Sabbas lived and asked the villagers: "Are there any Christians living in your village?" They convinced him, by swearing, that there were none. Then Sabbas stood before the prince and the people and said: "Let no one swear for me; I am a Christian!" Upon seeing Sabbas, wretched and poor, the prince let him go in peace, saying: "This one can neither harm nor benefit anyone." The following year, around Pascha, a certain priest, Sansala, came to this village and celebrated the glorious Feast of the Pascha with Sabbas. Upon learning of this, the heathens suddenly attacked the home of Sabbas and began to beat this holy man of God mercilessly with canes. In addition, they dragged Sabbas's naked body through thorns and then tied both Sabbas and Sansala to a tree, offering them the meat of idolatrous sacrifices to eat. These men of God called to mind the words of the apostles and refused to eat of the unclean, diabolical sacrifices. Finally, the prince condemned Sabbas to death and handed him over to the soldiers. Full of joy, Sabbas arrived at the scaffold praising God. Recognizing him as a good man, the soldiers wanted to release him along the way. Because of this, Sabbas became very sorrowful and told the soldiers that they were duty-bound to carry out the order of the prince. The soldiers then brought him to a river [the Mussovo River at Targoviste, Romania, near Bucharest], tied a stone around his neck, and cast him into the water. His body was washed up along the shore. Later on, during the reign of Emperor Valens, when the Greek Commander Ioannis Soranos was warring with the Goths, he discovered Sabbas's body and translated it to Cappadocia. St. Sabbas suffered at the age of thirty-one, in the year 372 A.D.
! THE HOLY FEMALE MARTYRS BASILISSA AND ANASTASIA
Basilissa and Anastasia were two pious and devout Romans. During the reign of Emperor Nero, they gathered the slain bodies of the disciples of the apostles and buried them with honor. They were denounced for this and imprisoned. After prolonged torture, during which their breasts and tongues were severed, they were finally beheaded.
! HYMN OF PRAISE
! THE HOLY MARTYRS
The radiant martyrs shed their blood
And empurpled the whole black earth with their blood.
Powerful was the fire in which they were burned,
But more powerful the love with which they loved Christ.
To be a martyr is the greatest good;
With what treasure can this be compared?
The All-victorious Christ, the King of the ages,
Welcomed into heaven their brave souls.
He took them to Himself from the hands of the angels,
And all their heavy pains He blessed.
! REFLECTION
Concerning contemplation, St. Gregory of Sinai writes: "We confirm that there are eight principle subjects for contemplation: first, God, invisible and unseen, without beginning and uncreated, the First Cause of everything that exists, Triune, the one and only pre-existing Divinity; second, the order and rank of noetic powers [the bodiless powers of heaven; the angelic world]; third, the composition of visible things; fourth, the Divine Economy of the Incarnation of the Word; fifth, the General Resurrection; sixth, the awesome Second Coming of Christ; seventh, eternal torment; eighth, the Kingdom of Heaven. The first four have already been revealed and belong to the past. The last four have not yet been revealed and belong to the future, although these four are clearly contemplated by those who, with the help of acquired grace, have attained complete purity of mind. Whosoever approaches this task of contemplation without the illumination of grace, let him know that he is building fantasies and does not possess the art of contemplation." Thus wrote the great and discerning Gregory of Sinai, whose knowledge came from personal experience.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How He was concerned about the physical nourishment of His disciples; how He broke and blessed bread for the disciples in Emmaus;
# How, by the shore of the lake, he asked His disciples: //Have ye any meat?// (John 21:5). How, when they answered Him that they had not, He prepared bread and fish and gave it to them.
! HOMILY
! on how we will resemble Him Whom we love
"Beloved, now are we the sons of God, and it doth not yet appear what we shall be: but we know that, when He shall appear, we shall be like Him; for we shall see Him as He is" (1 John 3:2).
Previously we were slaves, but now we are the children of God. We were the slaves of evil, but now we are the servants of good--the supreme good in heaven and on earth. We were slaves to all of that which is lower and worse than man, but now we will serve the All-highest and the All-good. We were oppressed by darkness, but now we will labor in the light. Until now the devil, sin and death held us in continual fear, but now we will live close to God in freedom and joy.
Now--when is this "now?" Now is when the Lord has appeared on earth in the flesh, when He has given us the knowledge of light, freedom and life; when He has gloriously resurrected and manifested Himself in His glorified body; when He has fulfilled all the prophecies of the prophets and all of His promises. Now we, too, are the children of God, seen as sons and //heirs of the Kingdom// (James 2:5).
//We shall be like Him.//Truly, this has not yet materialized, but He has manifested Himself and, for now, that is sufficient. He Himself showed how beautiful man is in the Resurrection, and we know that we will also be the same as He. The Apostle John says: //We know that we shall be like Him.// He does not say, "We suspect," or, "It has been told to us," but he says: //We know that we shall be like Him.// For He did not resurrect for His sake, but for our sake. He did not resurrect from the grave only to show His power to the dead who are without hope, but to assure the dead that they too will live again--and to show them how they will be when they become enlivened. Neither did the apostles write: //We know,// because of their vanity before the ignorant, but because of brotherly love toward man, that all men may know this--and that we too might know.
O risen Lord, confirm in us also this saving knowledge, through the prayers of Thy Holy Apostles.
To Thee be glory and praise forever. Amen.
! THE HOLY FEMALE MARTYRS AGAPE, CHIONIA AND IRENE
All three were sisters from the vicinity of Aquileia. When Emperor Diocletian was staying in Aquileia he ordered that the distinguished spiritual father Chrysogonus be killed. At that time an aged presbyter, Zoilus, had a vision in which the location of the unburied body of Chrysogonus was revealed. Hastening, the elder found the martyred body of Chrysogonus, placed it in a coffin and kept it in his home. Thirty days later, St. Chrysogonus appeared to him, informing him that, in the course of nine days, these three maidens would suffer martyrdom and that he, Zoilus, would also die at that time. The same news was received in a vision by Anastasia the Deliverer from Bonds [a woman endowed with moral and spiritual insight-December 22], who was a disciple of Chrysogonus. Indeed, after nine days the Elder Zoilus died and these three sisters were brought to trial before the emperor. The emperor urged these three maidens to worship idols, but they all refused and confessed their steadfast faith in Christ. Irene told to the emperor that it was foolish to worship things made of stone and wood, which were ordered for an agreed price and made by the hands of a mortal man. The enraged emperor cast them into prison. When the emperor departed for Macedonia, all slaves and prisoners were taken with him, including these three saintly maidens. The emperor turned them over to a certain commander, Dulcitius, for torture. This commander, inflamed by dark passion, wanted to defile the virgins; however, when the commander attempted to enter the prison while the virgins were praying to God, he went insane. He fell among the black cauldrons and pots by the gates and began to embrace and kiss them, departing sooty and blackened. The emperor, upon hearing about this incident, ordered that another commander, Sisinius, take over the trial of these sisters. After prolonged torture, the judge condemned the first two sisters to death by burning, while he detained Irene for a while longer, hoping to defile her. But when the judge sent Irene to a brothel with the soldiers, an angel of God saved this chaste virgin by staving off the soldiers and bringing her to a hill. The next day, the commander and his soldiers went to this hill, but they were unable to ascend it. He then ordered that Irene be shot with arrows. St. Anastasia gathered the bodies of these three sisters into one place and honorably buried them. They all suffered honorably for Christ the King and Lord in about the year 304 A.D.
! THE HOLY MARTYR LEONIDAS, AND WITH HIM THE FEMALE MARTYRS CHARIESSA, NICE, GALINA, CALLISTA, NUNECHIA, BASILISSA AND THEODORA
They were thrown into the sea, but the sea received them not. They walked upon the sea as upon dry land and sang to God: "One battle have I won, O Lord, and the army pursued me; O Lord, I did not deny Thee; O Lord, save my soul!" Seeing them, the heathens at first were amazed, but they later tied stones around their necks and again threw them into the depths of the sea, where they drowned. They all suffered honorably for Christ the King and Lord in the year 281 A.D.
! HYMN OF PRAISE
! THE HOLY FEMALE MARTYRS AGAPE, CHIONA AND IRENE
Chaste souls, chaste bodies,
Like three lilies, pure and white,
Three sisters, heroines,
Golden treasuries of the Holy Spirit.
Their blood they shed, their life they gave.
With wreaths are they crowned.
Agape--pure love,
Chiona--glistening as the snow,
And Irene--namesake of peace.
In torments as in the midst of a feast,
They glorified the Living God
And the resurrected Lord:
"Most-high God, whatever we have,
Behold, to Thee we give all:
Body, soul and all pains--
Thou receivest all into Thy hands!
From the river of fire save our bodies;
From eternal wrath save the souls!
Oh, thanks be to Thee, that Thou didst create us,
And didst even make us worthy of sufferings!"
Three sisters, three virgins,
Martyrs for the sake of the Trinity.
! REFLECTION
A story of the Elder Barlaam: A certain man had three friends. Two of them he loved sincerely, but he avoided the third out of indifference. It so happened that the king summoned this man before him to render account and to repay his debt. He turned for help to his first friend, who rejected him and departed. He then turned to his second friend, but even he did not help him. With shame, he then turned to the third friend, who joyfully accompanied him to the king. The interpretation is this: the first friend is wealth; the second friend is one's relatives; the third friend is the good works of men in this world. The king is God, Who, through death, sends a summons and seeks payment of debt. A dying man seeks help in his wealth, but it turns away and passes on immediately into the hands of another owner. He then turns to his relatives, but his relatives send him off alone and they remain. Then, he reminds himself of his good works, which he carried out with indifference, and these immediately accompany him on his way to the King and Judge. He who has ears to hear, let him hear. The only companions of the soul into the other world are the works of a man, be they good or be they bad. All that was dear and precious to a man leaves him and turns away from him. Only his works, to the very last one, accompany him. He who has a mind to understand, let him understand.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How, according to the testimony of St. Paul, He appeared alive to five hundred people at once: //After that, He appeared to more than five hundred brothers at once, most of whom are still living, though some have fallen asleep// (1 Corinthians 15:6);
# How He appeared to the Apostle James, again, according to the testimony of the Apostle Paul: //After that, He appeared to James, then to all the apostles// (1 Corinthians 15:7);
# How in the time of the Apostle Paul, even outside the circle of the apostles, many still lived who had seen Him.
! HOMILY
! on waking from sin
"Awake to righteousness and sin not" (1 Corinthians 15:34).
The Apostle Paul gives this commandment in relation to the Resurrection of Christ. Since he had enumerated many proofs of the Resurrection of the Lord, he decisively commands the faithful to awaken to righteousness and to sin no more.
Why does the Apostle make our wakefulness contingent on the Resurrection of the Lord? Because the Resurrection of Christ from the dead is the main rebuttal to sinning. And because nothing else in this world can turn us away from sinning as surely as the knowledge that the Lord resurrected from the grave and now sits alive on the Throne of Glory, awaiting us at His Judgment. Having acquired this knowledge, sinning is utterly absurd. Having acquired this knowledge, waking from sin is perfectly natural and reasonable.
//Awake to righteousness!// Not halfheartedly, but completely. Dismiss from your minds even the remembrance of sin. For sin is like a plant that can grow even in the most parched places. One drop of moisture, and a seemingly withered plant becomes green. One remembrance of a seemingly long-forgotten, dead sin makes it come alive and become stronger.
The heathens, who sinned without having the example of the Resurrection of the dead, will have some justification at the Judgment. They will say: "There was nothing powerful enough to awaken us from sinning. We believed that the grave was the final delta of the river of human life, for we did not have any proof of life after death." Thus will the heathens speak? But how will you Christians justify yourselves, you who have learned of the Resurrection of Christ and have not awakened; you who have heard so many testimonies of the Resurrection and the Judgment and yet have continued to sin? How are you going to justify yourselves?
My brethren, //awake to righteousness and sin not,// for Christ is risen from the grave. O resurrected and living Lord, help us to awaken from sin once and for all.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR [PRIEST-MARTYR] SIMEON, BISHOP OF PERSIA
During the reign of the wicked King Sapor [Savori], Simeon was tortured for Christ along with his two presbyters, Audel and Ananias. The king's eunuch, Ustazan--who had earlier denied Christ but afterward, touched by the rebuke of St. Simeon, had again confessed the true Faith before the king--was executed before them. A thousand other Christians were also led to the place of execution with Simeon. Simeon intentionally moved out of the way in order to be the last one beheaded. He did this to encourage the other Christians, so that not one of them would waver out of fear of death. When the presbyter Ananias placed his head on the chopping block, his entire body quivered. The king's court clerk, Fusik, who secretly was a Christian, began to encourage Ananias saying: "Do not be afraid, old man, close your eyes and be brave, so that you may see the Divine Light." As soon as Fusik said this, he was recognized as a Christian and was accused before the king. Both Fusik and his daughter, the maiden Askitria, were exhausted through great torture by the king. After St. Simeon saw his flock depart to the other world, he was finally beheaded. The following year on Great Friday, Azat [Ustazan], the beloved eunuch of the king, was also slain for Christ and with him a thousand other faithful. Then the emperor mourned for his eunuch and suspended the further killing of Christians. They all suffered honorably for Christ the King and Lord in the year 341 or 344 A.D.
! SAINT ACACIUS, BISHOP OF MELITENE
Acacius lived the ascetic life in the place where he was born, that is, in Melitene in Armenia. Blessed Otreius, the bishop of that city, who participated at the Second Ecumenical Council [Constantinople, 381 A.D.], ordained him a presbyter. Following the death of Otreius, Acacius became a bishop. He participated in the Third Ecumenical Council [Ephesus, 431 A.D.], which condemned the evil blasphemy of Nestorius against the Mother of God. Here, together with St. Cyril of Alexandria, Acacius zealously fought for the purity of the Orthodox Faith. St. Acacius possessed much grace from God and worked many miracles. After long and zealous service to God, Acacius reposed peacefully in the year 435 A.D.
! SAINT AGAPITUS, POPE OF ROME
Agapitus was sent to the Emperor Justinian in Constantinople by Theodotus, King of the Goths, to dissuade him from his campaign against the Goths. En route, he healed a mute and blind person. In Constantinople, Agapitus assisted in confirming Orthodoxy. He died in the year 536 A.D.
! THE VENERABLE SABBATIUS AND ZOSIMAS
Sabbatius and Zosimas were the co-founders of the ascetic [monastic] community on the Solovki (Solovetz) Island in the White Sea. Many great saints were glorified in the Solovki Monastery. St. Sabbatius died in 1435 A.D., and St. Zosimas in 1478 A.D.
! HYMN OF PRAISE
! SAINT ZOSIMAS
On an desert isle amidst the stormy sea,
Beyond the vanity of the world and beyond conversation,
Zosimas nourishes his soul with prayers
And defends it from demons with the name of God.
Vicious demons become embittered against him,
And direct all of their power against him.
Zosimas speaks to them: "In vain is your effort
As long as the mighty hand of God protects me.
Is it the will of God that I be slain?
Then strike quickly, and do not waste time!
Why do you change yourselves into beasts and serpents,
Into angry wolves, tigers and scorpions,
When you do not have the strength of shadows
To do me any harm?
You are dreadful only to the sons of sin
And to the lovers of pleasure and laughter.
But to the lovers of the yoke of Christ,
The Mother of God, and pure asceticism,
You are like the fog carried by the wind,
Which one moment is blown in and the next moment blown away.
If the fog is able to uproot a rock,
Then you are able to sway me, a sinner!
Leave me alone; I do not give myself over to you.
I am the servant of Christ; I look to Christ."
! REFLECTION
After the Fourth Ecumenical Council [Chalcedon, 451 A.D.] the heretical Emperor Anastasius banished the Orthodox Patriarchs Elias of Jerusalem and Flavian of Antioch. One day, simultaneously, both saints discerned the death of the heretical emperor and sent each other the news of this, saying: "Anastasius is dead! Let us also go to stand judgment with him before God." The emperor died, and two days later both patriarchs died. What zeal for the true Faith! What a humble hope before God's judgment! For these saints, it was not a matter of living longer on earth but of God's truth. Neither did they say, "We judged him," but, "May God judge him!" Our stay on earth is not for the sake of sojourning, but for a personal choice for good or for evil, for truth or for falsehood. Blessed are we if, in everything, we trust God's will and hope in God's judgment. For in all things, one must have a strong faith. These Orthodox archpastors had strong faith. St. Acacius also had strong faith. Once, during a great drought, when the people were despairing, this wonderful Acacius led a procession of the people through the town and to its outskirts. He ordered that the Divine Liturgy be celebrated outside the town before the Church of St. Eustace. After consecrating the Holy Gifts, Acacius did not want to pour water into the wine, but prayed to God that He, the Most-High, would send down water into the chalice from the clouds. God heard the prayer of His faithful servant and sent abundant rain onto the dry fields as well as into the honorable chalice.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How for forty days after the Resurrection He remained on earth, showing Himself to the faithful and strengthening them in the Faith;
# How, by His forty-day manifestation, He demonstrated that He did not resurrect for His own sake, but for the sake of mankind.
! HOMILY
! on the wonderful promise of Christ
"To him that overcometh will I grant to sit with Me on My throne" (Revelation 3:21).
This, brethren, is the promise of Christ, the Victor over the devil, sin and death.
But the devil, sin and death are stronger than man. Who can overcome them? No one, except Christ and those who stand firm with Christ and enter into battle with His weapons.
The devil is as old as the world, and even older. How can a man, whose life-span is measured by a pendulum, defeat him who, for many thousands of years, has learned to wage battle against man? How can a mortal overpower all the temptations of the devil, whose number equals the number of sins on earth? By no means, if he does not know that the Lord Jesus conquered the three main types of diabolical temptations on the high mountain. By no means, if a man does not remain firm and steadfast alongside Christ, Who is older than time and mightier than all the angels, both evil and good.
Sin is as old as the devil. How can a man, whose life-span is measured by a pendulum, avoid sin, which, as a contagious disease and evil odor, has been passed from generation to generation, from man to man, since man has existed on this earth? By no means, if he does not know that there exists one Man, the One and Only, Who did not commit sin, either in birth or after birth: the God-man Jesus Christ, Who, through the humbleness of His humanity and the fire of His Divinity, crushed sin on the Cross. By no means, if a man does not stand firm with Christ, Who is older than sin and Who is mightier than all of the sowers and carriers of sin.
Death is as old as man expelled from Paradise. How can a man, whose life span is measured by a pendulum, conquer death in this worldly grave? By no means, if he does not acknowledge the power of the Cross, the suffering of Christ, and the truth of His Resurrection from the grave. By no means, if he does not stand firm with Christ, the Almighty Victor over death.
Oh, what a glorious reward for those who achieve victory! They will be seated and crowned with wreaths of glory on the throne of the greatest Victor on earth and in heaven!
! To Him be glory and praise forever. Amen.
! THE VENERABLE JOHN, DISCIPLE OF SAINT GREGORY OF DECAPOLIS
During the iconoclastic heresy, Emperor Leo the Armenian subjected John to torture, along with his teacher, Gregory, and St. Joseph the Hymnographer. When Gregory departed this life, John became the abbot of the Decapolis Monastery in Constantinople. Having become abbot, he intensified his ascetic labors for the sake of the Kingdom of God. He reposed peacefully in about the year 820 A.D. Following his death, St. Joseph buried him with honor next to the grave of St. Gregory.
! HOLY MARTYR JOHN THE NEW OF IOANNINA
John was born in Ioannina, once the capitol city of the King Pyrrhus. When his impoverished parents died, the young John moved to Constantinople and there continued his occupation, for he was a craftsman. Not long before, the Turks had surrounded Constantinople, and many Christians, out of fear, had denied Christ and embraced the Islamic faith. St. John had his workshop in the midst of these converts to Islam. The more the young John burned with love for Christ the Lord, the more openly he exposed himself as a Christian before these traitors of Christ. He began to argue with them about the Faith and, finally, rebuked them for their betrayal of Christ. They dragged John before the judge and falsely accused him, alleging that he had earlier embraced Islam, and that he had again reverted to Christianity. After he was tortured and beaten with rods and iron flails [ramrods], they cast him into prison. The next day was the Feast of the Resurrection of Christ, and again they brought him out for further torture. John emerged, singing: "Christ is risen from the dead!" To his torturers, he bravely said: "Do what you want, so as to send me as soon as possible from this transient life to eternal life. I am Christ's slave; I follow Christ; for Christ I die that I may live with Him!" After that, John was bound in chains and brought to the place of burning. Upon seeing a large fire prepared for him, John ran and leaped into the flames. His torturers, seeing how he sought death in the fire, removed him from the fire and sentenced him to be beheaded. After they beheaded him, they threw his head and body into the fire. Later on, Christians sifted through the ashes and gathered some of the remains of his honorable and wonderworking relics, which they interred in the Great Church [Hagia Sophia - Church of the Holy Wisdom] in Constantinople. Thus St. John of Ioannina died a martyr's death and received a glorious martyr's wreath on April 18, 1526 A. D.
! THE HOLY MARTYRS VICTOR, ZOTICUS, ZENO, ACINDYNUS AND SEVERIAN
All five were martyred during the reign of Emperor Diocletian. They were pagans until they witnessed the sufferings of St. George the Great Martyr. While witnessing the sufferings and bravery of this glorious martyr, as well as the many miracles that were manifested, they embraced the Christian Faith. Soon, they too suffered and were crowned with glory.
! HYMN OF PRAISE
! THE HOLY MARTYR JOHN THE NEW
John the Artisan, of honest craft:
His soul was as bright as a nugget of gold.
Wonderfully illumined by the teaching of Christ,
He prayed to God to crown him with suffering:
"O Victorious Christ, Who wast crucified for me,
From sinful darkness, cleanse me by suffering!
Oh, do not give me the shameful glory of a traitor,
But crown me with the sufferings of Thy martyrs.
Prepare me for suffering by Thy Holy Spirit,
And do Thou grant suffering, directing it to me.
And thou, O Mother of God, of infinite mercy,
Who stood under the Honorable Cross of Thy Son,
Pray for me at the time of my sufferings,
That I may be firm as an impregnable wall.
And you, O holy apostles, have mercy,
That the enemy of the human race may not prevail against me.
Holy martyrs, my rejoicing,
Into your ranks receive me also!
And now torturers, traitors of God--
Yours is the sword and the fire--here is my body!"
! REFLECTION
In one of the accounts of the martyrdoms of Christians during the reign of the Persian King Sapor, it is said: "The swords became dull, the sword-bearers fell and the sword-makers grew tired, but the Cross was lifted up even higher and shone from the blood of Christ's martyrs." How many times, how many times the persecutors of Christians complacently thought they were through with Christianity forever! In essence, their lives have ended, while Christianity has always regenerated itself and blossomed anew. Nevertheless, even in spite of this, some of our contemporaries think that the Christian Faith can be uprooted by force. But they do not say by what means. They forget that all those means have been tried and all without success. With reason Tertullian cried out to the pagans: "In vain do you spill our blood. For the blood of the martyrs is the seed of Christianity."
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How His Resurrection brought unspeakable joy to those who loved Him;
# How His Resurrection brought unspeakable bitterness to those who hated Him;
# How His final coming into the world, in glory and power, will evoke different feelings among different people--either joy or bitterness.
! HOMILY
! on the testimony of reliable witnesses
"We ... were eyewitnesses of His majesty" (2 Peter 1:16).
When the apostles speak of the glorious Resurrection of the Lord, they speak in the plural. For each one of them gives his testimony and the testimony of other companions. Thus, the Apostle Peter writes: //We have not followed cunningly devised fables, when we made known unto you the power and coming of our Lord Jesus Christ, but were eyewitnesses of His majesty// (2 Peter 1:16).
Nathaniel did not want to believe simply by hearing. That is why the Apostle Philip invited Nathaniel to //come and see!// (John 1:46). Nathaniel came, saw and believed. So it was with the other apostles: until they approached Christ, until they heard, and until they saw, they did not want to believe. Cleverly devised myths did not attract the apostles. Their healthy, natural minds sought visual facts and not myths.
O my brethren, our Faith is well established and proved. The trail of God is well blazed in the world. No one has need to doubt. Christ's Resurrection is well witnessed. No one need despair. Doubt and despair are two worms that are born of that which sin spews forth. He who does not sin, clearly sees the trail blazed by God in the world and clearly recognizes the Resurrection of Christ.
O resurrected Lord, strengthen us by the power of Thy Holy Spirit, so that we sin no more and do not become blind to Thy trail in the world and to Thy glorious Resurrection.
To Thee be glory and praise forever. Amen.
! THE VENERABLE JOHN OF THE ANCIENT CAVES
John lived a life of asceticism in the so-called Ancient Caves or Lavra of Chariton the Great, in Palestine. Having loved Christ the Lord with all his heart, with all his soul, and with all his mind, John, at an early age, began to travel to the holy places, listening to the instructions and counsels of the holy men. Finally, he settled in the Caves of Chariton. There he gave himself to rigorous asceticism, spending days and years in fasting, prayer and vigils, continuously meditating on death, and teaching himself humility. As a well-ripened fruit, he was plucked by death and took up his habitation in Paradise. He lived and died in the eighth century.
! THE HOLY MARTYRS CHRISTOPHER, THEONAS AND ANTONIUS
Christopher, Theonas and Antonius were young officers serving under Emperor Diocletian. When St. George the Great Martyr was being tortured, they witnessed his sufferings as well as the miracles that occurred at that time. Seeing all of this, they came before the emperor, laid down their arms, removed their military belts and bravely confessed the name of the Lord Jesus. For that, they were subjected to great torture and were finally thrown into the fire. Their bodies were consumed, while their souls went to God and entered into eternal joy. They honorably suffered in Nicomedia in the year 303 A.D.
! SAINT TRYPHON, PATRIARCH OF CONSTANTINOPLE
The Emperor Romanus, who reigned over Byzantium at the beginning of the tenth century, had a son, Theophylactus, who was sixteen years old when Patriarch Stephen died. The emperor wanted his son to be elevated to the patriarchal throne, for he had promised him this spiritual calling from his youth. Yet, because his son was a minor, the emperor was ashamed to do this. The patriarchal throne was assumed by Tryphon, a simple but chaste and pious old man. Tryphon remained on the throne for three years. When the son of the emperor reached his twentieth year, the emperor thought to remove Tryphon at any cost and install his son as patriarch. The saint of God, Tryphon, did not want to relinquish his throne voluntarily, for no other reason than because he considered it to be a great scandal for such a young man be elevated to such a responsible and burdensome position as that of patriarch. Through the intrigue of a iniquitous bishop, the signature of the innocent Tryphon was obtained by guile on a blank sheet of paper. Later on, in the imperial court, the alleged resignation of the patriarch was written above that signature, and was announced by the emperor. As a result of this, there arose a great confusion in the Church, for the laity and the clergy stood by Tryphon, the godly man. The emperor then forcibly removed the aged patriarch, sending him to a monastery, while his son Theophylactus was consecrated as patriarch. St. Tryphon lived as an ascetic in this monastery for two years and five months, and went to the Lord in the year 933 A.D.
! THE VENERABLE MARTYR AGATHANGELUS
Agathangelus was from Thrace. His secular name was Athanasius. Serving the Turks, he was forcibly converted to Islam in Smyrna. As a penitent, he was tonsured a monk on the Holy Mountain [Athos] in the Monastery of Esphigmenou. Still tormented by his conscience, he desired to wash away his sin with his own blood. He departed for Smyrna, where he showed the Turks a cross and an icon of the Resurrection of Christ. He was beheaded on April 19, 1819, in his nineteenth year. Following his death, he appeared alive to Germanus, his spiritual father.
! THE VENERABLE SIMEON THE BAREFOOT
Simeon lived a life of asceticism on the Holy Mountain, and for a short while he was the abbot of the Monastery of Philotheou. He strengthened Christians in the Faith in many areas of the Balkans and was famous for his miracle-working. He walked barefoot, for which he is called "the Barefoot" (the Discalced). He reposed in Constantinople.
! HYMN OF PRAISE
! SAINT TRYPHON
Innocent Tryphon, gray-haired shepherd,
Through innocence obtained an unfading wreath.
The emperor, out of empty vanity, desired wrongly,
Not fearing God or God's punishment.
To be patriarch is an honor before men
But a burden before God and before angels.
A lad can tend an irrational flock,
But where is his wisdom for a rational one?
Kindhearted Tryphon guarded the righteousness of God;
"That can never be, O Emperor," said he.
"Give the patriarchal throne to a mature man, one wiser than me,
Who will steer the Ship of God through the rocks,
And not to a child, even though he b e your son,
Who would smash the Ship of God against the rocks!"
Emperor Romanus did as he himself wished,
And saddened St. Tryphon and the people.
But the eye of God roams throughout the world,
Seeking where to bestow a wreath and where vengeance.
! REFLECTION
An elder and spiritual father said: "Arising in the morning, say to yourself: Body, work in order to feed yourself; soul, be vigilant in order to save yourself and inherit the Kingdom!" These are not empty words, but this has been the rule of many thousands of monks throughout the centuries--their daily rule of life. By labors they fed themselves; through prayer they remained vigilant. Why only for monks? Cannot this be the rule of every follower of Christ? Did not Christ Himself give us a clear example of this--an example of physical effort and constant vigilance in prayer?
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How He, in His glorified body, is close to His disciples; close to them who are seeking Him (Mary Magdalene in the Garden); close to those who are in fear (the disciples in a closed room); close to those who are hungry (those on the shore of the lake);
# How He is close, even now, to every one of us who seek Him, who is in fear, and who is hungry.
! HOMILY
! on being cautious toward all that is not according to Christ
"Beware lest any man spoil you through philosophy and vain deceit, after the tradition of men, after the rudiments of the world, and not after Christ" (Colossians 2:8).
Brethren, let us not be enslaved by philosophy, which by conjecture says that there is no eternal life or resurrection from the dead. For we do not arrive at the truth through man's conjecture, but by God's revelation. That which we know about the truth we know from Truth Itself, which was revealed in the Lord Jesus Christ and which was communicated to us through the faithful and wise witnesses of this Truth: the apostles and the saints. If we, because of our sins, reject these witnesses and accept the conjecture of humans, we will fall into dark and bitter slavery to nature, to the body, to sin and to death.
Brethren, let us not be deceived by the empty myths of men, created by men and according to men, that say that another world does not exist, or, if another world does exist, that we do not know anything about it. Behold, we know with confidence that another world does exist. We know this not from conjecturers or deceivers but from the Lord Jesus Himself Who appeared to His disciples on Mount Tabor with Moses and Elias (who had long before departed this world), and Who Himself appeared to many of His followers after His death. We also know this from the apostles, saints and numerous seers to whom, because of their chastity and sanctity, God revealed the ultimate truth about the other world. If, because of our sins, we do not believe these holy and truthful witnesses, we will then have to believe those unholy and false men, and we will be slaves to darkness, sin and death.
Brethren, let us not be led astray by worldly teaching, which examines animals, plants and stones and says that it has not found God among these things, and thus arrogantly asserts that there is no God. Behold, we know that the Creator cannot be as a thing among things; rather He is above all things and different from all things. We know this as much by spiritual understanding and conscience as by the clear revelation of the Lord Jesus Himself, Who appeared in the body of a man as the Lord of all created things--as well as by the testimony of the apostles and many other holy and discerning men. Rather, let us glorify the Lord Jesus resurrected from the dead.
! O resurrected Lord, to Thee be glory and praise forever. Amen.
! THE VENERABLE TITUS THE MIRACLE-WORKER
From his youth, Titus loved Christ the Lord and detested the vanities of the world. Because of this, he retreated from the world, entered a monastery and received the angelic habit [The Great Schema-The Angelic Face]. Without regret, he dedicated himself to the somber and narrow path of monasticism. Through great patience, he attained two basic virtues: humility and obedience. In these virtues he surpassed "not only the brethren, but also all men." From his youth he preserved the purity of his soul and body. At the time of the iconoclastic heresy he proved himself to be an unwavering pillar of the Church of God. Because of his great humility and purity, God bestowed upon him the gift of performing miracles, both during his lifetime and after his death. When he went to the Lord he left behind a countless number of disciples. He died peacefully in the ninth century.
! THE HOLY MARTYRS AMPHIANUS AND EDESIUS
These two young men were blood brothers from the city of Patara, of distinguished but pagan parents. While they were studying the secular sciences in the city of Beirut, they were enlightened by the Spirit of God and, acknowledging the falsehood of paganism, they discerned the truth of Christianity. When they returned home, they could no longer live with their pagan parents and kinsmen and secretly fled to Caesarea in Palestine, to the presbyter Pamphilius, renowned for his sanctity and spiritual learning. With Pamphilius, they studied the Law of God day and night and practiced Christian asceticism. It is said of Amphianus that he was twenty years old according to the flesh, but in understanding and generosity he was a hundred. When a persecution began during the reign of Maximian, many Christians fled the city and hid themselves. Others willingly and joyfully gave themselves into the hands of the persecutors in order to suffer for the Name of Him Who first suffered for them. Amphianus was among the latter. Unafraid, he entered a pagan temple where Prince Urban was offering sacrifices to the idols, seized the prince's hand that was holding the sacrifice, and cried out to him to refrain from serving dead idols and offering sacrifices to them, and to acknowledge the true God. Some of the pagans, who heard these words and witnessed the great courage of Amphianus, repented and embraced the Christian Faith. The enraged prince subjected Amphianus to torture. Among other tortures, they wrapped Amphianus's legs with cotton and set them on fire. When he remained alive, they cast him into the sea with a stone around his neck. The sea became turbulent and hurled his martyred body back to the city.
Edesius was first sent to a copper mine in Palestine and was later taken to Egypt. In Alexandria, Edesius was filled with holy zeal against a certain Prince Hierocles, who assembled Christian nuns, maidens and virtuous women in the market place and gave them over to the most shameful degenerates for mockery. Edesius, filled with holy zeal, struck the disgraceful prince. For that, he was tortured and drowned in the sea as was his brother Amphianus. Like two innocent lambs, they were sacrificed for Christ in about the year 306 A.D. and went to the glorious mansions of the Lord.
! HYMN OF PRAISE
! SAINT AMPHIANUS AND EDESIUS
! Two brothers offered themselves to God as a sacrifice,
Despising the decaying world, the dead corpse.
Amphianus and Edesius, brothers from the womb,
Wonderful brothers, in sufferings like unto Christ.
He who has faith in God does not value the world;
But for a dead soul, the world can replace God.
Whoever has love for Christ is not afraid of death;
Even before death he is already numbered among the immortal.
Whoever considers death as the gloomy end, the inglorious end,
Must also consider himself a slave of despair.
The martyrs considered death the veil of heaven;
They showed that to fear death is not necessary.
Do not fear, O man, that there is no heaven,
But fear the Dreadful Judgment which heaven prepares.
For a sinner it would be easier if heaven did not exist.
That is why the sinner angrily asks:
"But where is heaven?"
O sinner, heaven is not where you are,
You and heaven will never be together.
!
! REFLECTION
"It is better to be a simpleton and approach God with love than to be a learned man and at the same time an enemy of God." These are the words of the hieromartyr St. Irenaeus of Lyons. The truth of these words has been confirmed in all times and is also confirmed in our time. One thing must be added to this: namely, that the lovers of God are not simpletons, because they know God well enough to be able to love Him. Of all human knowledge, this knowledge is the most important and the greatest. To this it must be added that the enemies of God cannot be highly learned--even though they consider themselves as such--because their knowledge is unavoidably chaotic, without a source and without order. The source and order of all knowledge is God. Some of the saints, such as Paul the Simple, did not know how to read or write, yet with the strength of their spirit and divine love they surpassed the entire world. Whosoever approaches God with love is not capable of crime. Knowledge without love toward God is motivated by the spirit of criminality and war. St. Euthymius the Great taught: "Have love; for what salt is to food, love is to every virtue." Every virtue is tasteless and cold if it is not seasoned and warmed by divine love.
! CONTEMPLATION
Contemplate the Lord Jesus in hades:
# How His plan for salvation is all-abundant, encompassing all generations and all ages from the beginning to the end;
# How He came to earth in the flesh, not only for the sake of those who lived on earth then and for the sake of those who would live, but also for those who had already lived;
# How He, while His lifeless body lay in the tomb, descended into hades with His soul and announced salvation and redemption to the fettered.
! HOMILY
! on the Living God and His living children
"Whether we live therefore, or die, we are the Lord's" (Romans 14:8).
Whose are we while we live? We are the Lord's. Whose are we after we die? We are the Lord's. Whose are the righteous? They are the Lord's. Whose are the sinners? They are the Lord's. The Lord embraces all, both the living and the dead, those of the past, those of the present and those of the future. No one is so all-embracing as is the Lord Jesus. Who of the so-called benefactors of mankind--teachers, leaders or enlighteners--ever attempted to perform any good for the dead? This can be decisively answered: No one! Even the thought alone would be ridiculous in the eyes of the world--to do something good for the dead! This is amusing to all those who think that death is mightier than God, and that that which death swallows up is destroyed forever. To be concerned for the dead, to do good for the dead, has ceased to be amusing since the revelation of the Lord Jesus, Who revealed that He is God--the God of the living--and Who showed it by His actions, by descending into hades to redeem and save the souls of the righteous, from the time of Adam to the time of His death on the Cross.
Our Lord is all-embracing and all-glorious, first of all by His discerning thoughts (for He thinks about everyone and sees everyone born of women, both those who are above the graves and those who are in the graves); then by His love (for He embraces all the souls of the righteous, regardless of the time or place in which they are concealed); and finally by His labors (for He labors for everyone), to redeem them, to save them, to lead them into the Kingdom, and to glorify them before the face of His Heavenly Father, the Life-giving Spirit and the myriads of holy angels.
To Thee be glory and praise forever. Amen.
! THE VENERABLE THEODORE TRICHINAS
Theodore was a citizen of Constantinople and the son of wealthy parents. As a young man he left his parents' home and riches and entered a ermetical monastery in Thrace. Here he imposed upon himself a most rigorous life of asceticism. He slept on stones in order to sleep less. He traveled everywhere bareheaded and clothed himself in one garment made of goat's hair, for which he was called "Trichinas" [Greek] Kostret [Serbian] or "hairy." Because of his great ascetic labors for the sake of the salvation of his soul, God bestowed upon him the great gift of miracle-working, both during his lifetime and after death. He died peacefully in about the year 400 A.D. His body was seen to be flowing with myrrh [Chrism].
! THE VENERABLE ANASTASIUS OF MOUNT SINAI
Anastasius was the abbot of Mount Sinai. In the beginning he was a monk for an extended period of time under the glorious Abbot John of the Ladder (Climacus). After John's death, he then became abbot. Besides being a great ascetic, Anastasius was an eloquent author of the lives of the saints as well as instructional writings. He led a bitter struggle against the heretics, the so-called acephalites [akefalita - headless ones], who denied the decisions of the Fourth Ecumenical Council [Chalcedon, 451 A.D.]. He reposed in old age in the year 685 A.D. and took up his habitation with the Lord, Whom he had faithfully served.
! BLESSED ANASTASIUS OF SINAI, PATRIARCH OF ANTIOCH
While a monk on Mount Sinai, Anastasius was elected Patriarch of Antioch, during the reign of Emperor Justinian. He was elevated to this rank by virtue of his charity, chaste life, great spiritual learning and staunch faith. Then, Emperor Justinian fell into the heresy of Docetism [this heresy taught that Christ's sufferings were only apparent and not physically real]. Eutychius, Patriarch of Constantinople, and Blessed Anastasius sharply protested against this. The emperor banished Eutychius and also wanted to banish Anastasius, but he was unable to find anything to reproach in his life. However, when Justinian died, having repented beforehand and having reinstated Eutychius to the throne, his successor, Justin, succeeded in banishing Anastasius on the basis of some spurious calumnies. Anastasius remained in exile for twenty-three years but was reinstated to the throne of Antioch during the reign of the Emperor Maurice. He governed the Church of God for six more years and ended his earthly sojourn in the year 599 A.D.
! BLESSED GREGORY, PATRIARCH OF ANTIOCH
Gregory was an Armenian by birth. He was Abbot of the Pharanite Monastery, below Mount Sinai. When Blessed Anastasius was banished from his throne, Gregory, against his will, was installed as Patriarch of Antioch. Blessed Patriarch Sophronius [and St. John Moschus] also write very favorably about him in the //Spiritual Meadow//. Gregory was distinguished by his great compassion, especially toward sinners. He reposed in the Lord in the year 593 A.D.
! THE HOLY APOSTLE ZACCHAEUS
At first, Zacchaeus was a tax collector and a sinner. When our Lord saw him in a tree in Jericho and entered his home, Zacchaeus was brought to repentance [//He (Jesus) came to Jericho and intended to pass through the town. Now a man there named Zacchaeus, who was a chief tax collector and also a wealthy man, was seeking to see who Jesus was; but he could not see him because of the crowd, for he was short in stature. So he ran ahead and climbed the sycamore tree in order to see Jesus, Who was about to pass that way. When he reached the place, Jesus looked up and said to him: "Zacchaeus, come down quickly, for today I must stay at your house." And he came down quickly and received Him with joy. When they all saw this, they began to grumble, saying, "He has gone to stay at the house of a sinner." But Zacchaeus stood there and said to the Lord, "Behold, half of my possessions, Lord, I shall give to the poor and if I have extorted anything from anyone I shall repay it four times over." And Jesus said to him, "Today salvation has come to this house because this man is a descendant of Abraham. For the Son of Man has come to seek and to save what was lost"// (Luke 19: 1-10)]. Later on, Zacchaeus followed the Apostle Peter, who appointed him Bishop of Caesarea in Palestine, where he faithfully served the Gospel and reposed peacefully.
! THE VENERABLE ATHANASIUS OF METEORA
Athanasius was born in 1310 A.D. He lived the ascetic life on the Holy Mountain. He founded the famous Meteora Monastery in Thessaly. He possessed the great gift of clairvoyance and miracle-working.//)
--------------------
//) Archbishop Philaret of Chernigov mentions in his //Lives of the Saints //Gabriel the Child, whom a certain Jew, Schutko, lured to an isolated place and crucified. Gabriel was born in the village of Zverka near the town of Zabludovo [in eastern Poland]. He was only six years old. His parents, Peter and Anastasia Gavdjel, were absent from home that day. After thirty years, Gabriel's body was discovered incorrupt. He suffered in the year 1684 A.D.
! HYMN OF PRAISE
! SAINT ANASTASIUS
Anastasius, God-bearing father,
Took upon himself the labor of fasting and prayer.
Asceticism he maintained, long and persistent,
Until with the spirit he learned the mysteries.
Then he opened his honeyed mouth:
"Christ," said he, "is the rock of salvation.
Do not insanely say: 'He lived a long time ago.
Where is He now that He might speak unto me?'
The Gospel, His Holy Covenant--
Who is able to resist it?
It speaks to you in place of Christ Himself;
It is His all-pure mouth!
Again you say: 'I desire to see Him!'
Look with your whole mind and heart
At Holy Communion. From wine and bread,
There He is in the flesh--what else do you need?
Repent, O brother, repent of your sins.
A thousand deaths surround you!
Confess your sins to your spiritual father,
Then drink His Blood and eat His Body.
Only repent. If you begin with repentance,
You will live with justice and with shining hope.
Repent, O brother, repent of your sins.
Around you stand a thousand deaths!"
! REFLECTION
St. Anastasius of Sinai teaches: "Every Christian is given an angel from God to guard him all his life (unless, through evil deeds, he drives him away). But as smoke drives away bees and an evil smell drives away doves, so is the guardian angel of our life driven away by our sins: drunkenness, adultery, anger and so forth. The angel of every faithful man leads him to every good deed, while the demons labor to scandalize the faithful ones and deprive them of the Kingdom of Heaven." That the angels are close to men and that they take care of men is attested to by the whole of Holy Scripture, but especially by the New Testament. Besides this, there exist in the Orthodox Church numerous testimonies of saintly men and women who witness to that which St. Anastasius asserts, that is, that each one of us is accompanied in this world by a gentle and mighty messenger of God, a soldier of the King of Heaven, an angel of light. Who, except an insane person, drives a good friend away from himself? In truth, only the insane and the extremely ignorant drive away their best friends, their guardian angels, by their sins.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How He, as the Almighty Victor over death, does not seek revenge on His enemies who tortured and crucified Him, but, leaving them to themselves, He sustains His frightened friends;
# How even today, as in all times, in His innocence and meekness He does not hurry to seek revenge on the unfaithful, but hurries to the aid of the faithful.
! HOMILY
! on the one and only foundation of salvation
"For other foundation can no man lay than that is laid, which is Jesus Christ" (1 Corinthians 3:11).
The Jews say: "The foundation is Moses." The Moslems say, "The foundation is Mohammed." The shortsighted naturalists say, "The foundation is nature." We ask: Did Moses resurrect from the dead? Did Mohammed ascend into heaven? Does nature bestow the Holy Spirit, the Comforter? Moses did not resurrect. Mohammed did not ascend into heaven. Nature not only does not bestow the Holy Spirit the Comforter upon men, but breathes hatred against man and growls at him and shows its claws.
The foundation of the world cannot be one who was conceived in sin; who himself sinned; who wandered and sought counsel in women; who, by someone else's power, performed certain works; who crumbled in the grave; and whose name leads to confusion as to the way, the truth and the life. Mohammed and Moses were conceived in sin and they committed sins; they sought counsel from women; with the power of others they performed deeds; in the grave they lay decomposed; their names lead men to confusion about the way, the truth and the life.
That is why, brethren, we have nowhere to turn in history to seek another such foundation except the Lord Jesus Christ, Who was conceived without sin; Who did not commit any sin; Who did not wander and Who did not seek counsel from anyone; Who by His own power performed mighty deeds; Who did not decay in the grave; and Whose Name does not lead men into confusion regarding the way, the truth and the life.
The Apostle does not say that Christ laid down some foundation but that He Himself is that established foundation. He is all justice; that is why He is the foundation of every justice. He is all truth; that is why He is the foundation of every truth. He is all wisdom; that is why He is the foundation of every wisdom. He is all power; that is why He is the foundation of every power. He is all good; that is why He is the foundation of every good. He is all life; that is why He is the foundation of life in both worlds, in this and in the next.
O resurrected Lord, Thou are the foundation of our salvation and eternal life.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR [PRIESTLY-MARTYR] JANUARIUS AND OTHERS WITH HIM
This saint was the Bishop of Benevento in Italy. At the time of the persecution under Maximian, Januarius was brought before the court and tortured in various ways, which he blamelessly and patiently endured. When they cast him into the fire, the fire was cooled by an invisible dew, and the martyr stood unharmed amidst the flames, singing praises to God. Then they scrapped his body with iron brushes until the bones showed white, which the martyr innocently and patiently endured. His deacon, Festus, and his reader, Desiderius, witnessed the suffering of the martyr and wept for their spiritual father. Then they too were bound and, together with Bishop Januarius, were brought to the city of Pozzuoli [Puteoli, near Naples] and cast into prison. The Pozzuoli deacons Proculus and Sussos and two Christian laymen, Eutychius and Acutius, were in this same prison for the sake of Christ. The next day all seven of them were thrown to wild beasts, but the wild beasts did not touch them. They were all beheaded, and the Christians of the city of Naples secretly carried the body of St. Januarius to their city and buried it honorably in church. To the present day numerous miracles have occurred at the grave of this saint. Among the many miracles one is particularly remembered: A poor widow, whose only son had died, removed the icon of St. Januarius from the church and placed it on the body of her dead son, sobbing and praying to the saint, and her son returned to life. St. Januarius suffered honorably in the year 305 A.D.
! THE HOLY MARTYR THEODORE AND OTHERS WITH HIM
Theodore suffered for the Christian Faith in Perga of Pamphylia, during the reign of Emperor Antoninus. Theodore was young and of handsome countenance. When the governor of that province chose him, along with other young men, to be sent to the imperial court for service, Theodore objected and declared that he was a Christian. Because of this, he underwent many kinds of tortures and was then thrown into the fire. But water bubbled out of the ground and quenched the fire. The governor attributed this to some magic on Theodore's part, but the martyr said: "This is not the work of my power but of Christ my God. If you want to know the power of your gods, light another fire and throw in one of your soldiers. Then I hope you will see the power of your gods, and the almighty power of my God." Indeed, the governor wanted to cast one of his soldiers into the fire, but they, in fear, implored him to throw in Dioscorus, the pagan priest, instead. The pagan priest then begged the governor to throw in the idol of Zeus and the other idols, for if they were gods, they would easily save themselves. Dioscorus said this because he had turned to Christ in his heart, having seen the miracle that took place with St. Theodore. Learning of this, the governor sentenced Dioscorus to death by burning. Also delivered over to death by the governor were Theodore and two soldiers, Socrates and Dionysius, as well as Theodore's mother, Philippa. Theodore was crucified on a cross, on which he expired on the third day. Socrates and Dionysius were run through with a spear, and Philippa was beheaded. All were crowned with wreaths of glory in the Kingdom of Christ.
! HYMN OF PRAISE
! SAINT THEODORE THE MARTYR
"I serve one King, and I cannot serve another;
I serve the Living Christ, the Lord and God!"
Thus said Theodore to the Roman governor.
The governor looked upon him as upon a beautiful picture,
And began at first to dissuade him quietly,
But all dissuasion was to no avail.
In a fiery furnace with two companions,
Theodore filled his mouth with Psalms.
Over the terrible fire God poured a cold dew,
In the midst of the fire Theodore prayed to his Lord,
To see his mother once more before his death:
"According to Thy mercy, O God, do this for me!"
And the mother appeared before her son in the furnace;
To each other they said what had to be said.
The governor summoned the aged Philippa;
Obediently the old one responded.
"I called you," said the governor, "to counsel your son
To openly deny the Nazarene,
And to acknowledge the gods of the Roman Empire--
If you don't want your son to die."
And Philippa said: "Before I gave birth to him,
I prayed to God: 'Have mercy, Lord!'
And I received the reply that I would live
To see my son crucified for Christ.
And that is why I am now indifferent toward death;
For the death of us both am I grateful to God."
! REFLECTION
"Guard your heart!" These words were spoken in the past by experienced ascetics. Father John of Kronstadt says the same thing in our days: "The heart is refined, spiritual and heavenly by nature. Guard it. Do not overburden it; do not make it earthly; be temperate to the utmost in food and drink, and in bodily pleasures in general. The heart is the temple of God. //If any man defile the temple of God, him shall God destroy// (1 Corinthians 3:17)." Spiritual experience in ancient times and spiritual experience in our time is identical, under the condition that the confession of faith is identical. The heavenly knowledge to which the ascetics of old attained does not differ from the heavenly knowledge to which the ascetics of today attain. For, as Christ is the same today and tomorrow, so it is with human nature. The main thing is: the human heart is the same; its thirst and its hunger are the same; and nothing is able to satisfy it but the glory, power and riches of God.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How when He appeared to the apostles, He appeared to all of us;
# How His Resurrection is the proof of eternal life and the announcement of eternal life to all of mankind.
! HOMILY
! on Christ in the hearts of the faithful
"That Christ may dwell in your hearts by faith" (Ephesians 3:17).
A person does not have Christ who has Him only on his tongue. Neither does a person have Christ who has Him only on paper. Neither does a person have Christ who has Him only on the wall. Neither does a person have Christ who has Him only in a museum of the past. A person truly has Christ who has Him in his heart. For Christ is Love and the throne of Love is the heart.
If Christ is in your heart, then, for you, He is God. If He is only on your tongue, or on paper, or on a wall, or in a museum of the past--and even if you call Him God--for you, He is but a toy. Beware then, O man, for no one can play around with God without punishment.
The heart is a seemingly narrow organ, but God can dwell in it. When God dwells in it, then it is filled, and filled to overflowing, and nothing else can stand in it. If, however, the whole world were to settle in it, it would remain empty without God.
Brethren, let Christ, the resurrected and living Lord, pour faith into your hearts, and your hearts will be filled, and filled to overflowing. He cannot enter and dwell in your hearts except through your faith. If you do not possess faith, Christ will remain only on your tongue, or on paper, or on the wall, or in a museum of the past. What benefit is there for you in that? What benefit is there for you in holding life on your tongue and death in your heart? For, if you hold the world in your heart and Christ on your tongue, you hold death in your heart and life on your tongue. Water on the tongue of the thirsty does not help. Let the living Christ into your heart, and you will be permeated with the truth and you will sense unspeakable sweetness.
O resurrected Lord, cleanse our heart from the deadly guests who dwell in it, and Thou Thyself take up dwelling in it, that we may live and glorify Thee.
To Thee be glory and praise forever. Amen.
! THE VENERABLE THEODORE THE SYKEOTE
Theodore was born in the village of Sykeon in Galatia, for which he was called the Sykeote. As a child of ten, he surrendered himself to strict fasting and all-night prayer after the model of Stephen, an elder who lived in his house. His mother, Maria, was a wealthy widow and intended to dedicate her son to the military profession. St. George appeared to her in a dream and informed her that Theodore was destined for the service of the King of Heaven and not a king of the earth. St. George appeared to Theodore many times, either to instruct him or to save him from certain dangers in which the evil demons had placed him. He also had several visions of the All-holy Theotokos [Mother of God]. Theodore's asceticism surpassed in its severity that of all the living ascetics of his time. He mortified his body through hunger, thirst, iron chains, and standing at prayer all night. He did all of this in order to bind his soul with love for God and to make his soul the complete master over his body. In response to Theodore's love, the merciful Lord responded with love. God bestowed upon him great power over evil spirits and over all of mankind's diseases and afflictions. He was famous everywhere as a wonder-working healer. Because of his purity and devotion, he was consecrated Bishop of Anastasiopolis against his will. He remained for eleven years at his episcopal duty, and then implored God to free him from this service in order to again dedicate himself to his beloved asceticism. After that, he returned to his monastery, where, in his old age, he rendered his soul to his Lord, for Whom he had willingly suffered much. He reposed at the beginning of the reign of Emperor Heraclius in about the year 613 A.D.
! THE HOLY MARTYR LEONIDES
Leonides was the father of Origen. He suffered for Christ in Alexandria in the year 202 A.D. Fir, all of his property was confiscated by an edict of the emperor, and then he was condemned to death. Origen wrote to his father in prison: "Father, do not concern yourself over us and do not avoid martyrdom because of us" (i.e., because of his children).
! THE VENERABLE MONK VITALIS
During the time of Patriarch John the Merciful, a young monk appeared, who, as soon as he arrived, compiled a list of all the prostitutes in Alexandria. The asceticism of this young monk was exceptional and unique. During the day he would offer himself for hire to do the most difficult jobs, and at night he would enter the houses of ill repute, give the money he had earned to some prostitute, and close himself in the room with her the entire night. As soon as they would be locked up, Vitalis would beg the woman to lie down and sleep and he would spend the entire night in a corner of the room in prayer to God for that sinner. Thus, he would save the woman from sinning at least one night. The second night he would go to a second, the third night to a third, and so on until he had visited them all, and then he would return to the one with whom he started. By his counseling, many of the sinners abandoned their sullied trade. Some of them married, others entered convents, and still others turned to a respectable work and income. Vitalis forbade all of these women to reveal the reason why he was visiting them. Because of this, Vitalis became a scandal for all of Alexandria. The men began to scold him, spit upon him, and openly beat him in the streets. He bore all patiently, making known his good works to God and concealing them from men. When he died, everything about him became known. Over his grave there occurred many miracles of healing, and people from different places began to bring their sick to his grave. Spat upon by men, he was and has remained glorified by the Omniscient God.
! HYMN OF PRAISE
! SAINT VITALIS
Vitalis, a monk in a great city,
Hurried to his labor with prayer in his heart.
But the sinful populace pretended to be righteous;
They scorned the monk and spat upon his head.
The monk wiped his face, endured and remained silent;
He did not respond or become angry at anyone.
Then a certain young man (though old in depravity)
Approached Vitalis and struck him.
And the young man said to him: "Shameless monk,
How long will you try our patience?"
"Why did you strike me?" asked Vitalis.
"You yourself will be beaten--and the whole city will come running."
And not much time passed before the young man went insane,
For having, without God, judged the man of God.
The youth howled and the entire city became frightened;
But Vitalis peacefully departed unto God.
Then came the madman to the grave of the saint,
And at the grave he found healing for himself.
The young man himself related this tale,
And to the glorious Vitalis gave thanks.
! REFLECTION
At the time of the First Ecumenical Council [Nicaea, 325 A.D.], the quarreling clerics wrote accusations one against the other and presented them to the emperor. Emperor Constantine received all of these accusations and, not opening them, burned them over a lit candle. To the amazement of those around him, the emperor said: "If I saw with my own eyes a bishop, a priest or a monk in a sinful act, I would cover him with my cloak, so that no one would ever see his sin." Thus, this great Christian emperor embarrassed the scandalmongers and sealed their mouths. Our Faith prohibits us from being spies of the sins of others and stresses that we be merciless judges of our own sins. The sick person in the hospital is concerned with his own particular malady, so that he has neither the will nor the time to question others who are ill or to mock their illness. Are we not all in this world as patients in a hospital? Does not our own common sense emphasize that we look at our own illness and not at another's? Let no one think that he will be cured of his illness in the other world. It is this world that is the hospital and place for healing; in the next world there is no hospital; there is either a palace or a prison.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How by His Resurrection, He justified the faith and hope of mankind in immortality;
# How by His Resurrection, He destroyed the fear of death in the faithful.
! HOMILY
! on the power of God in the weakness of men
"For when I am weak, then am I strong" (2 Corinthians 12:10).
There are no contradictions in Holy Scripture, and even in these words there is no contradiction, even though it sounds like there is. The physical is governed by sound, while the spiritual is governed by meaning. For physical man, there are contradictions everywhere, for he is afraid of obstacles and flees from a shadow if it seems to be an obstacle for him. The spiritual man is like a knight who likes to overcome obstacles. For the spiritual man, the entire science of salvation is hidden in these words of Scripture.
//For when I am weak, then am I strong.// That is, when I am cognizant of my nothingness and the omnipotence of God, then I am strong. When I know that I, of myself alone, cannot do any good either for myself or for others, and when I totally entrust myself to the power and mercy of God, then I am strong. When I sense that I am as a drowning person in this world, and that I am not in a position to grasp the extended hand of God and to hold onto it by my own strength, but instead cry out to God that He take hold of my hand and pull me out of the depths of the sinful abyss, then I am strong. When I see that I am weak and that I am a hollow reed amidst the tempest of winds and floods--a reed which God is able to fill with His almighty grace--and when I pray with faith for God's grace, then I am strong.
O my weak brethren, let us entrust ourselves to the power of God, that we, in our nothingness, may be strong. Relying on man, you are weak, but relying on God, you are strong. Adhere to God, and all the power of God will be with you. Confess your weaknesses before God, and God will send you His all-powerful grace. This is confirmed for you by the Apostle through his example and through his experience: //For when I am weak, then am I strong//. In truth, there is no contradiction in Holy Scripture. The physical man speaks about contradiction in terms of the sound of the words, but the spiritual man enters into the meaning, and shatters the illusion of contradiction through experience.
O resurrected Lord, have mercy on our weakness and fill us with Thine omnipotent grace.
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT-MARTYR GEORGE
This glorious and victorious saint was born in Cappadocia, the son of wealthy and virtuous parents. His father suffered for Christ, and his mother then moved to Palestine. When George grew up he entered the military, where he attained, in his twentieth year, the rank of tribune, and as such he was in the service of the Emperor Diocletian. When Diocletian began his terrible persecution of Christians, George came before him and courageously confessed that he was a Christian. The emperor had him thrown into prison and ordered that his feet be placed in stocks and that a heavy stone be placed on his chest. After that, the emperor commanded that George be tied to a wheel, under which was a board with large nails, and he was to be rotated until his whole body became as one bloody wound. After that, they buried him in a pit with only his head showing above the ground, and there they left him for three days and three nights. Then George was given a deadly poison to drink by a magician. But through all of these sufferings, George continuously prayed to God, and God healed him instantly and saved him from death, to the great astonishment of the people. When he also resurrected a dead man through his prayers, many accepted the Christian Faith. Among these were Alexandra, the wife of the Emperor Diocletian; the chief pagan priest; the farmer Glycerius; and Valerius, Donatus and Therinus. Finally the emperor commanded that George and his own wife Alexandra be beheaded. Blessed Alexandra died on the scaffold before being beheaded, and St. George was beheaded in the year 303 A.D. The miracles which have occurred over the grave of St. George are countless. Numerous are his appearances, both in dreams and openly, to those who, from that time to today, have invoked him and implored his help. Inflamed with love for Christ the Lord, it was not difficult for this saintly George, for the sake of this love, to leave all: rank, wealth, imperial honor, his friends and the entire world. For this love, the Lord rewarded him with a wealth of unfading glory in heaven and on earth, and with eternal life in His kingdom. In addition, the Lord bestowed upon him the power and authority to assist all those in afflictions and difficulties who honor him and call upon his name.
! THE HOLY NEW MARTYR LAZARUS
This new martyr Lazarus was by birth a Bulgarian from Gabrovo. As a young man he left the place of his birth and went to Anatolia. Lazarus tended sheep in the village of Soma. As a Christian, Lazarus provoked the wrath of the Turks against himself and was cast into prison by a certain agha. After prolonged tortures from inhuman tormentors, which Lazarus heroically endured out of love for Christ, this young martyr was killed on April 23, 1802, in his twenty-eighth year. The Lord received him into His eternal courts and glorified him in heaven and on earth. Countless miracles have occurred over the relics of St. Lazarus.
! HYMN OF PRAISE
! SAINT GEORGE THE GREAT MARTYR
Saint George, on a tall horse,
Saved the maiden from the dragon.
On his lance was the sign of the Cross:
The holy weapon, invincible.
With this weapon, he slew the dragon,
And returned the maiden alive and well to her father.
With his goodness he indebted God Himself;
With a wreath of glory God repaid him.
Saint George, with a hero's heart,
Distributed all his wealth to the poor,
And rejected the honor and glory of the world
For the sake of the name of Christ the Victor.
Sufferings he embraced, and to sufferings consented.
His body was crushed for the sake of his soul's salvation.
With his goodness he indebted God Himself;
With a wreath of glory God repaid him.
George the Saint and Victory-bearer
Walks even now with a cruciform spear.
Justice he defends, injustice he punishes.
Whoever invokes him with faith and tears,
Whoever prays to him with a repentant soul--
To his aid flies George the Saint.
With his goodness George indebted God Himself;
With a wreath of glory God repaid him.
! REFLECTION
In the course of an uprising in Constantinople during the reign of Emperor Constantine, some embittered men broke off the nose and ears of the statue of the emperor in the city. Many flatterers quickly came to the emperor and with great disgust told the emperor how rebels had broken the nose and ears from his statue, and they asked the emperor to punish the transgressors with the most severe punishment. The great emperor felt his nose and ears with his hands and said to the flatterers: "I feel that my nose and ears are whole and undamaged!" The flatterers were ashamed and withdrew. With such royal magnanimity we all need to endure insults from others. Yet let us listen with particular caution to the accusations against others that our flatterers bring to us. We should always confess before God and before ourselves that we, because of our sins, deserve even greater insults than those that are perpetrated against us.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How His Resurrection is the beginning of a new and bright day in the history of mankind;
# How His Resurrection is my peace and my strength, and the resurrection of my soul while I am still in the body.
! HOMILY
! on stirring up pure minds
"This second epistle, beloved, I now write unto you; in both which I stir up your pure minds by way of remembrance" (2 Peter 3:1).
Do you see, brethren, the aim with which the Apostle Peter writes his epistle? To stir up in people their pure minds! The apostle considers this to be the main thing. And truly, it is the main thing. For if in every man the dormant pure mind were awakened, there would not be a single human soul left on earth who would not believe in Christ the Lord, who would not confess Him as the crucified and resurrected Savior of the world, and who would not contritely turn to repentance for sins committed under the influence of an impure mind.
Nothing distances us more from the Gospel than an impure mind. What makes the mind of man impure? Sin. As milk, when poison is poured in, becomes completely poisonous, so the human mind, when impure sin enters into it, becomes completely impure. Every sin is impure; every sin makes the mind of man impure, muddy and poisonous. All knowledge which an impure mind possesses is impure, like a muddied and soiled image of an object in a muddied and soiled mirror. //Unto the pure all things are pure// (Titus 1:15), said Paul, the other chief apostle. While Adam had a pure mind in Paradise, all of his knowledge about the Creator and created things was clear and true. Sin darkened his mind and the minds of his descendants. That paradisal, pure mind of the sinless man is not dead; rather it is dormant in men who are under sin. It is necessary only to awaken it, and then it will unerringly lead man back to Christ. That is why the apostle takes the responsibility to awaken in men that original, pure, clear, discerning, God-given mind.
O my brethren, let us assist the holy apostle--who was crucified upside down for his preaching--in awakening men. Let us help him, at least in whatever way it concerns us, and let each of us awaken our own pure mind. If every one of us does this, we will see that all of us have one mind. For a pure mind is one, while impure minds are legion!
O resurrected Lord, awaken in us a pure mind, through the prayers of Thy Holy Apostle Peter.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR SABBAS STRATELATES [THE GENERAL]
This glorious Sabbas lived in Rome during the reign of Emperor Aurelian and held the rank of general. By ancestry, he was of a Gothic tribe. He often visited Christians in prison and assisted them from his own estate. Because of his great purity and fasting, God gave him authority over unclean spirits. When Sabbas was accused of being a Christian, he courageously stood before the emperor, threw down his military belt, and openly confessed Christ the Lord. Sabbas was tortured in various ways: he was flogged, scrapped with iron claws, and burned with candles. He did not succumb to these deadly tortures but appeared alive and healthy. His military companions, seeing that God was obviously helping him, embraced the Christian Faith, and seventy of them were immediately beheaded by order of the emperor. Christ the Lord Himself appeared in a great light to St. Sabbas in prison and encouraged His martyr. After that, Sabbas was condemned to death by drowning. He was thrown into a deep river, where he gave up his soul to God in the year 272 A.D. His soul went to the Lord, to Whom he had remained faithful through many tortures.
! THE VENERABLE ELIZABETH
In her early youth Elizabeth entered the monastic state in the Monastery of Saints Cosmas and Damian in Constantinople, taking upon herself heavy ascetic labors for the sake of Christ God and for the sake of her soul. She considered herself a bride of Christ and viewed this world as though it did not exist. Her great compassion toward people, especially toward the sick and the suffering, emanated from her great love for God. With the gift that God had bestowed upon her, she cured various diseases and afflictions of the people. During her nightly prayers she was seen to be encompassed by a heavenly light. Following her death, her relics possessed the power of healing, and a great number of the sick and suffering have gathered at her grave throughout the ages. She died peacefully and entered into the eternal joy of her Lord in the year 540 A.D.
! THE HOLY MARTYRS EUSEBIUS, NEON, LEONTIUS AND LONGINUS
These four were military companions of St. George. Witnessing the courageous endurance and miracles of St. George, these wonderful soldiers became Christians, for which they were beheaded.
! THE HOLY MARTYRS PASICRATES AND VALENTINE
When the judge urged Pasicrates to offer sacrifice to the idols, (as he had likewise urged the martyr's brother, Papianus, who fell away from Christ because of the fear of torture), Pasicrates placed his hand in the fire and cried out: "The body is mortal and is consumed by fire, but the soul is immortal and does not feel the visible sufferings!" His mother sustained him and encouraged him to endure to the end. He was beheaded with Valentine and both took up habitation in the Kingdom of Christ in about the year 228 A.D.
! THE VENERABLE THOMAS, FOOL-FOR-CHRIST
Whenever he was in the city of Antioch on business for the monastery, Thomas always feigned insanity for the sake of Christ. A certain Anastasius did not want to give Thomas the alms that he sought for the monastery but struck him with his fist. Thomas then prophesied: "From now on, neither will I receive anything from Anastasius, nor will Anastasius be able to give me anything." After one day Anastasius died, and Thomas, prior to his return to the monastery, also died. Thus, the prophecy of this holy man was fulfilled. St. Thomas reposed in Daphni, near Antioch, in the time of Patriarch Domnus (546 - 560 A.D.).
! THE HOLY NEW MARTYRS LUKE AND NICHOLAS
This wonderful young man Luke, a tailor by trade, suffered martyrdom for Christ in 1564 A.D. Nicholas suffered martyrdom in the year 1776 A.D.
! HYMN OF PRAISE
! SAINT THOMAS THE FOOL-FOR-CHRIST [DISCERNER]
St. Thomas pretends to be deranged
For the sake of Christ his Savior,
But in his heart he glorifies God,
The only One, the Creator of the world.
God's name is in his heart:
"Have mercy upon me, O good God!"
He nourishes his soul by this:
"Have mercy upon me, O good God!"
Holy Thomas is not concerned
What the world will say about him.
"Let the world rant, let it threaten;
God will pronounce true judgment.
Whosoever pleases the world
Will be found to be false before God."
And Thomas smiles
At the world which pretends to be important.
"O you shadow above the water,
Why do you pretend to be so important?
All reality is in the Lord
When you consider yourself as nothing,
Then will you glorify Him."
! REFLECTION
In exhorting Christians to attend church for prayer, St. John Chrysostom says: "If someone delivers to subjugated citizens a royal decree, the citizens do not question the life of the messenger, as to whether he is rich or poor or righteous or sinful, but all listen attentively to that which he is reading. If someone has not heard, he asks one who has heard. When you have such great awe of earthly rulers, how much more should you heed us (priests) here, where the Creator of the heavenly powers speaks through us sinners?" Indeed, what is Holy Scripture but a document [Grammata, Letter] of the Heavenly King? Why is it that this unique and saving document does not interest us every day and every hour, when the least authority in the country and his trivial orders do interest us? St. Anthony said: "Let everything you do have its justification in Holy Scripture." But how can you have justification in Holy Scripture if you are not familiar with Holy Scripture?
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How His Resurrection drives away from us all confusion, gloom and sadness;
# How His Resurrection instills serenity, courage and goodwill into the souls of men.
! HOMILY
! on the vanity of everything in comparison with Christ
"I ... count them but refuse, that I may win Christ" (Philippians 3:8).
The Apostle who wrote this had worldly knowledge; he had wealth and friends; he had youth and health; he had all the requisites of worldly success among his people. But he says, "I left all." For the sake of Christ Jesus the Lord, he left all. Before the sages of this world, he became as a fool; before the rich, he became as a beggar; before his friends, he became as an enemy. He exhausted his youth and health by voluntary sufferings and afflictions. With one stroke he closed for himself all prospects for worldly success. Why did you do this, O Holy Apostle Paul? Because, //I ... count them but rubbish, that I may win Christ.//
Brethren, did the Apostle Paul deceive himself, leaving everything as rubbish, and did he gain something greater in gaining Christ? Twenty centuries have testified that the holy Apostle did not deceive himself and that, in gaining Christ, he received something incomparably greater and better than that which he had abandoned and sacrificed. He received wisdom above all worldly knowledge; and riches imperishable and incorruptible; and friends in the form of the true angels of God; and eternal youth without disease and aging; and divine success that lasts without change in eternal life. All of this he gained in gaining Christ. All of this he received in leaving all that the world offers to its favorites.
Indeed, brethren, Christ is better than the world. There are no words that could express His superiority over the world. The world deceives its favorites, but Christ rewards His true favorites. The world gives little and takes all. The world offers decay and takes away life. Christ, however, seeks little and gives all. He seeks that we discard decay, and He gives us eternal life. Brethren, Christ is our one and only true friend.
O resurrected Lord Christ, help us to renounce triviality, to renounce decay, and grant us eternal life.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE AND EVANGELIST MARK
Mark was a traveling companion and assistant to the Apostle Peter, who, in his first Epistle calls him his son--not a son according to the flesh but a son according to the spirit [//The chosen one at Babylon sends you his greeting, as does Mark, my son (1 Peter 5:13)]//. While Mark was in Rome with Peter, the faithful begged him to write down for them the saving teaching of the Lord Jesus, His miracles and His life for them. Thus Mark wrote his Holy Gospel, which the Apostle Peter himself saw and bore witness to as true. Mark was appointed as bishop by the Apostle Peter and was sent to Egypt to preach. And thus St. Mark was the first preacher of the Gospel and the first bishop in Egypt. Egypt was entirely oppressed by the thick darkness of paganism, idolatry, soothsaying and malice. With the help of God, St. Mark succeeded in sowing the seed of the teaching of Christ throughout Libiya, Ammonicia and Pentapolis. From Pentapolis, St. Mark came to Alexandria, where the Spirit of God led him. In Alexandria, he succeeded in establishing the Church of God, in ordaining bishops, priests and deacons, and in firmly strengthening them all in the honorable Faith. Mark confirmed his preaching through many great miracles. When the heathens raised accusations against Mark as a destroyer of their idolatrous faith, and when the governor of the city began searching for Mark, he again fled to Pentapolis, where he continued to strengthen his earlier work. After two years, Mark returned to Alexandria, to the great joy of all the faithful, whose number had greatly multiplied. On this occasion, the pagans seized Mark, bound him tightly, and began to drag him over the cobble stone pavement, crying out: "Let us drag the ox to the pen." Wounded and bloodied all over, Mark was cast into prison, where at first a heavenly angel appeared to him, encouraging and strengthening him. Then the Lord Jesus Himself appeared to him and said: "Peace be to thee, Mark, my Evangelist!" To that Mark replied: "Peace be to Thee also, my Lord Jesus Christ!" The next day the vicious men brought Mark out of prison and again dragged him through the streets with the same cry: "Let us drag the ox to the pen." Completely exhausted and worn out, Mark uttered: "Into Thy hands, O Lord, I commend my spirit." Mark expired and his soul went [was translated] to the better world. His holy relics were honorably buried by Christians and, through the centuries, have given people healing from all afflictions, pains and diseases.
! SAINT ANIANUS, SECOND BISHOP OF ALEXANDRIA
When St. Mark stepped out of the boat onto dry land in Alexandria, the sandal on one foot became torn. He then saw a cobbler and gave him his sandal for repairs. In mending the sandal, the cobbler pierced himself in the left hand with the needle. Blood began to flow, and the cobbler screamed in pain. Then the apostle of God mixed some dust with his spittle and anointed the wounded hand, and suddenly the hand became whole again. Astonished at this miracle, the cobbler invited Mark to his home. Hearing Mark's preaching, Anianus--such was the cobbler's name--was baptized, with his entire household. Anianus displayed so much virtue and so much zeal for the work of God that St. Mark consecrated him bishop. This holy man was the second bishop of the Church in Alexandria.
! HYMN OF PRAISE
! THE HOLY APOSTLE AND EVANGELIST MARK
Mark the Evangelist flew to Egypt
As a bee with honey. And Egypt experienced
The sweetness of Christ's honey, the sweetness of living knowledge.
And the people were amazed at Christ:
How He was incarnate in His divine care for the world,
How He humbled Himself for the sake of man's salvation,
And how He resurrected in glory and in power.
"Until now we walked through thick darkness!"
Said the Egyptians: "Now the sun rises for us.
Let us rejoice, O people, in this bright day!"
Mark watered his wonderful crop with his blood,
And due to this, all the idols collapsed,
And Egypt was baptized: the land of the pharaohs
Became the field of God, the Apostolic Church.
! REFLECTION
The devil quickly finds work for idle hands, but an angel quickly finds work for diligent ones. In this world of constant movement and constant change, a man must always be busy, whether he wants to or not, either with good works or with evil ones. The idle man is actually not lazy. He is a diligent worker for the devil. An idle body and an idle soul are the most suitable field for the devil's plowing and sowing. St. Anthony the Great says: "The body needs to be subdued and immersed in prolonged labors." St. Ephraim the Syrian teaches: "Teach yourself to work, so that you will not have to learn to beg." All of the other Holy Fathers, without exception, speak of the necessity of work for the salvation of the soul of man. The apostles and all the saints give us an example of continuous and concentrated spiritual and physical labor. That the idle man, by his idleness, does not extend his life on earth but shortens it, is clearly shown by the longevity of many saints, the greatest laborers among the laborers in the world.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How His Resurrection incites us and strengthens us for every good work, physical and spiritual;
# How His Resurrection enlightens our every good work with the light of hope in the Living God, Who counts our works, measures them and preserves them for the Day of Judgment.
! HOMILY
! on the apostles' love of labor
"Neither did we eat any man's bread for nought; but wrought with labor and travail night and day, that we might not be chargeable to any of you" (2 Thessalonians 3:8).
First fulfill, then teach. All the apostles and all of the saints of God adhered to this rule. Thus the Apostle Paul, even before he spoke the command //that if any would not work, neither should he eat//(2 Thessalonians 3:10), declared for himself, and for his assistants in preaching, that they not eat anyone's bread for free, but that by effort and labor they earn their bread. //Wrought with labor and travail n! ight and day!// Behold the true laborers! Behold the honey-bearing bees of Christ! Daily and nightly toil--where is there time for sin? Daily and nightly toil--where is there room for sin? Daily and nightly toil--where can the devil weave his nest of passions? Daily and nightly toil--where is there cause for scandal?
In some Egyptian and Palestinian monasteries there lived about ten thousand monks. They all lived by the labor of their hands: by weaving beehives, baskets and mats, and by other types of handiwork. Daily and nightly toil, and daily and nightly prayer. When a monk sold his beehives in town for a price higher than that which the abbot designated, the monk was punished for it. For the ascetics it was not a matter of enrichment but only of the most essential nourishment and the simplest clothing. In this, the ascetics were and are the true followers of the great apostles.
O my brethren, let us flee from slothfulness [idleness] as from a cave of wild beasts. If by some chance we fall into a cave of wild beasts, let us quickly flee from it, before the wild beasts totally seal off the entrance. The cave is the dwelling place where the slothful man seeks rest. The wild beasts are evil spirits, who feel more at home in such a dwelling place than near their king in hades. O Lord, Who art wonderful in all the works of Thy creation, awaken us from slothfulness and encourage us to labor day and night, by Thine encouraging Holy Spirit.
To Thee be glory and praise forever. Amen.////
! THE HIEROMARTYR [PRIEST-MARTYR] BASIL, BISHOP OF AMASEA
Licinius, brother-in-law of Constantine, to whose sister he was married, pretended to be a Christian before the great emperor. When he received authority from the emperor to govern the entire East, he began, at first secretly and later openly, to persecute the Christians and to strengthen idolatry. His wife grieved much over this, but she was unable to dissuade her husband from this shamefulness. Giving himself over to idolatry, Licinius also gave himself up to all the passions without restraint but, most of all, to brutality toward women. Under the assault of these unclean passions, Licinius wanted to defile the virgin Glaphyra, who was in the service of the empress. Glaphyra complained to the empress, and the empress secretly sent her away from the imperial court of Nicomedia to the province of Pontus. Glaphyra arrived at the town of Amasea and was cordially received by Bishop Basil and other Christians. Glaphyra was elated that God had saved her virginity, and she wrote to the empress concerning this. The empress also rejoiced and she forwarded money to the church in Amasea. However, a letter of Glaphyra's, which was directed to the empress, fell into the hands of the emperor's eunuch, who showed it to Licinius. The emperor, learning where Glaphyra was staying, immediately ordered that she and the bishop be brought back to Nicomedia. In the meantime Glaphyra died, and the soldiers brought Basil back to Nicomedia, alone and bound. Following tortures and imprisonment, this blessed man was beheaded and thrown into the sea, in the year 322 A.D. Through a vision of an angel of God, his clergy found his body near the town of Sinope. They removed his body from the water with the aid of a fisherman's net and translated it to Amasea, where they honorably buried it in the church which he, by his efforts, had built. The Emperor Constantine raised up an army against Licinius, defeated him, captured him, and exiled him to Gaul, where he ended his God-hating life.
! SAINT JANIĆIJE OF DEVIČ
Janićije was a Serb from Zeta. As a young man he was overwhelmed with love for Christ. He left his home and family and withdrew to the region of Ibar at the mouth of the Black River, into a narrow cave, in which, according to tradition, St. Peter of Koriš had lived a life of asceticism before him. When his fame began to spread among the people, he fled to Drenica and hid in the thick forest of Devič. Here St. Janićije spent years in solitude, silence, and prayer. According to tradition, the Serbian Prince George Branković brought his mentally ill daughter to him, and the saint healed her. In gratitude, George built a monastery on this spot, known today by the name of Devič. The holy and wonderworking relics of Janićije repose there. In this monastery, more recently, there lived in asceticism a famous and God-pleasing hermitess, the nun Euphemia, better known in the area of Kosovo by the name "Blessed Stojna." She reposed in the Lord in the year 1895 A.D.
! SAINT STEPHEN, BISHOP OF PERM
Stephen was a Russian by birth. From an early age he was devoted to prayer and divine contemplation. As a young man, Stephen went to Rostov, where he was tonsured a monk in the Monastery of St. Gregory the Theologian. Learning about the land of Perm, which was completely overrun with the weeds of paganism, Stephen desired to become a missionary in this land.
He immediately dedicated himself to studying the language of Perm, and when he had mastered the language, he composed an alphabet and translated the ecclesiastical books into that language. With the blessing of the Metropolitan of Moscow, Stephen, as a presbyter, started out on his apostolic mission and began to preach the Gospel with apostolic zeal in the dense darkness of the paganism of Perm. Having baptized a few souls, he endeavored to build a church in Perm dedicated to the Holy Annunciation. When the Church of God flourished in Perm, he was consecrated as its bishop. Undergoing every hardship, affliction, malice and humiliation, he succeeded in dispelling the darkness among the heathens of Perm and in illuminating them with the Light of Christ. In his old age he returned to Moscow once more, and there he ended his earthly life and took up his habitation with the Lord in the year 1396 AD.
! HYMN OF PRAISE
! SAINT BASIL OF AMASEA
Basil languishes in a dungeon
For the honorable Cross and the Faith of Christ.
Psalms he chants; God he praises,
That for righteousness' sake He has granted him suffering.
The emperor's tribune says to Basil:
"Listen, old man, the emperor Licinius, protector of the gods,
Orders that you offer sacrifice to the idols,
And that you dismiss the man Christ.
If you do not, an evil death awaits you."
Basil shines with joy,
And to the tribune he wonderfully responds:
"Go tell your wicked emperor:
If you gave me even your entire kingdom,
But took away my resurrected Christ,
You would take more than you gave.
Traitor to Christ the Savior,
Do you want to make me a traitor, too?
O giver-of-death, I am not afraid of death;
I am a servant of Christ the Giver of life."
! REFLECTION
The saints are alive and their God-given power does not diminish in time. St. Janićije of Devič works miracles today, even as he did during his life on earth some five-hundred years ago. A certain Miloš from Hercegovina prepared to travel to Jerusalem on a pilgrimage to the holy shrines. As he was about to depart on his way, St. Janićije appeared to him in a dream and told him not to go to Jerusalem. "Rather than go to Jerusalem, it would be better for you to go to Devič," explained the saint, "and there, to restore my church and put it in order." Miloš obeyed the saint and went to the neglected Devič, cleaned it, put it in order, and made it possible to sing praises to God there again. Miloš became a monk there and remained until the end of his life. During the First World War and the Austrian occupation, a Hungarian officer with a detachment of soldiers came to Devič. The officer ushered Damaskin, the abbot of the monastery, before the reliquary of St. Janićije and asked him what was under the slab? "Holy things," replied the abbot. "What kind of holy things?" the officer laughed. "You have something hidden under there." He then ordered the soldiers to strike the slab with pickaxes and overturn it. While this was being done, the officer was seized with pain in his abdomen. He lay down in bed and, before evening of the same day, died. The frightened soldiers left their work undone and fled the monastery.
! CONTEMPLATION
Contemplate the resurrected Lord Jesus:
# How His Resurrection is a great light, which dispels the darkness of our doubt, ignorance and despair concerning life after death;
# How His Resurrection is a great light that illuminates the path on which we must travel in this world in order to arrive at the other world.
! HOMILY
! on Christ as the affirmation of all good
"For the Son of God, Jesus Christ, who was preached among you by us, even by me and Silvanus and Timothy, was not yea and nay, but in him was yea" (2 Corinthians 1:19).
Christ is not light and darkness, but only light. Christ is not truth and falsehood, but only truth. Nor is Christ life and death; He is only life. Nor is He strength and weakness; He is only strength. Nor is He love and hate; He is only love. He is the "yea" for every good, and in Him there is no vacillating between "yea" and "nay." His teaching is all-pure, all-true, all-light and all-loving toward mankind. His path is accurately hewn and He does not permit swerving either to the left or to the right. Not even a shadow of sin can pass over His teaching or find a place on His path. His Person is the incarnation of goodness; all that is good is in Him, and all that is sinful, false, malicious and unjust is outside of Him.
This is the teaching, this is the path, and this is the Person of Christ that the apostles of God preached: a teaching that is the affirmation of good and the revelation of the infinite treasury of good; a path that leads to the realization and the eternal enjoyment of that good; a Person Who contains in Himself all good and the complete affirmation of good.
Brethren, let us also adhere to this unique Person, this unique path, and this unique teaching.
Almighty Lord, help us by the power of Thy Holy Spirit, so that our insignificant life on earth will become an affirmation of good and not a denial of good.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE SIMEON
He was the son of Cleopas, who was the brother of Joseph, the betrothed of the All-holy Mother of God. Seeing the miracles of our Lord and Savior Jesus Christ, Simeon believed, and was numbered among the Seventy Apostles. With great zeal and courage he preached the Gospel of Christ throughout Judea. When the iniquitous Jews killed James, the brother of the Lord and the first bishop of the Church of Jerusalem, by hurling him from the heights of the Temple and beating him over the head with a club, then this Simeon, a cousin of James, was appointed Bishop of Jerusalem. And Simeon, as the second bishop of the Holy City, governed the Church of God with wisdom and strength unto great old age. He was over a hundred years old when he suffered. His suffering was in this manner: During the reign of Emperor Trajan, a twofold persecution began in Palestine--against the descendants of David and against the Christians. Wicked men accused Simeon of being both. St. Simeon endured harsh torture and was finally crucified, as had been the Lord, Whom he had faithfully served on earth.
! THE VENERABLE STEPHEN, BISHOP OF VLADIMIR
Stephen was a disciple of St. Theodosius of the Monastery of the Kiev Caves. For a while, Stephen was Abbot of the Monastery of the Caves, and he labored much in the regulation and organization of the monastic life and in the adornment of churches. Then the devil incited malice among the monks against Stephen; not only did they remove him from the abbacy but they banished him from the monastery. But God, Who does not abandon the righteous under the humiliation of the unrighteous for long, directed the life of the Venerable Stephen so that he was elected as Bishop of Vladimir. As a hierarch of God, Stephen governed the Church until old age and reposed peacefully in the Lord in the year 1094 A.D.
! THE BURNING OF THE RELICS OF SAINT SAVA, ARCHBISHOP OF SERBIA
The body of St. Sava was buried in Mileševo Monastery. During the time of the Turkish tyranny, the Serbian people gathered around the relics of their saint to seek comfort and healing. Fearing that an insurrection against the Turks might arise from that place, Sinan Pasha of Belgrade ordered that the relics of St. Sava be brought to Belgrade and he burned them there on Vračar hill, on April 27, 1594 A.D. But with the burning of the relics of this saint, the demon-ridden Pasha did not burn the saint, who remains alive before the throne of God in the heavens and in the hearts of his people on earth.
! THE VENERABLE JOHN, THE CONFESSOR
John was the Abbott of the Cathares Monastery. This monastery was established near Nicaea during the reign of Justin in the sixth century. Because of his veneration of icons and his defense of the veneration of icons, John suffered much at the hands of the Emperors Leo and Theophilus and died in exile, in about the year 832 A.D.
! HYMN OF PRAISE
! THE HOLY APOSTLE SIMEON
Simeon, radiant with youth and strength,
When he drew near to the gracious Teacher,
Saw not a relative known to him according to the flesh
But the unknown God in bodily form.
And by this great light the entire world became dark to him.
When he came to himself he parted with the world,
And as a powerful eagle in lofty flight,
He raised his spirit toward heaven and the heavenly world.
Through Christ he recognized the goodness of God,
Immortal life, immortal beauty.
Through Christ he further recognized true Man.
Thus he scorned the glory and the honor of this age,
And as a honeybee he gave himself to labor,
Not grieving over his youth, not grieving over his body,
But fulfilling the Law of Christ unto the end,
Becoming worthy of Paradise divine.
And, crucified upon a Cross, the hundred-year-old elder
Felt not the sting of death,
For long ago he had resurrected in spirit;
Now he waits to resurrect in glory in the body.
! REFLECTION
The true Faith must be persecuted in this world. The Savior Himself said this clearly and openly to His apostles. St. Apollinarius of Hierapolis, in writing against the Montanist heretics, says: "Let them tell us before God: who, out of all their prophets, beginning with Montanus and his wives, was persecuted by the Jews and killed by the ungodly? No one. Who from among them was taken away for the name of Christ and was crucified on the cross? Again, no one. Have any of the women ever been flogged or stoned in the Jewish synagogues? Never and nowhere." The Orthodox saint is saying that the true Faith, on the other hand, must be persecuted in this world. Heresies are generally closer to the worldly and demonic spirit, and thus the world and the demons do not persecute their own. To be constantly persecuted--with brief intervals in between--is a characteristic of the Faith and the Orthodox Church. This persecution has existed, either from without or within--externally from unbelievers and internally from heretics--throughout all of history.
! CONTEMPLATION
! Contemplate the resurrected Lord Jesus:
# How He commanded that repentance and forgiveness of sins be preached in His name;
# How He commanded His disciples to await the Father's promise of the power of the Holy Spirit from on high.
! HOMILY
! on the persecution of the godly
"We much through much tribulation enter into the Kingdom of God" (Acts 14:22).
"Yea, and all that will live godly in Christ Jesus shall suffer persecution" (2 Timothy 3:12).
The Lord Jesus both prophesied this and proved it true by His own example. The apostles also said this and by their example they proved it. All the God-bearing Fathers of the Church, the confessors and the martyrs also said this and proved it by their example. Therefore, is there any need to doubt that it is through a narrow door that one enters the Kingdom of God? Should we hesitate for a moment as to whether //we must through much tribulation enter into the Kingdom of God?! // No, there is no basis or justification for doubt. Can sheep live among the wolves and not be attacked by them? Can a candle burn amidst crosswinds and not be bent to and fro? Can a fruitful tree grow alongside the road and not be disturbed by passersby? Thus, the Church of pious souls cannot but be persecuted again and again--by heathens, by idolaters, by heretics, by apostates, by passions and vices, by sin and transgressions, by the world, and by demons. Thus, not one devout soul can remain without persecution, be it external or internal, until it is separated from the body and the world. Someone may take issue with this and try to prove something different, according to his own calculation and logic. But here neither the mind nor the logic of one man is of any avail. Thousands who were crucified speak otherwise, thousands who were burned alive cry out otherwise, thousands who were beheaded prove otherwise, and thousands who were drowned witness otherwise. O my brethren, the Christian Faith is mighty not only when it agrees with sensual reasoning and sensual logic, but when (and especially when) it contradicts sensual reasoning and sensual logic.
Those who want to live a godly life will be persecuted. This the Apostle prophesied at the beginning of the Christian era, and twenty Christian centuries render a many-voiced echo to confirm the truth of the prophecy.
O resurrected Lord, grant us light, that we may be pious to the end, and give us the strength to endure persecution to the end.
To Thee be glory and praise forever. Amen.////
! THE HOLY APOSTLES JASON AND SOSIPATER, AND THE VIRGIN CERCYRA
The first two were of the Seventy Apostles and the latter was the daughter of a king from the island of Corfu. Jason and Sosipater are mentioned by St. Paul and he calls them his kinsmen! (Romans 16:21). Jason was born in Tarsus, as was the Apostle Paul, and Sosipater was born in Achaea. The first was appointed bishop of Tarsus by the apostle and the other was appointed Bishop of Iconium. Traveling about and preaching the Gospel, these two apostles arrived on the island of Corfu, where they succeeded in building a church to the honor of St. Stephen the Protomartyr and in winning over some heathens to the Church. The king of the island threw them both into prison, where seven thieves were also imprisoned. Their names were Saturnius, Jakischolus, Faustianus, Januarius, Marsalius, Euphrasius and Mammius. The apostles converted these seven to the Christian Faith, turning these wolves into lambs. Upon hearing this, the king ordered that these seven be put to death in boiling pitch. Thus they received wreaths of martyrdom. Later, while the king was torturing the apostles, his daughter, the virgin Cercyra, watched the suffering of these men of God from the window. Learning for what reason they were being tortured, she declared herself a Christian and distributed all of her jewels to the poor. The king became enraged at his daughter and shut her in a special prison. Since he was unable to dissuade her from Christ by this imprisonment, he ordered that the prison be burned. The prison burned, but the virgin remained alive. Upon seeing this miracle, many people were baptized. The infuriated king then ordered his daughter to be tied to a tree and slain with arrows. Those who believed in Christ fled from the terrible king to the nearest island and hid themselves. The king pursued them by boat in order to apprehend them, but the boat sank into the sea, and thus the unrighteous one perished as once did pharaoh. The new king embraced the Christian Faith and was baptized, receiving the name Sebastian. Jason and Sosipater freely preached the Gospel and strengthened the Church of God in Corfu unto deep old age. There they ended their earthly lives and took up their habitation in the mansions of the Lord.
2. THE HOLY MARTYRS MAXIMUS, DADA AND QUINTILIAN!
Maximus, Dada and Quintilian suffered during the reign of Diocletian. They were tried and tortured by the commander Tarquinius. After imprisonment and torture they were all beheaded.
3. THE HOLY MARTYR TIBALD!
Tibald was a Slav from Pannonia. During the reign of Diocletian he was brutally tortured for the Christian Faith, suffering in a place called Tsibal.
HYMN OF PRAISE!
THE HOLY VIRGIN CERCYRA!
The virgin Cercyra, tender and pure,
Heard from the imperial court about the name of Christ.
That holy name overpowered her heart,
And she was ready to suffer for Him.
A father instructs his daughter--but how? And in what?
"God is One, Father. Bow down to Him!
Through Christ is His love manifested;
With that love am I now seized.
I do not mourn for myself, nor am I afraid of torture.
Do what you wish: I stand before God."
Cercyra the virgin stood in the flame,
Quiet, meek, radiant like a dove.
The crimson flame raged, the whole dungeon cracked.
Cercyra's heart beat unafraid;
Prayer and hope nested in her heart.
With these she overcame the fire, and not the fire, her.
The virgin, pierced with arrows, easily separated herself
From the vanity of the world by divine love.
Her body was shattered by deadly arrows,
But the Lord received the soul of the virgin intact.
REFLECTION!
The mystery of our salvation is concluded with the appearance of God among men in a human body. St. Meliton of Sardis writes: "The works of Christ following His baptism manifested and proved to the world that His divinity was hidden in His body. Being God, He was also perfect man. He revealed to us His two natures: His divinity, by His miracles performed throughout the three years following His baptism; and His humanity, throughout those years when the weakness of the flesh hid the signs of His divinity, even though He was truly the Pre-eternal God." The manner of the union of divinity with humanity is difficult to comprehend, but the event of the appearance of God as a man among men is perfectly comprehensible from the viewpoint of the love of God for man. Even the creation of the world, as an event, is not more comprehensible--one can even say it is less comprehensible--than the event above all events: the Incarnation of God.
CONTEMPLATION!
Contemplate the Ascension of the Lord Jesus:
# How He led His disciples to a hill near Bethany;
# How, with uplifted hands, He blessed the disciples.
HOMILY!
on seeking the face of the Lord!
"Thy face, O Lord, will I seek" (Psalms 27:8).
"Let Thy face shine upon Thy servant" (Psalm 31:16).
King David sought that which the simple fishermen received without seeking. King David was in a state of darkness and yearned to see the radiant face of the Lord, which was revealed to the simple fishermen in its complete refulgence (radiance). King David belonged to the period of waiting, but the disciples belonged to the period of fulfillment. There, it was only the announcement of the coming of the Lord, but here, it is the coming. There, a presentiment and reverie about the face of the Lord; here, the radiance and beauty of that same face. The face of the Lord was radiant even before the Resurrection, and how much more radiant after the Resurrection! The inextinguishable flame of divinity hid behind the icon of His body and shone through that bodily icon. The disciples gazed upon Him fixedly and they rejoiced in their hearts. For forty days they gazed upon His glorified body and they rejoiced in their hearts!
O my brethren, let us also seek the radiant face of the Lord that we might feel the delight with which the angels of God are elated. If we seek Him with yearning in this life, then we will see Him at least in the other life. But if we do not seek Him in this life, then we will not see Him either in this life or in the other life. Brethren, let us yearn for the face of Christ! His every word shows us one feature of His face. Each of His apostles shows us some characteristic of His face. His every deed shows us some feature of His face. Each of His saints shows us some ray of His radiant face. With yearning, brethren, let us examine the face of the Lord. Let us assemble ray after ray, until the entire sun is revealed. Let us enshrine that Sun in the depths of our hearts, that He may illumine our bodily courts from within. Let us plant this inexpressibly sweet vineyard in our hearts, that we may taste of that immortal drink with which the angels are filled.
O Lord, Bearer of light, make Thy face to shine upon us, Thy servants.
To Thee be glory and praise forever. Amen.////
! SAINT BASIL OF OSTROG
Basil was born in Popova, a village in Hercegovina, of simple and God-fearing parents. From his youth, he was filled with love for the Church of God, and when he reached maturity, he entered the Monastery of the Dormition of the Theotokos (Birth-giver of God) in Trebinje and there received the monastic tonsure. As a monk, he quickly became renowned for his assiduous and rare ascetical life. Saint Basil took upon himself ascetic labor upon ascetic labor, each one heavier and more difficult than the last. Later, against his will, he was elected and consecrated bishop of Zahum and Skenderia. As a hierarch, he first lived in the Tvrdoš Monastery and from there, as a good shepherd, strengthened his flock in the Orthodox Faith, protecting them from the cruelty of the Turks and the cunning ways of the Latins. When Basil was exceedingly pressed by his enemies, and when Tvrdoš was destroyed by the Turks, he moved to Ostrog, where he lived an austere ascetic life, protecting his flock by his ceaseless and fervent prayer.//) He reposed peacefully in the Lord in the sixteenth century, leaving behind his incorrupt and healing relics, incorrupt and miracle-working to the present day. The miracles at the grave of St. Basil are without number. Christians and Moslems alike come before his relics and find healing of their most grave illnesses and afflictions. A great national gathering (pilgrimage) occurs there annually on the Feast of Pentecost.
--------------------
//) A new church, upon the ruins of the old Tvrdoš Monastery, has been built in our day by Nikola Runjevac from the village of Poljica near Trebinje. It is a wonderful, glorious monument in the sight of God and His people.
! THE NINE HOLY MARTYRS IN CYZICUS
These nine brave martyrs, inflamed with love for Christ, refused to offer sacrifices to the idols or to deny Christ the Lord, for which they were brutally tortured and finally beheaded. During the reign of Emperor Constantine, a church was built in Cyzicus in honor of these martyrs, and their incorrupt relics were placed there. Countless healings have taken place over their relics. Their names were Theognes, Rufus, Antipater, Theostichus, Artemas, Magnus, Theodotus, Thaumasius and Philemon. All of them despised everything temporal for the eternal, the corruptible for the incorruptible. That is why the Lord led them to His eternal home and crowned them with unfading crowns of glory. They suffered honorably and were glorified in the third century.
! THE VENERABLE MEMNON THE WONDERWORKER
From his youth Memnon dedicated himself to fasting and prayer, and he purified himself to such a degree that he became a dwelling place for the Holy Spirit. He healed incurable diseases and worked many other miracles. He appeared in storms at sea and rescued ships from disaster. He reposed peacefully in the Lord in the second century and took up his habitation in the heavenly courts of the Lord.
! HYMN OF PRAISE
! SAINT BASIL OF OSTROG
Saint Basil, God-pleaser
And wondrous healer of every affliction:
With the power of your Christ,
Whom you greatly loved,
You were able to heal the gravest of illnesses.
Even now are you able to heal all who honor you,
And who firmly believe in the Living God.
Do not cease to help, O glory of the Serbian people;
Do not cease to pray to the Lord for the sinful.
You are a saint of God in heavenly glory,
And saints are men with a full, healthy spirit.
In you we see a true man,
Free from sin and filled to overflowing with healing,
In whom there burns the fire of the Holy Spirit,
In whom abides the love of the resurrected Christ.
We are grateful to you and to the All-powerful God,
That through you God pours out abundant mercy;
Through you, His saint, wondrous and of angelic face--
Basil the Serbian, the God pleaser!
! REFLECTION
Nothing can be kept secret from the Omniscient God. At every moment, He knows all that is being done in the world, both in the external world and in the internal, spiritual world. Not one intention, not one desire, not one thought can a man conceal from God. How can you hide from God that which you cannot hide from men, from holy men? One day, Tsar Ivan the Terrible came to church to pray to God. In the church, Blessed Basil the Fool-for-Christ stood for prayer. It is true the Tsar was in church physically, but his thoughts were on Sparrow Hill, a short distance from Moscow, upon which he had begun to construct a palace. Throughout the liturgical services the Tsar thought about how he could extend and complete his palace on that hill. After the services the Tsar noticed Basil and asked him: "Where have you been?" Basil replied: "In church." Basil then immediately asked the Tsar: "And where were you, O Tsar?" "I also was in church," answered the Tsar. To this the clairvoyant saint replied: "You are not speaking the truth, Ivanushka, for I perceived how, in your thoughts, you were pacing about on Sparrow Hill and building a palace."
! CONTEMPLATION
Contemplate the Ascension of the Lord Jesus:
# How the Lord, blessing His disciples, was raised above the earth and borne to heaven;
# How the disciples watched Him as He ascended until a cloud hid Him from their sight.
! HOMILY
! on the incomparable love of Christ
"And to know the love of Christ, which surpasses knowledge" (Ephesians 3:19).
//The love of Christ, which surpasses knowledge!// Surpasses, not the knowledge of God, but the knowledge of man, darkened and embittered by sin. God's knowledge is equal to God's love and neither surpasses the other. But man's knowledge, alienated from God, does not at all comprehend God's love, shown through the Lord Jesus Christ. God understands man, but man does not understand God. God attempted to enable man with reason to understand through nature and through the Old Revelation, through the Law and the prophets, but man did not want to submit to that knowledge. Then God attempted to overcome men through love, and through this love, to draw them to Himself. Hence the Incarnation of the Son of God, His sacrifice and His suffering to the death. Such inexpressible love on the part of God, beyond words and knowledge, has captured and returned many to God, that is, made them to understand and given them a new knowledge, pure and bright. But it has confused many of them as well, for it did not agree with their darkened and embittered understanding.
//And to know,// says the Apostle. How can we, brethren, know that which is beyond knowing and beyond understanding? In no other way than by a change of mind, an awakening and sharpening of the mind, an illumination and elevation of the mind: in brief, by the acquiring of a new mind, which has the capability of understanding the love of Christ, which is beyond the present sinful mind of men.
O the depth of God's wisdom and knowledge! Whoever comes even a little closer to you feels that you are at the same time the depth of the love of God.
O Lord, ascended into heaven, illumine our minds with Thine understanding, that we may more easily make our own Thine unfathomable love toward mankind and weep--weep from sorrow because of our hardened hearts and because of our darkened and malicious minds, and weep for joy because of Thy love toward us, who are darkened and embittered.
To Thee be glory and praise forever. Amen.
! SAINT NICETAS THE CONFESSOR
Nicetas was born in Bithynia, in the city of Caesarea. His father, Philaret, was tonsured a monk after the death of his spouse, while Nicetas remained with his paternal grandmother. After reaching maturity and completing all of his studies, Nicetas entered the Monastery of Medikion, where the Abbot Nicephorus tonsured him a monk. After seven years of hardship and ascetic labors, Patriarch Tarasius ordained him a hieromonk (priest-monk). Following the deaths of Abbot Nicephorus and Athanasius (Nicetas's faithful companion), the monastic brotherhood elected Nicetas abbot, against his will. For many years St. Nicetas was an example to his brethren of asceticism and a holy life. When Leo V, the Armenian, was crowned emperor (after the pious Irene and the right-believing Emperors Nicephorus and Michael), the iconoclastic struggle was again inflamed. The emperor deposed Patriarch Nicephorus and sent him into exile and, in his place, elevated the heretic Theodotus Cassiteras, a man of impure life. Nicetas was also imprisoned and tortured, but he remained steadfast in his Orthodoxy. He was led from prison to prison, suffering from hunger, thirst, chills, oppressive heat and mockery. But he did not permit himself to waver. He was particularly bothered by the laughter and scorn of a certain Nicholas. One night, Nicholas's deceased father appeared to Nicholas in a dream and rebuked him, saying: "Leave that servant of God alone!" From that moment, Nicholas repented and not only did not annoy the saint anymore, but turned others away from annoying him also. When Leo the Armenian met with a wicked death, the rule of the empire was taken up by the Orthodox Emperor Michael Balbus (the "Stammerer") who liberated all the Orthodox sufferers. Nicetas then withdrew to an isolated place near Constantinople, where in prayer and thanksgiving to God for all things he spent the remaining days of his earthly life. During his lifetime he worked many miracles through prayer. When he died, his body was translated to his monastery. During the funeral procession, many of the sick reached out and touched his body, and were healed. His relics were placed next to the grave of Nicephorus, his spiritual father, and Athanasius, his companion. This great hierarch reposed in the year 824 A.D.
! SAINT PAUL THE SORROWFUL
Paul was a Russian by birth. In his youth he was enslaved by the Turks. Not wanting to deny the Christian Faith or to embrace Islam, he was tortured and slain by the sword in Constantinople in the year 1683 A.D.
! THE HOLY MARTYR ULPHIANUS
Ulphianus was a young man from the city of Tyre. He suffered for Christ at the hands of Urban, the governor of the city of Tyre, who was also the torturer of Amphianus (April 2). Finally, he was tied in a sack with a dog and a snake, and was thrown into the sea. He suffered and was glorified in the year 306 A.D.
! HYMN OF PRAISE
! SAINT PAUL THE APOSTLE
SAINT NICETAS THE CONFESSOR
"I bear on my body the wounds of Christ,//)
"And only in the Cross of the Lord do I boast."! )
Thus said Paul the chosen Apostle.
After him there followed a company of those who have repented,
A company of penitent ones, who received wounds
And spent their days in many sufferings
For the sake of the Living Christ, the Savior and Lord,
As did St. Paul, the Apostle of the people.
And the wonderful Nicetas bore a heavy cross;
Suffering and scorn he endured for Christ.
A spirit of steel In a fragile body--
In holy Nicetas the courageous martyr.
He conquered the emperor and outlived empires;
Therefore, the earth and the heavens are amazed at him.
Now crowned with glory among the angels,
He helps all who are persecuted for the Cross.
Before God his prayer ascends,
And to earth his help descends.
--------------------
//) Galatians 6:17
) Galatians 6:14
! REFLECTION
"I await a thousand deaths for myself," wrote St. Athanasius the Great to his flock in Egypt at the time of the terrible Arian heresy. Every spiritual man, who has looked in spirit and seen the net which contains every human soul in this world, can say this about himself. The more spiritual a man is, the denser the net looks. Such is the will of God: that the most spiritual are saved by the most narrow path. The Psalmist David also says: //Many are the afflictions of the righteous// (Psalm 34:19). However, in the end, victory and glory belong to the righteous. They need only to arm themselves with faith and forbearance. Whoever believes also understands their sufferings. He who clothes himself with patience will see victory and glory. To him who loves the Lord, even the narrowest path is sufficiently wide, the greatest pain an easy yoke, and the most violent death a joyful wedding feast.
Contemplate the Lord Jesus in hades:
# How He descended into hades with great power, at which hades trembled;
# How the evil spirits, who were then lords of hades, fled before His Face;
# How the souls of the righteous ancestors and prophets overwhelmingly rejoiced at His coming.
! HOMILY
! on the great desire of God
"Who will have all men to be saved" (1Timothy 2:4).
God desires that all men be saved; that is why He descended into hades to save those who had lived on earth before His coming. For, had He not descended into hades, an enormous number of righteous souls would have perished forever. Moreover, had He not descended into hades, the main habitat of malice against God and the human race, hades would have remained undestroyed. There were two reasons that motivated Christ, the Giver of Life, to descend into hades in the Spirit: first, to destroy the nest of the powers of ades and, second, to bring from hades to heaven the souls of the ancestors, prophets and righteous men and women who had fulfilled the Old Law of God (dispensation) and had thus pleased God. Before Satan had done exulting at the sight of Christ humiliated and lifeless on the Cross, Christ appeared and lifeless on the Cross, Christ appeared alive and almighty in the midst of hades, the primary abode of Satan. What unexpected and dreadful news for Satan! For three years Satan had woven snares against Christ on earth, and in three days, behold, Christ destroyed Satan's kingdom and carried away the most precious booty, in the form of a throng of righteous souls.
O Lord, Thou desirest that all men be saved. We pray to Thee: save even us. For there is no salvation or Savior outside of Thee. In Thee do we hope, Thee alone do we worship--Thee, the Father and the Holy Spirit, now and always. Amen.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE JAMES
James was the son of Zebedee, the brother of John and one of the Twelve Apostles. At the invitation of the Lord Jesus, James left his fishermen's net and his father and, together with John, immediately followed after the Lord. He belonged to that trinity of apostles to whom the Lord revealed the greatest mysteries, before whom He was transfigured on Tabor, and before whom He was in agony in the Garden of Gethsemane preceeding His passion. After receiving the Holy Spirit, he preached the Gospel in various places and traveled to Spain. Upon his return from Spain, the Jews began to quarrel with him concerning Holy Scripture, but no one was able to withstand him, not even a certain magician, Hermogenes. Hermogenes and his disciple Philip were defeated by the power of the truth which James preached, and both of them were baptized. Then the Jews accused James before Herod and persuaded a certain Josias to slander the apostle. Josias, seeing the brave conduct of James and listening to his clear explanation of the truth, repented and believed in Christ. When James was condemned to death, this same Josias was also condemned to death. En route to the place of execution, Josias implored James to forgive him the sin of slander. James embraced and kissed him and said: "Peace and forgiveness be to you!" Both of them bowed their heads under the sword and were beheaded for the Lord, Whom they loved and Whom they served. St. James suffered in Jerusalem in the year 45 A.D. His body was translated to Spain, where miraculous healings occur over his grave even to this day.
! SAINT DONATUS
Donatus was Bishop of Evira in Albania. He was endowed by God with the great blessing of miracle-working, by which he performed many miracles for the benefit of the people. Donatus changed bitter water into sweet, brought down rain during a drought, healed the king's daughter of insanity, and resurrected a man from the dead. This deceased man had paid his debt to a certain creditor. But the unscrupulous creditor wanted the debt to be paid a second time, and so, wanting to benefit from the death of his debtor, he came to his widow and demanded that the debt be repaid immediately. The widow wept and complained to the bishop. St. Donatus warned the creditor to wait, at least until the man was buried, and then the debt would be discussed. The creditor angrily stood his ground. Then Donatus approached the dead man, touched him and cried out: "Arise, brother, and see to your creditor!" The dead man rose and with a frightening glance looked at his creditor and related to him when and where he had paid the debt. He also sought from the creditor his written receipt. The frightened creditor then placed the document in his hands, and the risen corpse tore it up and again lay down and died. St. Donatus reposed peacefully in deep old age and took up his habitation with the Lord, in the year 387 A.D. His relics repose in Evira, Albania, and even today they benefit the faithful.
! THE HOLY FEMALE MARTYR ARGYRA
This New Martyr was born in Brusa of devout parents. As soon as Argyra was married to a Christian, a certain Turk from the neighborhood fell in love with her and invited her to live with him. The Christ-loving Argyra rejected such a vile proposal from this Turk. He became enraged and accused her before the judge, saying that she had wanted to embrace Islam and had later reneged. This holy Argyra spent fifteen years suffering for Christ, going from judge to judge and from prison to prison. She loved Christ above everything in this world. She finally died in prison in Constantinople in the year 1725 A.D.
! HYMN OF PRAISE
! THE HOLY APOSTLE JAMES
Zebedee's James was one of three
Who saw the most miraculous mysteries of Christ,
Who saw the Transfiguration of the Savior,
In white raiment, with a radiant countenance.
And again in the Garden they saw Him sorrowful,
As a seemingly helpless prisoner in the cage of the world.
By this contradiction James was confused,
Until by the light of the Resurrection he was enlightened.
And when the Lord arose, James believed;
Torn asunder were his doubts, like a cloud of dreams!
And yet more when the Spirit descended and gave him power,
James became an invincible commander.
He began to wage war both day and night,
And to work miracles with the help of God.
All for the name of Christ, all to the glory of Christ,
Until that holy name did shine in the world.
In vain did the bloody Herod cut off his head;
God granted His commander eternal glory.
! REFLECTION
A devout elder lay on his death bed. His friends gathered around him and mourned him. At this, the elder laughed three times. The monks asked him: "What are you laughing at?" The elder replied: "I laughed the first time because all of you are afraid of death, the second time because none of you are prepared for death, and the third time because I am going from labor to rest." Behold, how a righteous man dies! He is not afraid of death. He is prepared for death. He sees that through death he passes from difficult life to eternal rest. When the nature of man contemplates its original state in Paradise, then death is unnatural, the same way that sin is unnatural. Death emanated from sin. Having repented and being cleansed from sin, a man does not consider death annihilation, but the gate to life eternal. If, at times, the righteous prayed to God to prolong their earthly life, that was not because of love for this life or because of the fear of death, but solely that they would gain more time for repentance and cleansing from sin, in order that they might present themselves before God more sinless and more pure. Even if they showed fear before death, that was out of fear not of death but of God's judgment. What fear then must the unrepentant sinner experience before death?
! CONTEMPLATION
Contemplate the Ascension of the Lord Jesus:
# How all the gravitational forces on earth were unable to keep the body of the Lord from ascending;
# How, by His Ascension, the Lord showed Himself to be above the laws of nature.
! HOMILY
! on the illumination of Christ
"Awake, thou that sleepest, and arise from the dead, and Christ shall give thee light" (Ephesians 5:14).
St. Paul the Apostle, like all the other apostles and Christian saints, teaches what he teaches from personal experience, for the Faith of Christ is experience and not theory or human sophistry. Even Paul had lain as one spiritually asleep, and he was spiritually dead while he opposed the Christian Faith. St. Paul then awakened, arose, and was resurrected in the spirit and illumined by Christ. He knows himself from the time when he was spiritually asleep, and from the time when he awakened, and when he arose, and when he was resurrected by the Spirit, and when he was illumined by Christ. That which he knows about himself as a Christian, he commends to others. As an apostle, he sees himself in a great light and believes that all other men, if they so desire, can be as bright as he is. The light is not his, but Christ's light. His is only the love for that Light, Who is Christ.
But the illumination of Christ is necessary for man in the beginning as well as in the end. For without Christ's illumination, man is unable to awaken, to arise, or to resurrect from the dead, just as afterward he is unable by himself to live in faith or to die in hope. Christ is needed in the beginning as well as in the end. As the hand of the parent is needed to retrieve a drowning child from the water and then to lead him onto dry land, protecting him and preventing him from drowning again, so is Christ needed for those drowning in the waters of sin. The Apostle himself received the illumination of Christ in the beginning, on the road to Damascus, and he received it again later. The first illumination was his conversion to Christ and the second illumination was his confirmation in Christ. The first illumination we all receive through baptism, and the latter, through faith and the fulfilling of the commandments of the Lord. All of those who do not possess the illumination of Christ--or who have had it and lost it--are as if asleep, as if dead.
O gentle Lord, awaken us, raise us, resurrect us--for we cannot do any of these things without Thee.
To Thee be glory and praise forever. Amen.
! THE VENERABLE JOSEPH THE HYMNOGRAPHER
Joseph was born in Sicily of pious and virtuous parents, Plotinus and Agatha. After the death of his parents, Joseph moved to Thessalonica, where he was tonsured a monk. As a monk, he was a model to all in fasting, extreme abstinence, ceaseless prayer, chanting of the Psalms, vigils and labor. The bishop of Thessalonica ordained him a heiromonk [priest-monk]. While visiting Thessalonica, the distinguished Gregory of Decapolis was so impressed with Joseph, because of his rare character, that he invited him to his monastery in Constantinople. When the flame of the iconoclastic heresy erupted again under Leo the Armenian, Joseph was sent to Rome to call upon the pope and the Roman Church to battle for Orthodoxy. While en route, Joseph was captured by pirates and taken to Crete, where the heretics detained him in prison for six years. Joseph rejoiced that he was made worthy to suffer for Christ, and for that he continually praised God, considering his iron chains as an adornment of gold. Early in the morning on the Feast of Christ's Nativity, in the sixth year of Joseph's imprisonment, the wicked Emperor Leo was slain in church while attending Matins. At that same moment, St. Nicholas appeared to Joseph in prison, saying: "Arise and follow me!" Joseph felt himself being elevated in the air and, all at once, found himself before the gates of Constantinople. All true believers rejoiced at his coming. He composed canons and hymns for many saints. He possessed the gift of clairvoyance [discernment], for which Patriarch Photius appointed him the spiritual father and confessor for priests, recommending him as "a man of God, an angel in the flesh and a father of fathers." In extreme old age, Joseph gave up his soul to the Lord, Whom he had faithfully served both in works and in hymns. He died peacefully on the eve of Holy and Great Thursday in the year 883 A.D.
! THE HOLY MARTYR PHERBUTHA, HER WIDOWED SISTER AND THEIR SLAVE
During the reign of the Persian King Sapor (Saborius), St. Simeon the Bishop was slain. Pherbutha, the sister of Bishop Simeon, was taken to the palace at the wish of the queen. Pherbutha was exceptionally beautiful, and many suitors thronged to her, among whom were many pagan priests and soothsayers. Pherbutha rejected them all, provoking much anger against herself. At that time, the queen became ill, and all the pagan priests told the king that the queen had been poisoned by Pherbutha, and as a cure they recommended the following: that Pherbutha, her sister and their slave, all Christians, be sawn asunder and that three parts of their bodies be placed on one side and three parts on the other side and that the queen should be borne between them. The king agreed to the recommendation of these blood-thirsty pagan priests. Pherbutha, together with her sister and their slave, suffered for Christ in the year 343 A.D., thereby earning incorruptible wreaths in the Eternal Kingdom of their Lord.
! THE VENERABLE ZOSIMAS [OF PALESTINE]
Zosimas was a monk of the Jordanian monastic community during the reign of Emperor Theodosius the Younger. It was he who discovered St. Mary of Egypt, administered Holy Communion to her and buried her body. He reposed in the Lord in his hundredth year, in the sixth century.
! THE VENERABLE MARTYR NICETAS
Nicetas was a Slav from Albania. As a monk of the Holy Mountain (Mt. Athos), he went to Serres, where he debated with the mullahs about religion. Being unable to overcome him with reason, the Turks subjected him to torture, under which Nicetas, the holy one, died and gave up his soul to his God in the year 1808 A.D.
! THE HOLY FEMALE MARTYR PHERBUTHA
The handmaiden of the Lord, the virgin Pherbutha,
Remained silent, like an innocent lamb going to the slaughter.
She did not say: Woe! is me!"
But with joy she accepted and endured the suffering.
She despised illusion and earthly falsehoods,
For to her the Lord was more dear than the whole world.
In the royal court there was sickness and emptiness,
Without wondrous faith in the Son of God;
Among the soothsayers there was cursed darkness,
Without the knowledge of the Creator and the heavenly world.
The beauty of the flesh is a stumbling block,
Without love of God, faith and hope.
Thus, Pherbutha sacrificed wholly herself for Christ,
She surrendered all to the world, except her pure soul.
The tormentor crushed her bodily cage,
But he could not enslave her living soul.
The cage is cut open; the soul flees to Paradise,
From false freedom to true freedom.
Her blood flowed out upon the earth, her body became earth,
But Pherbutha remained alive in eternity.
! ! REFLECTION
He who glorifies God, God also glorifies. This is clearly and abundantly shown in the lives of the saints. St. Joseph the Hymnographer indeed glorified God in works, in sufferings and in hymns. God glorified him both in this life and after death. During his life, St. Nicholas appeared to him in prison and freed him. When St. Joseph wondered if he should compose a canon to the Apostle Bartholomew, this apostle appeared to him in radiant vestments and told Joseph that it was well-pleasing to God that he compose this canon. When St. Joseph died, a citizen of Constantinople learned of the glory by which God glorified His saint. This man had come into the church of St. Theodore the Phanariot to beseech the saint to reveal to him where one of his escaped servants had hidden. (Because St. Theodore was known among the people as a saint who reveals where something is that had been lost or stolen, he was called Phanariot, which means The Revealer.) For three days and three nights this man prayed, and when he received no response from the saint he was ready to leave. Just then, St. Theodore appeared to him in a vision, saying: "Why do you become angry, O man? Joseph the Hymnographer's soul was being separated from his body and we were with him. When he died this night, all of us whom he glorified in hymns translated his soul to the heavens and placed it before the face of God. That is why I was tardy in appearing to you."
! CONTEMPLATION
Contemplate the Resurrection of the Lord Jesus:
# How His soul returned again from hades into His body;
# How He, through His divine power, by which He had resurrected other dead bodies, resurrected His own body.
! HOMILY
! on the Church as the Body of the Lord
"Destroy this temple, and in three days I will raise it up" (John 2:19).
Thus spoke the Lord to the wicked Jews about //the temple of His body// (John 2:21). But since it is not given to the wicked to understand anything, so also the Jews did not understand and mocked Him. The Lord did not rebuke them for that, but that which He spoke occurred. The Jews destroyed His body, but He restored it again and raised it in glory and power. The wicked punished God with destruction, but God reprimanded the wicked by restoration. It is satisfying to the wicked ones to be able to show their power by killing, but for God there is joy in showing His power by giving life. There is nothing as short-lived as the triumph of evil nor anything as lasting as the triumph of truth.
//Destroy this temple.// The Lord referred to His body as the Church. Destroyed, that Church was crowded into a dark tomb, and a heavy stone prevented light from penetrating to it. But that Church was not in need of the light of the sun. It had its own light, its own Sun of Righteousness, Who shone from within. A gentle heavenly hand removed the stone from the tomb and the Lord resurrected in glory and in power. That which once happened to the All-pure Body of Christ occurred many times later to the Church of the holy ones on earth.
The enemies of the Church cruelly persecuted and tormented it, demolished it and buried it in darkness. But the Church, after such bruises and confinement, resurrected again with greater glory and power. Just as the Church of His Body resurrected, so at the end of time the Church of His holy ones will resurrect in fullness and perfection.
O resurrected Lord, do not give us over to decay and eternal death, but resurrect us to life eternal.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS AGATHOPODES AND THEODULUS
Agathopodes was a deacon and Theodulus was a reader in the church at Thessalonica. Agathopodes was adorned with the gray hairs of age and Theodulus with youthful chastity. At the time of Diocletian's pursuit of Christians these two were summoned to court. They responded with rejoicing, and, holding each other's hand, they walked along crying out: "We are Christians!" All the advice of the judges that they deny Christ and worship idols was in vain. After extended imprisonment and starvation, they were sentenced to death by drowning in the sea. Their hands were bound behind their backs, a heavy stone was hung around their necks, and they were led out to be drowned. When they prepared to hurl Agathopodes into the deep, he cried out: "Behold, by this second baptism we are washed of all our sins, and in purity do we depart to Christ Jesus." Shortly afterward, the sea cast their drowned bodies upon the shore, and Christians buried their bodies with honor. St. Theodulus appeared to his acquaintances as a bright angel in radiant attire and ordered them to distribute all of his remaining estate to the poor. These glorious and wonderful soldiers of Christ suffered honorably during the reigns of Diocletian and the Thessalonian Prince Faustinus, in the year 303 A.D.
! THE VENERABLE MARK OF TRACHE
He is also called "Mark the Athenian" because Athens was the place of his birth. His parents died after he completed his higher education in Athens. He thought within himself that death was unavoidable for him as well, and that one should sufficiently prepare beforehand for an honorable departure from this world. Distributing all of his possessions to the poor, he sat on a plank in the sea and, with firm faith in God's help, prayed that God might direct him wherever He willed. God, in His providence, protected him and brought him to Lybia (or Ethiopia) to a mountain called Trache. Mark lived an ascetic life on this mountain for ninety-five years, seeing neither man nor beast. For thirty years, he waged a violent combat with evil spirits and suffered from hunger, thirst, frost and heat. He ate earth and drank sea water. After thirty years of the most vehement suffering, the defeated demons fled from him and a angel of God began to bring him food daily in the form of bread, fish and fruit. St. Serapion visited him before his death and, afterward, made known the miraculous life of Mark. Mark asked St. Serapion: "Are there any Christians in the world now who, if they were to say to this mountain, 'Arise from here and cast yourself into the sea,' it would it be so?" At that moment, the mountain upon which they stood moved toward the sea. Mark raised his hand and stopped it. Such was the miracle-working power that this man of God possessed. Before his death he prayed for the salvation of mankind and then gave up his soul to God. St. Serapion saw angels bear St. Mark's soul heavenward, and he also saw a hand extended from heaven that received it. St. Mark lived to be 130 thirty years old and reposed in about the year 400 A.D.
! HYMN OF PRAISE
! THE PRAYER OF SAINT MARK OF TRACHE
Behold, the final hour tolls for me on earth.
I go where the Lord shines instead of the sun.
I emerge from my dusty, fleshly garment,
And am traveling toward Thy countenance, O Christ.
Just one more wish do I stretch forth over the earth.
Before Your Throne with prayer I come:
I desire salvation for all mankind,
Freedom from sin for everyone and for all.
I desire that the virtuous fasters be saved,
And all diligent laborers in Thy field.
I desire that those who are prisoners for Thy sake,
Who sacrifice themselves for the sake of Thy love, be saved;
And cruel sinners that commit violence,
And those who endure violence for Thy sake.
Salvation to the lavras, plentiful with monks;
Salvation to the faithful, the tearful and the poor;
Salvation to the churches, throughout the world;
To the shepherds of the Church, to all and to me,
To all the servants of God and all the handmaidens,
Whom the world knows or who hide in loneliness.
Salvation to the baptized and adopted,
Enlivened with the Life-giving Spirit of God.
Salvation to the humble and the merciful,
To faithful emperors and faithful princes,
To every heart of man, the healthy and the infirm.
And salvation to my brother Serapion.
O Powerful Lord, this is my desire
And my final prayer. Let it be Thy will!
! REFLECTION
"Live as though you were not of this world and you will have peace." Thus spoke St. Anthony to his disciples. An amazing lesson but truthful. We bring about greater misfortunes and uneasiness upon ourselves when we desire to associate and identify ourselves with this world as much as possible. The more a person retreats from this world, the more often he contemplates this world as existing without him, and the deeper he immerses himself in reflecting upon his unworthiness in this world, the closer he will stand to God and the deeper will be the spiritual peace he will have. //I die daily//, says St. Paul (1 Corinthians 15:31), that is, every day I feel that I am not in this world. That is why he daily felt like a heavenly citizen in the spirit. When the torturer Faustinus asked St. Theodulus, "Is not life better than a violent death?" St. Theodulus replied, "Indeed, even I think that life is better than death. Because of this, I decided to abhor this mortal and temporal life on earth, that I may be a partaker of life eternal."
! CONTEMPLATION
Contemplate the Resurrection of the Lord Jesus:
# How the earth quaked at His return to the body, as it had at His separation from the body;
# How the angels descended into the tomb to serve Him, as they had always served Him when He allowed them to do so.
! HOMILY
! on the fulfillment of the prophecy
"Because Thou wilt not abandon my soul to the nether world, nor wilt Thou suffer Thy faithful one to undergo corruption" (Psalm 16:10).
These are the words of the inspired seer of mysteries--glowing, prophetic words. David speaks these words about Christ the Lord, about His soul and about His body, i.e., about that which is human in Him. That these words of David pertain to the resurrected Christ was witnessed by the Apostle Peter in his first sermon immediately after the descent of the Holy Spirit: //Because you will not abandon my soul to the nether world nor will you suffer your holy one to see corruption //(Acts 2:27). For, the apostle says, //the patriarch David ... is both dead and buried, and his sepulcher is with us unto this day //(Acts 2:29). It is not possible that those words refer to David, although David speaks as though they are from him and refer to him; but rather those words refer to a descendant of David according to the flesh. The body of David is decomposed, as are the bodies of his other descendants. Christ, therefore, is David's descendant in the flesh Who did not remain in hades and Whose body did not see corruption. //He //[David]//seeing this before spake of the Resurrection of Christ //(Acts 2:31). Truly, a glowing prophecy! Truly, a wondrous foresight! Before the Resurrection of the Lord, these words must have sounded unintelligible and irrational for all the Jewish interpreters of the Psalms! When the seal on the tomb is removed, then the seal of the many totally obscure and unclear prophecies is also removed. Christ resurrects and the mysteries become known. The seal of the tomb is removed not only from His body but also from the countless words and visions of the prophets. Christ resurrects and the prophetic words are also resurrected. Descending into hades, the Lord brought the heavenly light to the souls of the righteous fathers and prophets. By His Resurrection, He brought their words and visions to the light of understanding and truth. Christ resurrects and all that is good, righteous and truthful, before and after the Resurrection morning, is also resurrected.
O resurrected Lord, place us among the resurrected citizens of Thine Eternal Kingdom.
To Thee be glory and praise forever. Amen.
! SAINT EUTYCHIUS, PATRIARCH OF CONSTANTINOPLE
Eutychius was born in Phrygia of pious and devout parents. His father was an officer. Once, as a child, when Eutychius was playing with his playmates, their game was that each of them would write his name on a wall and, beside his name, would guess what rank he would attain in life. When it was Eutychius's turn he wrote: Eutychius--Patriarch! In his thirtieth year he became abbot of a monastery in Amasea. At age forty, he was sent by the Metropolitan of Amasea to represent him at the Fifth Ecumenical Council [Constantinople, 553 A.D.]. At the Council, he glowed like a shining star among the Fathers of the Church, both by his learning and by his zeal. When the debate began as to whether heretics could be anathematized after their deaths, he supported the opinion that they could be, by calling upon the Third Book of Kings 13:1-8 (in some translations called The First Book of Kings) and the Fourth Book of Kings 23:16 (in some translations called The Second Book of Kings). Eutychius endeared himself greatly to Emperor Justinian and Patriarch Menas. The emperor sought his advice on many occasions, and Patriarch Menas (who at that time was very rich) designated Eutychius as his successor, imploring the emperor to carry this out in deed. And so it happened! St. Eutychius governed the Church in peace for twelve years. Then the devil raised up a tempest against him. This tempest reached Justinian himself. The emperor became deluded and succumbed to the Monophysite heresy (Aphthartodocetism), which falsely taught that the Lord Jesus, before His Resurrection, had a divine and incorruptible body, not feeling hunger, thirst or pain. Eutychius adamantly opposed this heresy, for which the emperor exiled him to his original monastery. Eutychius remained there for twelve years and eight months. He proved himself to be a great miracle-worker, healing people of various illnesses through prayer, and by anointing them with holy oil. Justinian repented and died, and was succeeded by Justin, who restored Eutychius to the patriarchal throne, where this saint remained, governing the Church of God in peace until his death. In 582 A.D., in his seventieth year, he took up his habitation in the Kingdom of Christ the Lord, Whom he had faithfully and courageously served throughout his entire life.
! THE HOLY 120 MARTYRS WHO SUFFERED IN PERSIA
When the Persian King Sapor plundered the lands of Byzantium, he enslaved 120 Christians. Since his attempts to persuade them to deny Christ and worship fire proved to be in vain, the king threw them into the fire and burned them alive. Among those martyrs were nine virgins dedicated to God. They all suffered honorably between the years 344 and 347 A.D., and took up their habitation in the mansions of Christ the King.
! HYMN OF PRAISE!
Eutychius witnessed Christ to the emperor:
"Christ," said he, "had a feeble body,
A body susceptible to hunger and pain,
Similar to, but not the same as, the body on the throne.
The King of Glory bore on earth the air of a servant,
But He raised glorified flesh into heaven.
Where would be the tears in an illusory body?
Where the bloody sweat, O Emperor--on an illusory brow?
'I hunger! I thirst!' spoke the Truth.
Why do you make the Son of God a liar?
When He witnesses His hunger to the world,
You say to Him: 'Thou art satiated!' Do you say that to His face?
Thirsting, He cries out while hanging on the Cross,
And you respond to Him: 'Thou art not thirsty, Thou art not!'
O great Emperor, do not speak impurity.
Behind your words the demon himself hides.
In vain do you build churches, when you destroy the Faith;
And vain are your votive offerings, when you extinguish their flames.
Christ's sufferings are greater than all other sufferings.
The whole of history revolves around the Cross.
The Cross is thus honorable, awesome, and capable of healing,
Because it is the source of pain, brimming over and abundant.
On the Cross is Christ--a man nailed,
Blood, sweat and moaning--and not a dream that is dreamed."
! REFLECTION
It is said about an ancient orator that he labored day and night to perfect himself in the art of oratory. Someone said to him: "Demosthenes does not want you to be the chief orator." To which he immediately retorted: "Neither will I allow him to be the only one." If you cannot be a first-class saint like St. Anthony, do not shrug your shoulders and say: "Nothing can come of me!" Increase your efforts and double your talent. //In My Father's house are many mansions,// said the Lord (John 14:2). If you merit to settle in the least of these dwelling places, you will be more glorious and more fortunate than all of the rulers who have ever existed on earth. To each according to his own talent. You will not be a St. Anthony, but neither will St. Anthony, alone, occupy the Kingdom of God.
! CONTEMPLATION
Contemplate the Resurrection of the Lord Jesus:
# How the stone on the tomb did not split, neither was the seal on it broken;
# How the All-powerful and meek Lord did not damage the tomb during His Resurrection, as the Virgin's womb was not harmed in His birth.
! HOMILY
! on victory over the last enemy
"The last enemy that shall be destroyed is death" (1 Corinthians 15:26).
Man's first enemy is the devil, the second is sin and the third is death. The Lord Jesus conquered all three of these enemies of the human race. By His humiliation He conquered the proud devil; by His death He conquered sin; and by His Resurrection He conquered death. In conquering all of our enemies, He invites us to be partakers in His glorious victory. It is not that we ourselves conquer, but that we are joined to the Victor. Only His power conquers, only His weapons vanquish. We are without power and weapons, but our enemies are frightful. With Him and alongside Him, we conquer those mightier than ourselves. What is the price He offers to us for His victory? A meager price, my brethren; for a very paltry price He offers us the most precious victory. To humble ourselves and to submit ourselves to the will of God--that is the price He seeks to conquer the devil for us. To die unto ourselves, to die to fleshly desires and passions--that is the price He seeks to conquer sin for us. To live for Him and not for ourselves, to receive Him into our hearts--that is the price He seeks to conquer death for us. He conquered all the enemies openly and completely, but this is the price for which He offers His victory to each of us. The Apostle Paul says: //Thanks be to God, which giveth us the victory through our Lord Jesus Christ// (1 Corinthians 15:57).
O resurrected Lord, enlighten, strengthen and heal us by Thy victory.
! We who are grateful raise up to Thee glory and praise forever. Amen.
! SAINT GEORGE THE CONFESSOR
George was chosen and installed as Metropolitan of Mitylene for his great virtues, which he attained through long ascetic labors. This saint governed his spiritual flock prudently and zealously to a great old age. When a persecution began under Leo the Armenian, who destroyed the holy icons, this saintly elder was summoned to Constantinople, to an assembly of bishops, whose intention, at the desire of the emperor, was to put a stop to the veneration of icon. George not only refused to carry out the wish of the wicked emperor, but with other courageous bishops stood up in defense of holy icons. Not only was he mocked for this, but he was also exiled by the emperor to the region of Cherson. There he endured all sorts of physical afflictions and deprivations for the remaining years of his life. He reposed and entered into eternal life in about the year 816 A.D. Because of his great sanctity and love for the Lord Jesus, George was a great miracle-worker, both during his life and after his death.
! THE VENERABLE NILUS OF SORA
Nilus is one of the great fathers of the Russian Church. He was the founder of the skete form of monastic life in Russia. He reposed peacefully in the year 1508 A.D. His relics repose in the Sora Monastery. His //Rule// for the skete way of monastic life is a spiritual and practical work of the first order.
! THE HOLY MARTYR CALLIOPIUS
Calliopius was an only son, granted by God to a senator from Perga in Pamphylia, after the senator had shed many tears in prayer. From his early youth, he was taught by his devout mother, Theoclea, to honor God and to live a chaste life. Calliopius was still a youth when a terrible persecution began during the reign of Emperor Maximian. To spare him from death, his mother put him in a ship, gave him an ample amount of money, and saw him off to the city of Pompeiopolis. However, God, in His divine providence, planned otherwise. Landing in Pompeiopolis, he fell into the midst of a tumultuous polytheistic celebration. When Calliopius refused to participate in this senseless feast, he was brought by the crazed mob to Maximus, the commander, before whom Calliopius confessed that he was a Christian. The commander ordered that Calliopius be beaten with lead rods and burned by fire. Wounded all over, he was cast into prison. Learning of the tortures of her son, Theoclea distributed her entire estate to the poor and needy and, with a paltry sum of money, hurried to her son in prison. Upon entering the prison, Theoclea bowed down before her son and dressed his wounds. Finally, the commander pronounced the ultimate sentence: Calliopius was to be crucified on a cross. Joy and pain intermingled in the heart of his mother. When they brought her son to the place of execution, she slipped five pieces of gold to the executioners to have her son crucified, not as the Lord had been, but rather upside down. Theoclea did this out of humility before the Lord. Calliopius was crucified upside down on Holy Thursday. His mother stood beneath the cross giving thanks to God. On the second day, when they removed his lifeless body from the cross, she fell upon her son and she herself died. Thus, these two went before the throne of the King of Glory together. They suffered honorably in the year 304 A.D.
! THE VENERABLE DANIEL OF PEREYASLAVL
Daniel had a unique form of asceticism--that of caring for the dead. Whenever he heard that someone had been found frozen to death or had died in some other manner, Daniel would hasten to bury him decently and to offer prayers to God for him. He reposed peacefully in the year 1540 A.D. His relics remain incorrupt.
! THE VENERABLE GREGORY SINAI
He was a great saint and ascetic of Mount Sinai and Mount Athos (see August 8).
! HYMN OF PRAISE
! THE HOLY MARTYR CALLIOPIUS
"Calliopius, Calliopius,
Depart to where there is no death!"
His mother speaks to him and bids him her last farewell;
She dreams about the fate of her only son.
Calliopius, the most handsome youth,
Explains his faith to the commander:
"Christ is my life, the way, the truth;
Christ is my desire, my only desire!"
They led Calliopius to the cross;
Behind him throngs of people walk.
He is pale and peaceful, tightly bound,
Walking quietly, bitterly tortured.
His mother whispers to him: "Calliopius!"
"I am traveling, O Mother, to where there is no death!"
The martyr of Christ, the glorious martyr,
Accepts the heavy cross, and is crucified head downward.
Over the dead body the mother is bending.
She bathes Calliopius with tears
And whispers quietly: "Calliopius!"
"Here I am, Mother, where there is no death!"
! RELFECTION
"Spiritual directors should distinguish themselves from those in their charge, just as a shepherd distinguishes himself from his sheep." Thus speaks St. Isidore of Pelusium in interpreting the First Epistle to Timothy. The life of a priest always serves as an example, be it good or bad. By an exemplary life a priest confirms the Gospel, and by a wicked life he denies it. No one in this world is in such a position to confirm the truth of the Gospel--or to deny it--as is a priest by his life. A good priest is distinguished from a wicked priest by his works, no less than a shepherd is distinguished from a wolf. That is why a lot of good priests will be with the sons of God and a that of wicked priests will be with the wild beasts of darkness. The good shepherds of the Church, even in the last moments of their lives, were concerned about the flocks that they were leaving behind. On his deathbed, St. Joseph the Hymnographer prayed to God: "Preserve Thy flock, O Son of God, created by Thy right hand, and protect them to the end of time. Be of assistance to the beloved sons of Thy Church. Grant to Thy Bride (the Holy Church) eternal peace and a stormless calm." St. Antipas, burning in a blazing copper ox, prayed to God in this manner: "Not only me, but also those who will come after me--make us partakers of Thy mercy."
! CONTEMPLATION
Contemplate the Resurrection of the Lord Jesus:
# How the myrrh-bearing women, with myrrh and aloes, approach the tomb to anoint the One Who is the sweet-smelling savor of heaven and earth;
# How the angel announces the Resurrection of our Lord to them with the words: //Why seek ye the living among the dead?// (Luke 24:5).
! HOMILY
! on seeking the living among the dead
"Why seek ye the living among the dead?" (Luke 24:5).
The angel of God asks the myrrh-bearing women, as though in astonishment: "Why seek ye the living among the dead?" As though the perceiver of the mystery of God and God's power wanted to say: "How could you have thought for a moment that He is the hostage of death? Do you not know that He is the principal source of life? Do you not know that all life is through Him and that not one living thing can borrow even a drop of life from any other source? Did He not, on earth, reveal to you fully His authority over life and death? Who gave life to the lifeless Lazarus? Who took away the life of the barren fig tree?"
O my brethren, let us also cease to look for the living among the dead. If there are some of us who are still seeking Christ among the dead, let them desist from this soul-destroying effort. This is the vain effort of the Jews, pagans and non-Christians. We know that the Lord and Giver of Life is not in the tomb but on the Throne of Glory in the heavens. The spirit not darkened by sin looks up into heaven and does not see the tomb; while the spirit darkened by sin looks into the tomb and does not see heaven. Sin and virtue, at cross purposes with each other, govern the spiritual vision of a man--each revealing to man its own world. Sin brings the vision of the spirit down to the earth and reveals to it the corruption of the world. Virtue uplifts the spirit to heaven and reveals to it the eternal world, and the resurrected Christ as the King in that world.
O my brethren, let us not seek life from creation, but from the Creator. Let us not commit an even graver sin: let us not seek the Creator in the tomb of creation or the Illuminating, Immortal One in the darkness of death.
O Lord Jesus, Victor over death, we cry out to Thee: raise us up also into life eternal from the corruption and darkness of death.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLES HERODIAN, AGABUS, RUFUS, ASYNCRITUS, PHLEGON AND HERMES
They were all numbered among the Seventy [Lesser] Apostles. All were mentioned by the Apostle Paul in his Epistles. Herodian was a kinsman of Paul. //Salute! Herodian my kinsman// (Romans 16:11), writes St. Paul to the Romans. As the Bishop of Neoparthia, Herodian suffered much at the hands of the Jews. They beat him over the head with rods; they struck him on the mouth with stones and stabbed him with knives. After they left him for dead, St. Herodian arose and continued to serve the apostles. He assisted the Apostle Peter in Rome and was beheaded, along with many other Christians, on the same day that St. Peter was crucified.
St. Agabus possessed a prophetic spirit. Two of his prophecies are recorded in the Acts of the Apostles. First, he prophesied a great famine throughout the world, which came true during the reign of Caesar Claudius: //And one of them named Agabus stood up and predicted by the Spirit that there would be a severe famine all over the world and it happened under Claudius//(Acts 11:28). Second, when he met the Apostle Paul in Caesarea (who was enroute to Jerusalem), Agabus took Paul's belt and bound his own hands and feet, saying: //Thus saith the Holy Spirit, So shall the Jews at Jerusalem bind the man that owneth this girdle, and shall deliver him into the hands of the Gentiles// (Acts 21:11).
St. Rufus was Bishop of Thebes in Greece. St. Paul also mentions him. //Salute Rufus, chosen in the Lord// (Romans 16:13).
St. Asyncritus was Bishop of Hyrcania in Asia and is mentioned along with the others in Romans 16:14.
St. Phlegon, who is mentioned in the same place, ws a bishop in the Thracian city of Marathon: //Salute Asyncritus, Phlegon, Hermas, Patrobas and Hermes and the brethren which are with them// (Romans 16:14).
St. Hermas, mentioned with the others, was a bishop in Dalmatia.
All of them, like Christ's bees, spread the honey of the Gospel throughout the various regions, suffering much for the love of Christ. All were translated into the Eternal Kingdom of Christ the Beloved.
2. SAINT NIPHON, BISHOP OF NOVGOROD!
Niphon was distinguished by his great zeal in constructing and restoring the churches of God and by showing great courage in opposing the tyrannical princes. Thirteen days before Niphon's death, St. Theodosius appeared to him and announced his imminent passing over to the other world. He reposed in the year 1156 A.D.
3. SAINT CELESTINE, POPE OF ROME!
Celestine was a great champion of the Orthodox Faith. At the time of the Third Ecumenical Council [Ephesus, 431 A.D.], Celestine wrote an epistle against the heretic Nestorius. He reposed peacefully in the year 432 A.D.
HYMN OF PRAISE
!
THE HOLY APOSTLES
!
The holy apostles of God
Ran the race and reached the goal.
They despised the vanity of the world; they strove toward God.
They sacrificed the worldly and acquired the eternal.
Love for Christ, stronger than all other powers,
Shone from them through the darkness of paganism.
The race is over, the battle won,
The army of heroes is brought to Christ.
Many are the wreaths of victory in Christ:
If you desire, you too can be crowned.
Holy apostles, pray to God,
That He deprive us not of the Kingdom of Heaven.
REFLECTION!
There is heroism above heroism and asceticism above asceticism. St. Epiphanius of Cyprus invited Hilarion the Great to dinner and, in order to show the greatest hospitality to his distinguished guest, set roasted chicken on the table and offered it to him. Hilarion said to him: "Forgive me, but ever since I was tonsured a monk, I have eaten nothing butchered." To this Epiphanius replied: "And I, ever since I was tonsured a monk, have never lay down in bed until I first forgave my enemy." Amazed, Hilarion said: "Your virtue is greater than mine, O holy master!" This is a great lesson for all of us. Fasting is an admirable thing, but it is more admirable to forgive insults. Through fasting a man is preparing for charity, but by forgiving insults a man shows charity. Fasting precedes forgiveness, but fasting alone does not save without forgiveness.
CONTEMPLATION!
Contemplate the resurrected Lord Jesus:
# In an earthly body before the Resurrection, in a body susceptible to hunger, pain and death;
# In a heavenly body after the Resurrection, in a body not susceptible to hunger, pain and death.
HOMILY!
on the resurrection of the dead!
"But some man will say, How are the dead raised up? and with what body do they come?'" (1 Corinthians 15:35).
The Apostle Paul knows in advance the objections that the unbelievers will make concerning the resurrection from the dead, and he rejects them in advance. Even today, the non-believers--who have not seen with physical eyes the miracle of the resurrection in nature, much less the spiritual resurrection--ask: "How will the dead be raised?" //Thou fool!//continues the apostle, //that which thou sowest is not quickened, except it die// (1 Corinthians 15:36). Unless the seed dies in the ground, the plant will not grow; in other words, something totally different from the seed will sprout up. The unbelievers see through their eyes yet do not see, but ask: "How will a dead man resurrect?" How? In the same way that Christ resurrected. He went down lifeless into the tomb, and rose alive. Even nature manifests resurrection from the dead; but more strongly than nature, it is manifested by the resurrected Lord. In order to make it easier for us to believe and to hope--to believe in the resurrection in general and to have hope in our own resurrection--He Himself resurrected from the grave and, prior to that, resurrected Lazarus the four-days-dead, the son of the widow of Nain, and the daughter of Jarius.
The unbelievers ask: "With what kind of body will the dead rise?" In whatever kind of body God wills. With God there are many kinds of bodies. The Apostle Paul divides all bodies into two groups: earthly bodies and heavenly bodies. Therefore, they who have died in earthly bodies will be clothed with heavenly bodies: the incorruptible will replace the corruptible; the immortal will replace the mortal; the beautiful will replace the ugly. In the heavenly body, man will also recognize himself and others around him, just as man recognizes himself both when he is clothed in beggar's rags and when he is clothed in royal purple.
Lord, Most-rich, do not give us over to eternal corruption but clothe us as royal sons in the garment of immortality.
To Thee be glory and praise forever. Amen.////
! THE HOLY MARTYR EUPSYCHIUS
Eupsychius was of noble birth and was well instructed in pious beliefs. During the reign of Julian the Apostate, and when St. Basil the Great governed the Church of God in Caesarea, Eupsychius entered into marriage with a prominent maiden. However, it was not given to him to live even one day in marriage. At the time of his wedding, it so happened that there was a pagan feast with sacrificial offerings to the idol Fortune. Eupsychius, with his companions, entered the temple, smashed all the idols and even demolished the temple itself. Hearing of this, Julian became greatly enraged and ordered that the culprits be beheaded, that many Christians be inducted into the army, that an enormous tribute be imposed upon all Christians, that the temple of Fortune be rebuilt at the expense of the Christians, and that the city be deprived of its honorary name "Caesarea," given it by Caesar Claudius, and be called by its former name, Maza. Eupsychius was first tied to a tree and brutally tortured, and was later beheaded, in the year 362 A.D. Shortly after this, the wicked Emperor Julian visited this city on his way to Persia, against which he was waging war. St. Basil the Great went out to meet him, carrying three loaves of barley bread as a sign of respect and hospitality. The emperor ordered that a handful of hay be given to the saint as a reciprocal gift. St. Basil said to the emperor: "You make jest of us, O Emperor. We offer you bread by which we feed ourselves, and you, in turn, give us food for livestock, which you, by your authority, cannot change into food for men." To this the emperor replied: "Know that I will feed you this hay when I return from Persia." However, the wicked apostate did not return from Persia, for he died a deserved and unnatural death.
! THE VENERABLE MARTYR VADIM
During the reign of the Persian King Sapor, Vadim, the abbot of a certain monastery and a man famous for his generosity, was cast into prison with seven of his disciples. With them in prison was a certain Prince Nirsan, who was also a Christian. They were taken out daily and beaten. Prince Nirsan became terrified; he promised to deny the Faith and worship the sun. This pleased Sapor, who promised to give Nirsan, among other things, the entire estate of Vadim's monastery if he would behead Vadim by his own hand. Nirsan agreed to this. With a quivering hand, and cowed [frightened] by the majestic countenance of St. Vadim, he struck this holy man with the sword many times on the neck until he finally beheaded him. Shortly after that, Nirsan succumbed to despair, stabbed himself with the sword and received, at his own hand, the due punishment for the murder of the righteous one. St. Vadim suffered in the year 376 A.D.
! HYMN OF PRAISE
! THE VENERABLE MARTYR VADIM
The courageous Vadim looks death in the eyes
And pities Nirsan, since misery has befallen him.
With a bare sword Nisan stands before Vadim;
He is not afraid of God, but of the saint.
He brandishes the sword, brandishes it and lowers it!
Before the knight of God--in truth, a sheer coward!
"Nirsan, Nirsan!" Vadim says to him.
"On the road to eternity, Vadim speaks to you:
Christ you denied; falsehood you embraced.
By yourself alone, you destroyed your soul.
I eagerly await death at each of God's hours,
That He may open unto me the gate of the Eternal Kingdom.
But I am sorry to die by your hand,
And never more to see you, O Prince.
Eternal darkness will cover a traitor of Christ
And, twice as black, one who slays Christians."
This the saint uttered and became silent,
And Nirsan slew him with a quivering hand.
Thus a lion died from a frightened rabbit!
But who did Nirsan slay--himself or the saint?
Eternal justice speaks: the thief judged himself,
And to the saint of God there came no harm.
! REFLECTION
It is said about Pericles that he was a man of almost perfect human beauty except that his head was oblong and resembled a gourd [squash], so that he was subject to ridicule when he appeared bareheaded in public. In order to conceal the defect of this great man of his people, Greek sculptors always portrayed him with a helmet on his head. When some of the pagans knew how to conceal the defects of their friends, how much more, therefore, are we Christians obligated to do the same? //Be kindly affectioned one to another! with brotherly love; in honor preferring one another// (Romans 12:10), commands the Apostle to those who cling to Christ. How can we say that we adhere to the meek and All-pure Christ, if we daily poison the air with tales about the sins and shortcomings of others? To conceal your own virtue and the shortcomings of others--in this is preeminent spiritual wisdom.
CONTEMPLATION!
Contemplate the resurrected Lord Jesus:
# How He appeared to Mary Magdalene in the Garden and, at first glance, Mary did not recognize Him;
# How He tenderheartedly addressed Mary, and how Mary then recognized Him and rejoiced in Him, and imparted her joy to the disciples.
HOMILY!
on the need to die in order to bring forth much fruit!
"Verily, verily, I say unto you, Except a corn of wheat fall into the ground and die, it abideth alone: but if it die, it bringeth forth much fruit" (John 12:24).
Why does the sower cast wheat upon the ground? Does he do this so that the wheat will die and rot? No, he does this so that it will live and bear fruit. In sowing the seed, the sower does not think about the death and decay of the seed, but rather about its life and yield. Indeed, with joy does the sower sow his seed, not thinking about the death of the seed, but rather about life and fruitfulness.
The Sower is Christ the Lord and men are His wheat. He was pleased to call us wheat. There are many other types of seed on earth, but nothing is more precious than wheat. Why did the Lord sow us throughout the world? So that we should die and decay? No, rather that we should live and bring forth fruit. He alludes to our death incidently. He alludes to death only as a condition for life and multiple yield. The goal of sowing is not death but life. The seed must first die and decay, and He mentions this only in passing because He knows we are fully aware of it. He only reminds us incidently of this, as His Gospel is primarily a narrative of life--about life and about bringing forth good fruit. He speaks to us a great deal about the latter because He knows we are not aware of it and that we are suffocating from ignorance and doubt. Not only does He speak to us abundantly about life, but He also shows us life. By His Resurrection, He demonstrates to us, more clearly than the sun, life and the multitude of fruit. The entire history of His Church is a clear map of life.
O invincible Lord of Life, save us from a sinful death. Deliver us from spiritual death.
To Thee be glory and praise forever. Amen.////
! THE SEVEN MACCABEES, THEIR MOTHER SOLOMONIA AND ELEAZAR THE PRIEST
They all suffered for the purity of the faith of Israel under King Antiochus, called by some "Epiphanes," the "enlightened one," and by others "Epimanes," the "insane one." Because of the great sins of Jerusalem, and especially because of the attempted dissolution of priestly authority and the crimes committed during this struggle, God allowed great misfortune to befall the Holy City. After that, Antiochus wanted to impose Hellenic idolatry upon the Jews by any means, and he did everything he could to completely replace the faith in the One Living God. Disaffected high priests and other elders of Jerusalem assisted Antiochus ion his intention. King Antiochus himself came to Jerusalem and ordered that all Jews eat the meat of swine, contrary to the Law of Moses, since eating pork was a blatant disavowal of the faith of Israel. The elder Eleazar, a priest and one of the seventy translators of the Old Testament into the Greek language [the Septuagint], would not partake of pork. Because of this, Eleazar was tortured and burned. On his return to Antioch, the king took with him the seven young men known as the Maccabees and their mother Solomonia. The seven Maccabean brothers were Avim, Antonius, Eleazar, Gurius, Eusebon, Achim and Marcellus. Before the eyes of their mother, the wicked king tortured the sons, one by one--tearing the skin from their faces and then casting them into the fire. They all bravely endured torture and death, but they did not disown their faith. Finally, when the mother saw her last son, a three-year old, cast into the flames, she leapt into the flames and was consumed, releasing her soul to God. They all suffered honorably for the faith in the One ilving God, in about 167 B.C [one hundred eighty years before Christ].
! THE PROCESSION OF THE HONORABLE CROSS
This feast was instituted by a mutual agreement between the Greeks and Russians, at the time of the Greek Emperor Manuel and the Russian Prince Andrew, in commemoration of the simultaneous victories of the Russians over the Bulgars, and the Greeks over the Saracens. In both of these battles, crosses--from which heavenly rays blazed forth--were carried by the armies. Therefore, it was ordained that, on August 1, the Cross be carried first to the middle of the Church of the Divine Wisdom [Hagia Sophia] and afterward through the streets for the veneration of the people, as a commemoration of the miraculous help of the Cross in battle. This was not an ordinary cross, but the true Honorable Cross itself, which was kept in the church of the imperial court. On July 31, the Honorable Cross was carried from the imperial court to the Church of the Holy Wisdom, and from there it was carried along the streets, for the consecration of the earth and the air. Finally, on August 14, it was returned to the church of the imperial palace.
! THE NINE HOLY MARTYRS
The names of these martyrs were: Leontius, Attus, Alexander, Cindeus, Mnesitheus, Cyriacus, Menaeus, Catunus and Eucleus. Leontius was a carpenter and the others were farmers. Because of their bold confession of the Christian Faith and their destruction of the temple of the pagan goddess Artemis, they were cruelly tortured and beheaded in Perga of Pamphylia, during the reign of Diocletian, and became heirs of the Kingdom of Christ.
! HYMN OF PRAISE
!
! THE HONORABLE CROSS OF CHRIST
Before the Honorable Cross of Christ,
All honorably prostrate:
By the power of this, the Cross of Christ,
From misfortune, we are delivered.
The Holy Cross is mightier than the demons,
And than any earthly king.
From sickness, the Cross saves us,
And from the assaults of barbarians.
Prince Andrew, by the power of the Cross,
His enslaved land, rescued;
Emperor Manuel, by the power of the Cross,
The Saracens, gloriously defeated.
The power of the Cross has been shown to be far more powerful
Than the armies of pagans,
Than violent aggressors,
Than all evils.
! REFLECTION
The weak man protects himself by hypocrisy, while the strong man protects himself by tyranny. That no man can defend his life before God--either by hypocrisy or by tyranny--is clearly shown to us by the example of the holy elder Eleazar and King Antiochus. When the tyrannical king brought Eleazar to trial and demanded that he eat pork if he desired to save his life, Eleazar adamantly refused. Then those partial to Eleazar offered him meat that was not pork, begging him to eat it in the presence of the king in order to appease him, thereby to preserve his own life and perhaps assuage his own conscience as well. The elder refused this offer, saying to them: "Hypocrisy is not becoming to me, nor is it meet for me, an old man, to be a scandal and stumbling-block to the young." The elder Eleazar was slain in the body, but he saved his soul. The punishment of God came upon the tyrannical King Antiochus while he was still living. A dreadful disease from within overcame him, and his body swarmed with worms. The stench from his body spread afar. In his despair, the king remembered the shedding of the innocent blood of thousands of human beings who, by his order, were mercilessly slaughtered. Overcome by the fear of God, he began to confess the One God, Whose faithful he had ruthlessly persecuted. However, heavenly mercy did not manifest itself to him.
! CONTEMPLATION
To contemplate the punishment of God upon Israel (Judges 10):
# How the Israelites committed that which was evil before the Lord, worshipping the Syrian, Sidonian and Moabite idols, and others;
# How the Lord gave them over in bondage to the Philistines, who, for eighteen years, punished them and oppressed them;
# How the Lord is fearsome toward apostates from the true Faith.
! HOMILY
! About prophetic visions
"The vision of Isaiah, the son of Amos" (Isaiah 1:1).
He who has understanding can know the one and true God. He who is without understanding should listen to the one who understands; and both the one who understands, and the other [who listens] will be saved. It is possible to clearly know God from created nature, and still more clearly from the inspired men of God, and most clearly from the Lord Christ. Before Christ, the inspired men of God were the prophets. Among the first was Isaiah, the son of Amos. The Spirit of God opened his sight, and he saw that which other men did not see. That is why he called his message to his people "a vision." How the prophets saw the heavenly mysteries and the mysteries of future events cannot be described: it can only be experienced by those to whom God gives that gift.
The visions of the holy prophets are true, for those prophecies and heavenly appearances were actually confirmed by later events. They are true because they served for the good of men, turning them from evil to good. Furthermore, they are true because the prophets fearlessly declared them, without regard for the suffering that subsequently befell them, and even without regard for the torturous death that many of them also suffered.
What did Isaiah receive from the world of men for his salvific visions? Riches, honor or an exalted office? The Jews sawed him in half! The wealth, honor and glory of the prophet is to suffer for the truth of God!
Therefore, let us listen to the prophets of God, for they are the paths that lead to the city of the Great King; they are the rays of the Sun of Righteousness, our Lord and Savior Jesus Christ; they illumine men with the heavenly light, pointing out the true Sun to them.
O Lord Christ, Who revealed Yourself through the prophets and prepared the way for Your descent into our valley, help us. Help us to recognize Your light and Your providence in Your holy prophets.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS ARCHDEACON LAWRENCE; SIXTUS, POPE OF ROME; AND OTHERS WITH THEM
When Pope Stephen was slain (August 2), St. Sixtus, who was an Athenian by birth, was appointed in his place. Sixtus was at one time a philosopher and then became a Christian. This was a time in which the bishops of Rome were slain one after the other: to become Bishop of Rome meant to be consigned to martyrdom. Emperor Decius was determined to destroy Christianity. Pope Sixtus was quickly brought to trial, with two of his deacons--Felicissmus and Agapitus. As the three were led to prison, Archdeacon Lawrence said to the pope: "Where are you going, Father, without your son? Where, O bishop, without your archdeacon?" The pope consoled him, prophesying to Lawrence that he would undergo even greater tortures for Christ, and that he [Lawrence] would shortly take this path. And indeed, as soon as they had beheaded Sixtus and his two deacons, Lawrence was apprehended. Lawrence had presciently placed all of his affairs, and the affairs of the Church, in order. As treasurer and steward [oikonomos] of the church, he removed all of the church's valuables to the home of the widower Cyriacus. (On that same occasion, he healed Cyriacus of a terrible head pain by the touch of his hand and restored the sight of a blind man, Crescention.) After being thrown into prison, Lawrence healed Lucillus, a prisoner of many years, of blindness; and then he baptized him. Witnessing this, Hippolytus, their jailer, was also baptized. He later suffered for Christ (August 13). Since Lawrence did not want to deny Christ--but on the contrary, advised Emperor Decius to reject his false gods--his face was beaten with stones, and his body was beaten with a scorpion (a chain with sharp teeth, and a curved handle like a scorpion's tail). Romanus, a soldier present at the torture, converted to the Christian Faith, and was immediately beheaded. In the end, they placed Lawrence on a gridiron, naked, and lit a fire under him. Roasting in the fire, St. Lawrence thanked God and mocked the emperor for his paganism. After Lawrence gave his pure and heroic soul to God, Hippolytus removed his body under cover of night to the home of Cyriacus, and then to a cave, where Hippolytus honorably buried him. St. Lawrence, with the others, suffered in the year 258 A.D.
! SAINT HIRON
Hiron was a Christian philosopher. He is mentioned by St. Gregory the Theologian in his books. He died peacefully and took up his eternal habitation with the Lord.
! HYMN OF PRAISE
!
! THE HOLY MARTYR, SAINT LAWRENCE
!
The impious emperor asked Lawrence:
"Where are you from? What is your rank?"
To which Lawrence replied:
"From Spain, educated in Rome,
And, of the One God, a servant, I am."
"Of the treasury of the Church, are you the guardian?"
"Of that good treasure, I am, O Emperor."
"Give us the treasure, and your life, save!"
"The treasure of the Church is in heaven--
In the Lord Christ, if you too believe,
That treasure, you also will inherit!"
"Lawrence, renounce Christ!"
"O Emperor, renounce the idols!"
The Emperor, enraged, his servants summoned,
Who beat Lawrence and crushed him,
And on a burning grid, laid him.
"This fire, to me, is cool,
But the fire in hades is ready for you!"
"Lawrence, renounce Christ!
Do you not regret dying young?"
"Christ, on the Cross, suffered for me:
He died for me, and I will die for Him."
With one side of his body consumed by the flames,
Lawrence, to his torturers, said:
"My body is just half cooked,
Turn me over, here is your food!
Turn me over, and cook the other side!"
He spoke and his soul departed
To the sweet heavenly mansions.
! REFLECTION
How can we overcome the antagonism of our enemies? By renunciation, meekness and prayer--renunciation in everything, except in faith and purity of life; meekness always; and prayer always. St. Ambrose writes: "This is the weapon of the righteous ones: that in retreating they conquer, just as the skillful archers are able to shoot those stronger than themselves, even as they themselves retreat." A brother was offended by his friend, but, nevertheless, desiring peace with him, went to him to be reconciled. His friend did not even want to open the door for him and, scolding him from within, chased him away from his dwelling. The brother then complained to a spiritual elder, who said to him: "You were going to your friend to be reconciled; yet, all along the way there, you condemned him in your thoughts and justified yourself. Even though your friend sinned against you, I counsel you to establish the thought in yourself that you have sinned against him. Justify him and condemn yourself. In this manner, go to him again." Thus, the brother proceeded. And what happened? Just as the brother approached his friend's abode, his friend opened the door wide, ran up to him, embraced him, and made peace with him.
! CONTEMPLATION
To contemplate the plagues that befell the Philistines because of the captured Ark of the Covenant (1 Samuel 5:6 [also known as 1 Kings 5:6]):
# How the people were afflicted with tumors [hemorrhoids], and mice devoured the crops, wherever the Philistines set down the Ark of the Covenant;
# How the Philistines, terrified, returned the Ark of the Covenant to the land of Israel;
# How the holy things of God punish those who keep them in an unclean land of idols, or in a heart defiled by passions.
! HOMILY
! About the weakness of sinful ones
"As for my people, children are their oppressors and women rule over them" (Isaiah 3:12).
All that is of God is most beautiful and most wise. Everything created by God travels obediently along the path for which God has ordained it. The stars move, animals live, and the atmospheric currents flow--all according to the order established by God. Only man, the most intelligent creature, frequently leaves the path of God, falling into ignorance and inventing strange paths according to his thinking. Because of this, it can be that children lead instead of elders, and instead of men, women rule. When children rule, oppression reigns. When women rule, disorder usually reigns. When this is permitted by God--as this does not occur unless the people sin, or by the permission of God--the people find themselves under punishment for their sins, in the same way that an enemy subdues the land in war; for all oppression is war, and every disorder is a punishment for sin.
Just as oppression and disorder are able to reign in a nation, they are able to reign in the soul of man. Immature and impious thoughts are contributed by children; and physical, sensual theorizing is the contribution of women. When immature and impious thoughts prevail, they oppress man and drag him from evil to evil--like a vindictive child. When physical theorizing prevails over spiritual, masculine wisdom--which is from God--it rules over man like an evil woman. Under the spiritual concept of "women," the prophet understands not only females, but also men with women's weaknesses.
So that children's petulance and women's whims do not overtake man (or a nation), it is necessary to adhere closely to the law prescribed by God for men--as all created things adhere to the law prescribed by God for them.
O Lord, our Creator and our Lawgiver, illumine us and strengthen us. Illumine us with the grace of the Spirit, that we may always know Your law. Strengthen us with the power of the Spirit, that we may always adhere to Your law.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR EUPLUS
Euplus was a deacon in Catania, Sicily. Emperor Diocletian dispatched the Roman commander, Pentagurus, to Sicily to exterminate any Christians he found there. Pentagurus did not find a single Christian, for the few that were there hid from the persecutor and did not reveal themselves. Even so, someone accused Euplus of taking a book to secret Christians and reading to them. This book was the Holy Gospel. They soon brought him to court, hung that book around his neck, and led him to prison. After seven days of imprisonment and hunger, Euplus was given over for torture. While they were beating him with iron rods, Euplus mockingly said to the torturing judge: "O ignorant one, do you not see that, by God's grace, these tortures are like a cobweb to me? If you can, find other, harsher tortures, for all of these are as toys." After more of the same, they led the martyr of Christ to the scaffold. There St. Euplus opened the Holy Gospel and read from it to the people for a long time. Many converted to the Christian Faith. St. Euplus was beheaded in the year 304 A.D., and took up his habitation in the Kingdom of Heaven. His miracle-working relics repose in a village near Naples, called Vico della Batonia.
! THE HOLY FEMALE MARTYR SUSANNA THE VIRGIN, AND OTHERS WITH HER
Susanna was the daughter of a Roman presbyter Gabinus, and the niece of Pope Gaius. Gaius and Gabinus were of royal lineage, and kinsmen to the then-ruling Emperor Diocletian. Emperor Diocletian had an adopted son, Maximian Galerius, whom he [Diocletian] wanted to marry Susanna. Susanna, completely dedicated to Christ the Lord, did not even want to consider marriage, and particularly not marriage with an unbaptized man. The aristocrats Claudius and Maximus had been pressuring her to marry the emperor's son, but Susanna converted them and their entire household to the Christian Faith. Enraged by this, the emperor ordered that the executioners take Claudius, Maximus and their household to Ostia--where they burned them alive and threw their ashes into the sea. Susanna was beheaded in the home of her father Gabinus. The emperor's wife, Serena, secretly a Christian, removed Susanna's martyred body under cover of night, and honorably buried it. Pope Gaius converted Gabinus's house into a church and celebrated services there, since this was the place where the young martyr Susanna was slain. Shortly following the suffering of this bride of Christ, her father Presbyter Gabinus and her uncle Pope Gaius also suffered. Susanna, her father and her uncle suffered honorably for the Lord and received their wreaths of glory, in the years 295 and 296 A.D.
! SAINT NIPHON, PATRIARCH OF CONSTANTINOPLE
Niphon was born in Greece. He was tonsured a monk in his youth and lived a life of asceticism, eventually making his way to Mount Athos. He practiced asceticism in various monasteries, remaining the longest in Vatopedi and Dionysiou. He was loved by all the holy Athonite fathers, as much for his rare wisdom as for his unusual meekness. He was consecrated Bishop of Thessalonica against his will, and then, two years later, he journeyed to Constantinople on business, where he was elected to the vacant patriarchal throne. Eventually the Sultan banished him to Jedrene, where he lived in exile. The Wallachian [Romanian] Prince Radul besought him from the Sultan, and named Niphon the archbishop of the Wallachian people. Then, because of Radul's transgressions, Niphon departed Wallachia and returned to Mount Athos, to the monastery of Dionysiou. There he lived a life of asceticism until his ninetieth year, when he took up his habitation in the Kingdom of God. He reposed in the year 1460 A.D. He composed the "Prayer of Absolution" read at the Burial Service:
[O Lord Jesus Christ, by His divine grace, as also by
the gift and power vouchsafed unto His holy
Disciples and Apostles, that they should bind and
Loose the sins of men: (For He said to them: Receive ye
The Holy Spirit: whosoever sins you remit, they are
remitted; and whosoever sins you retain they are retained.
And whatsoever you shall bind or loose upon earth shall be bound or loosed also in heaven.)
By that same power, also transmitted to us from them,
this my spiritual child, [Name], is absolved through me, unworthy though I be,
from all things wherein as mortal [he/she] hath sinned against God,
whether in word, or deed, or thought, and with all [his/her] senses,
whether voluntary or involuntary; whether with knowledge or through ignorance.
If [he/she] be under the ban or excommunication of a bishop, or of a priest;
or hath sinned by any oath; or hath been bound, as man, by any sins whatsoever,
but hath repented [him/her] thereof, with contrition of heart:
[he/she] is now absolved from all those faults and bonds.
May all those things which have proceeded from the weakness of [his/her] mortal nature
be consigned to oblivion, and be remitted to [him/her]:
Through His loving-kindness;
through the prayers of our Most-holy, and blessed, and glorious Lady Theotokos and ever-virgin Mary;
of all the holy, glorious and all-laudable Apostles, and all of the Saints. Amen.]
! THE VENERABLE BASIL AND THEODORE OF THE MONASTERY OF THE CAVES IN KIEV
Both Basil and Theodore died by violence at the hands of the avaricious [money-loving] Prince Istislav, in the year 1098 A.D. The hagiography of St. Theodore is especially instructive for the avaricious. Theodore was very wealthy, but distributed all of his wealth to the poor and was tonsured a monk. After that, he repented of his charity and grieved for his wealth, being greatly tempted by the evil spirit of avarice--from which St. Basil freed him.
! HYMN OF PRAISE
! SAINT SUSANNA, THE VIRGIN
A branch of Paradise was planted,
And on earth raised.
The branch grew and matured;
With heaven, her heart was infused.
The black earth did not darken her;
The evil of the world did not bend her.
Susanna, who was this branch of Paradise,
By God's Spirit, was illumined.
A bride of Christ God,
The son of the emperor she disdained.
The emperor was angered, and made threats
That he would soon take bitter revenge.
Susanna did not even listen,
Contemplating instead the mind of God.
Her heart was illumined,
And to Christ betrothed.
Her kinsmen were amazed,
And in Christ, all were baptized,
And martyrs became.
The emperor, his bloody hand, raised,
And on Susanna, suffering iinflicted.
But all suffering is as nothing,
When the soul, in the faith, is strong.
Susanna's head fell from her,
And her soul, in Paradise stood
And in Paradise, her soul arose.
In Paradise, Susanna's pure soul stood before her Christ.
! REFLECTION
If a man sets off on the path of righteousness, he should walk only on the path of righteousness, keeping both feet on the path: he should not step one foot on the righteous path and the other on the unrighteous path. For, through the prophet, God spoke thus about the righteous who commit unrighteousness: //All his righteousness that he has done shall not be mentioned: in his trespass that he has trespassed and in his sins that he has sinned, in them shall he die// (Ezekiel 18:24). The Wallachian Prince Radul was a just man, and performed many good deeds. He brought St. Niphon out of his bondage in Jedrene, and made him the Archbishop of Bucharest. Unexpectedly, Radul committed a dreadful transgression: he gave his sister to be the wife of the corrupt Prince Bogdan of Moldavia--while Bogdan's wife was still living. Radul did not heed the protests of Niphon. Niphon prophesied an evil end for Radul and publicly excommunicated him from the Church; then he departed from Wallachia. Shortly thereafter, there was a drought and a great famine in Wallachia, and Radul fell into an incurable illness, whereby his entire body was covered with sores; and because of his putrefying stench, no one could bear to approach him. When Radul was buried, his grave shook for three days, as once did the grave of Empress Eudoxia, the persecutor of St. John Chrysostom.
! CONTEMPLATION
To contemplate the self-will of the Jewish people (1 Samuel 8 [also known as 1 Kings 8]):
# How the Jews besought Samuel to appoint a king for them;
# How Samuel protested this in the name of the Lord, Who proclaimed that He is the only King;
# How the people remained stubborn, rejecting the will of God and the counsel of Samuel.
! HOMILY
! About how ugliness comes with sin
"Instead of sweet smell there shall be stink; and instead of a girdle a rent; and instead of well-set hair baldness …and burning instead of beauty" (Isaiah 3:24).
These are the words about extravagant and wayward women, about the daughters of Zion who have become haughty and //walk with stretched forth necks and wanton eyes, walking and mincing as they go and making a tinkling with their feet// (Isaiah 3:16). What was it that made the Hebrew women proud? Was it virtue? Virtue never made anyone proud, for virtue is in fact a cure against pride. Was it the strength of a people and the stability of the state? No--on the contrary, the prophet precisely fortells the imminent bondage of the people, and the destruction of the state. And the prophet cites vain extravagance, spiritual vanity, and wayward women as the main causes of slavery and destruction. What, therefore, made them so proud and haughty? Ornaments and embroideries, strung beads and necklaces; trinkets and hairpins; garters and cinctures [girdles]; perfumes and rings; seductive flutterings and mirrors. Behold, this is what made them proud and haughty! It is all an expression of their ignorant pride, but the true cause of their pride is spiritual perversity. From spiritual vanity comes pride--and that external melange [mixture] of colors that women drape over their bodies is only an obvious manifestation of their ignorant pride. What will become of all this in the end? Stench, disintegration, baldness and burning. This will occur when the people fall into bondage. As it usually happens, the spirit is enslaved by the body, then the body is enslaved by an external enemy.
Thus will be the case when the inescapable conqueror of our bodies, death comes to us. Sweet smells will not help in the grave--the kingdom of stench. Neither will the naked spine of a skeleton have need of a girdle; nor will braided hair save the skull from baldness; nor will beauty save the black remains from burning. This is the inescapable fate of even the most beautiful, the most healthy, the most wealthy, and the most extravagant women. But this is not the greatest misfortune. The greatest misfortune is that the souls of these women--with their stench, disheveledness, baldness, and burning--will come before God and the heavenly hosts of the most beautiful of God's angels and righteous ones. Here, the stench of the body denotes the stench that depravity and vice leaves in the soul; a disheveled body denotes the insatiability of the soul for bodily pleasures; physical baldness denotes the nakedness of a soul devoid of good works and pure thoughts; and the burning of the body denotes the burning of a tortured conscience and an inflamed mind.
Oh, how dreadful is the vision of Isaiah, the son of Amos. It was dreadful then, and it is dreadful even today--dreadful, because it is true.
O, Holy and Most-pure Lord, help the women who make the sign of Your Cross, that they may remember their souls, and cleanse their souls before Your Righteous Judgment; so that their souls, together with their bodies, do not become eternal stench.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS ANICETAS AND PHOTIUS
Emperor Diocletian once visited the city of Nicomedia with the evil intention of completely exterminating the Christians. But when he began his merciless torture of Christians, Anicetas, one of the high ranking officials of the city, boldly confessed his faith in Christ the Lord before the emperor. Anicetas also denounced the idols as deaf and dumb stones, the worship of which is unworthy of a rational man. The emperor had Anicetas's tongue cut out; but Anicetas, by the power of God, continued to speak. They then released a lion against him, but the lion fawned about him. At that very moment, the temple of Hercules collapsed. Photius, a kinsman of Anicetas, seeing the miracles and endurance of Anicetas, kissed him, declared himself a Christian, and cried out to the emperor: "O idolator, be ashamed! Your gods are nothing!" The emperor then ordered that Anicetas be immediately beheaded. However, in raising his hand against holy Photius, the executioner struck himself with the sword and died. After prolonged tortures, both Anicetas and Photius were cast into prison, where they languished for three years. Then a fire was lighted in an enormous furnace, and they cast them in. Many other Christians--men, women and children--willingly followed them into the fire. The prayer of the Christians, praising God for their martydom in the flames, issued forth from the furnace. They all suffered in about the year 305 A.D. Saints Anicetas and Photius are invoked in the prayers of the Sacrament of Holy Unction [Anointing with Oil] and in the Blessing of Water.
! [THE SACRAMENT OF HOLY UNCTION, ANOINTING WITH HOLY OIL].
O holy Father, Physician of souls and bodies, who did send Your Only-begotten Son, our Lord Jesus Christ, who heals every infirmity and delivers from death. Heal Thou, also Your servant [Name] from the ills of body and soul which do hinder [him/her] and quicken [him/her] by the grace of Your Christ: through the prayers of our Most Holy Lady, the Birth-giver of God and Ever-virgin Mary; through the intercession of the honorable Bodiless Powers of Heaven; through the might of the precious and Life-giving Cross, through the protection of the honorable, glorious Prophet, Forerunner and Baptist John; of the glorious and all-laudable Apostles; of the holy, glorious and right-victorious Martyrs; of our venerable and God-bearing Fathers; of the holy and healing, unmercenaries, Cosmas and Damian, Cyrus and John, Pantaleon and Hermolaus, Samson and Diomedes, Photius and Anicetas; of the holy righteous Ancestors of God, Joachim and Anna; and all the Saints.
For You are the Fountain of healing, O our God, and unto You do we ascribe glory, together with Your Only-begotten Son and Your Spirit, one in essence, now and ever, and unto ages of ages. Amen.
! THE PRIESTLY-MARTYR ALEXANDER, BISHOP OF COMANA
Alexander was a simple charcoal-burner in the town of Comana, near Neo-Caesarea. When the bishop of Comana died, St. Gregory the Wonderworker, Bishop of Neo-Caesarea (November 17), was summoned to preside at a council to elect a new bishop. Both clergy and laymen alike were present at the council. However, the electors were unable to agree on one person. In evaluating a candidate, they primarily paid attention to externals: apparent worth and behavior. St. Gregory said that they should have looked not so much at the external characteristics, but rather at the spirit and spiritual capabilities. Then several foolish men cried out: "Then we should elect Alexander the charcoal-burner as our bishop!" General laughter ensued. St. Gregory asked: "Who is this Alexander?" Thinking that this name had not come up at the council without God's Providence, Gregory ordered that Alexander be brought before the council. As a charcoal-burner, he was completely soiled and in rags. His appearance again evoked laughter in the council. Even so, Gregory took Alexander aside and made him take an oath to speak the truth concerning himself. Alexander admitted that he had once been a Greek philosopher and had enjoyed great honor and position. Yet, from the time he had read and comprehended Holy Scripture, he had rejected all, humbled himself and made himself a fool-for-Christ. Having heard this, Gregory ordered that Alexander be bathed and clothed in new attire. Then he brought him into the council chamber and examined Alexander's understanding of Holy Scripture. All present were amazed at Alexander's wisdom and words of grace, and could hardly recognize this wise man as the quiet charcoal-burner. Alexander was unanimously elected bishop. By his sanctity, wisdom and goodness, he gained the love of his flock. Alexander died a martyr's death for Christ during the reign of Diocletian.
! HYMN OF PRAISE
!
! SAINT ALEXANDER, BISHOP OF COMANA
!
Men look upon the clothes and the face,
But God looks at the soul and the heart.
The glorious Alexander, a charcoal-burner, was;
His body was blackened by soot,
Which water easily washes away.
A sinner's heart is blackened,
And only the fire of faith can cleanse it--
The fire of faith, and the lament of repentance!
It is easier to cleanse the skin of a charcoal-burner
Than the blackened heart of a sinner.
Alexander, with humility, was covered,
Like a flame hidden in a cave.
An object of derision for the credulous world, he was.
The world did not see, but Gregory saw,
And with spiritual acumen saw through the charcoal-burner,
And in him, found a saint!
In the dark cave, a beautiful flame:
Behind the mask of foolishness, great wisdom;
Beneath the grime and soot, a pure heart:
A royal soul in rotting rags.
Light to be hidden, the Lord does not allow--
At the appointed time, the light is proclaimed,
For the benefit and salvation of men.
All God's judgments are wondrous.
! REFLECTION
Learn to respect and love lowly and simple people. Such are the most blessed on earth, and such are the greatest in the Kingdom of Heaven. In them there is no pride--indeed, pride is the prevalent madness afflecting the rich and the powerful of this world. The lowly carry out their duty in this world perfectly; and yet, when someone praises them for it, it seems unearned to them--while the self-seeking men of this world seek praise for all their work, and often it is imperfectly done. St. Alexander was an eminent philosopher, yet he left everything, hid himself from exalted society and the praise of the world, and mingled with the lowliest and the simplest of men--a charcoal-burner among charcoal-burners. Instead of yearning for his former praises and honors, he rejoiced that children ran after him, laughing at him because of his sooty skin and ragged clothes. Even so, Alexander was not the only one who desired to live with the lowly and simple. Many kings and princes, learning of the sweetness of the Christian Faith, have removed the crowns from their heads and fled from aristocratic vanity, to be among simple people. Did not the Lord Jesus Christ Himself, the King of Kings, appear among shepherds and fishermen? St. Zeno counsels: "Do not choose a glorious place for living, and do not associate with men of prominence."
! CONTEMPLATION
To contemplate the wondrous providence of God, in the choice of Saul as king (1 Samuel 9 [also known as 1 Kings 9]):
# How Saul went out to seek the lost asses;
# How Samuel, to whom God revealed that Saul should be accepted as the King of Israel, met him;
# How the providence of God directs men, and sometimes gives them that which they do not envision.
! HOMILY
! About the awesome vision of the Prophet Isaiah
"I saw also the Lord sitting upon a throne, high and lifted up" (Isaiah 6:1).
Here is the vision of visions! Here is the glory of glories and the majesty of majesties! God showed great mercy to all of mankind, in that He gave them to see the great starry firmament, the work of His hands. He showed an even greater mercy in allowing some to see the eternal and wondrous angelic world. He showed the greatest mercy to a small number of His chosen ones, whom He allowed to see Himself--the Lord Sabaoth, the Only Uncreated One, and Creator of both worlds. How can mortal man see the Immortal God? Did not God Himself say to Moses: //For there shall no man see me and live//(Exodus 33:20)? And does not the Gospel say: //No man has seen God at any time// (John 1:18)? Truly, no mortal can see the face of God--His essence. But, by His condescension and infinite goodness and power, God can reveal--to some extent and in some form--how accessible He is to men. In a particular form and appearance, He appeared to Moses, Elias, Daniel and John the Theologian. He did not reveal His Essence, but a particular form and appearance. Isaiah saw Him on a throne //high and lifted up--//as the Judge raised above all the judges and all the earthly courts. The six-winged Seraphim stood around Him and cried one to another: //Holy, Holy, Holy, is the Lord of Hosts// (Isaiah 6:3). The Lord did not allow Himself to be seen alone, but rather as the King in His Invisible Kingdom, surrounded by the most exalted of beings, who were created by His power. Around Him are the foremost orders of the heavenly hierarchy, the chief commanders of His innumerable immortal hosts, the foremost lampstands of His light and His unendurable radiance.
This is the wondrous vision of Isaiah, the Son of Amos, the prophet of God.
O Holy, Holy, Holy, Lord--Thrice Holy--have mercy on us and save us, impure and sinful as we are.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR HIPPOLYTUS
Hippolytus was a military leader and the overseer of the prisons in Rome. He was born and raised a pagan. When St. Lawrence the archdeacon was thrown into prison, Hippolytus was ordered by the emperor to be especially watchful of this prisoner. Hippolytus saw with his own eyes how Lawrence restored the sight of the blind man Lucillus, and how Lawrence cured many others who were sick--and he [Hippolytus] came to believe in Christ. When Lawrence baptized him, Hippolytus had a heavenly vision, and spoke of it: "I saw innocent souls in great happiness, in the heavens." He then took Lawrence into his own hoousehold, and Lawrence baptized all the members (nineteen in all, including the old governess Concordia). When Lawrence was slain for Christ, Hippolytus transported the body of the martyr by night, wrapped it in a winding sheet, and honorably buried it. However, this came to the attention of Emperor Decius. On the third day following the martyrdom of Lawrence, Hippolytus was arrested and brought before the emperor. As he refused to deny the true Faith, he was struck on the mouth with stones. After that, the emperor ordered that Hippolytus be stripped naked and flogged. Naked before the emperor, he said: "You have not stripped me--you have begun to clothe me!" Then they stretched him out on the ground and beat him mercilessly. Hippolytus's only response was: "I am a Christian." The emperor, upon hearing that all of Hippolytus's household were Christians, ordered that they all be arrested. The aged Concordia said: "We prefer to die honorably with our master in the Christian Faith than to live dishonorably with you, who are unclean." Concordia was the first to be slain, and after her the remaining eighteen were slain, all before the eyes of Hippolytus. Finally they tied Hippolytus to a wild horse and dragged him relentlessly, until the martyr gave up his soul to God.
! SAINT TIKHON OF ZADONSK AND VORONEZH
Tikhon was born in a simple peasant family in the village of Korotsk, in the providence of Novgorod, in the year 1724 A.D. He received the monastic tonsure at age thirty-four, and, because of his ascetic practice and great spiritual wisdom, he was soon elevated to higher positions of service, until he was consecrated Bishop of Voronezh. His episcopacy lasted for almost five years, but, because of frail health, he withdrew and took up residence in the Monastery of Zadonsk. He died peacefully in the year 1783 A.D. in Zadonsk, where his miracle-working relics now repose. He was a great ascetic of the Russian Church, a rare shepherd, a strong intercessor, and the author of the most beautiful spiritual works. By his wisdom, holiness and asceticism, Tikhon can be equated with the great fathers of the Orthodox Church of ancient times. Because of the many witnessed miracles that were performed over his relics, he was proclaimed a saint, first by the people, then officially by the Church in the year 1861 A.D.
! THE VENERABLE EMPRESS IRENE, IN MONASTICISM CALLED XENIA [KSENIA]
Empress Irene was the wife of Emperor John Comnenus II (1118-1143 A.D.) who was also known as Kalo-John--John the Good. In addition to her monastic ascesis and many good works, Irene is also famous for building the Monastery of the Pantocrator [Almighty], one of the most glorious and most beautiful monasteries in Constantinople. St. Stefan of Dečani later lived a life of asceticism in this monastery.
! THE VENERABLE SERIDUS
Seridus was renowned as the founder of the famous community near Gaza in Palestine, in which such glorious fathers as Sts. Barsanuphius, John, Abba Dorotheus, Dositheus and others would come to live ascetic lives. St. Seridus died in the sixth century, to live in the eternal joy of his Lord.
! HYMN OF PRAISE
!
! SAINT TIKHON OF ZADONSK
!
The hut of a peasant, a saint nurtured,
With the spirit of the Orthodox Church imbued:
Tikhon, the hierarch, like a star shone,
And in spiritual mysteries, instructed the world:
"Read Holy Scripture--within it God is concealed;
It conceals God, and reveals Him.
All the books in the world can tell you no more
About God or yourself than Scripture.
Behold, without God, one cannot know God.
It is vain to seek God outside of God.
God gives Himself to us, as much as our minds can bear:
Into an egg, you cannot pour the sea!
How to save your soul, Holy Scripture teaches you,
From sin, death and damnation eternal.
A drowning man, about the water, does not ask:
'What is it?' 'How?' 'Where did it come from?'
About saving himself, he is only concerned,
And for a safe rock, in panic, he seeks.
The sea of life foams and rages;
In the midst of this sea, for yourself, seek salvation.
'What is this life?' 'From what was it made?'--
When death is stronger than we are, is this so important to know?
On the earth, knowledge and possessions remain;
To the grave, your body and fine clothing are given over.
The soul--only the soul can still be saved.
Labor and pray: 'Help me, O God!'"
! REFLECTION
"Give thanks to the Lord, but do not forget His great men, the poor and the needy, for they can accomplish much with God the Lord." These are the words of the illustrious Russian ascetic of the nineteenth century, Father Nazarius, the abbot of Valaam [Valamo] Monastery. He spoke these words to the wife of a high-ranking official in St. Petersburg [Petrograd] who had fallen into disfavor with the Tsar because of certain serious accusations. The accused official became ill from worry and lay in bed. Hearing that Father Nazarius had arrived in St. Petersburg, the wife of this official hurriedly sought him out, and related the misfortune that had befallen them, and implored him to pray to the Lord for her husband. "Do you have any copper or silver coins, any small change?" Father Nazarius asked her. The woman brought the coins and gave them to him. Then Father Nazarius left. Later that evening, Nazarius returned, and gladdened the wife with this news: "Glory to God! All those close to the Tsar have promised to intercede for you." Naturally, the wife thought he meant the courtiers of Tsar Alexander Pavlovich; but the spiritual father meant the beggars on the streets, to whom he had distributed the coins, and whom he had asked to pray to God for the husband of this woman. And shortly the news arrived that the Tsar was reconsidering this matter concerning the woman's husband and wanted to review it. This was just what her husband wanted. When the woman began to thank Father Nazarius, he said: "Give thanks to the Lord; but do not forget His great men, the poor and the needy--for they can accomplish much with God the Lord."
! CONTEMPLATION
To contemplate the wondrous might of prophesying (1 Samuel 10 [also known as 1 Kings 10]):
# How Samuel prophesied to Saul all that would happen to him one day;
# How the Spirit of God came upon Saul, and he also prophesied.
! HOMILY
! About the chief prophesy of the Prophet Isaiah
"Behold, a virgin shall conceive and bear a son and shall call his name Emmanuel" (Isaiah 7:14).
This glorious prophecy concerning the birth of the Lord by a virgin was spoken by Isaiah--the prophet who saw God--at a moment of deep despair for Jerusalem. The multitudinous army of Syrian and Ephraim had encircled the very walls of the city. King Ahaz and the inhabitants of Jerusalem--with neither an army nor weapons--were in mortal fear. //The heart of the king and the heart of the people trembled, as the trees of the forest tremble in the wind//(Isaiah 7:2). In that hour of despair, Isaiah came before the king, and by command of God said to him: //Fear not, neither be fainthearted// (Isaiah 7:4). Then Isaiah prophesied that the enemies would not take Jerusalem. Seeing that King Ahaz did not believe him, Isaiah told the king to ask for a sign, a miracle--be it from heaven or from earth. The unbelieving king did not want to ask, but remained obstinate in his doubt. The prophet then said that God would give them a sign, even though they did not seek it: //A virgin shall conceive and bear a son and shall call his name Emmanuel,// which is to say: "God is with us." This sign refers to distant, future times, and concerns the salvation of mankind. Why did the prophet not give a sign, so that the king would believe immediately? Isaiah's prophecy about the salvation of Jerusalem--given in the very hour in which the king thought that all was lost--was sufficient to show the power of God and the unbelief of the king. Why did the prophet, at that very moment and under such circumstances, prophesy the birth of the Savior? In the time of the coming of the Savior, mankind would be in the same kind of despair, attacked and encircled by demonic powers--just as was Jerusalem at the moment of the prophecy. Did the prophet explicitly prophesy //a virgin//, and not simply a woman? Undoubtedly, he prophesied //a virgin//. For if the prophecy were spoken of a mere woman, what kind of miracle would it be; what kind of sign? Are not all men born of women? All the weight of emphasis is on the word //virgin//.
Thus, the All-seeing God knows how to connect the near with the distant; and by fulfilling one prophecy in the present, He confirms a second prophecy in the future. //Emmanuel//--God is with us." He saved mankind from analogous dangers later, as the Incarnate God, the God-man, born of the Most-Pure Virgin and the Holy Spirit.
O Lord, Who gave power to the prophets to see the truth as it comes from afar, give us the power to embrace that truth which has already come.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET MICAH THE SECOND
Micah was of the tribe of Judah and from the village of Morasth, for which he is called the "Morasthite." He was a contemporary of the prophets Isaiah, Amos, and Hosea, and of the Jewish kings Jotham, Ahaz and Hezekiah. Micah rebuked the people for their vices, and rebuked the false prophets who prophesied //of wine and of strong drink//(Micah 2:11). He foretold the destruction of Samaria. He also foretold the destruction of Jerusalem, which would come because its leaders accepted bribes, its priests taught for hire, and its prophets told fortunes for money. //Therefore shall Zion for your sake be plowed as a field and Jerusalem shall become as heaps// (Micah 3:12). But, of all his prophecies, the most important prophecy is that of Bethlehem as the place of the birth of the Messiah, //Whose goings forth have been from of old, from everlasting// (Micah 5:2). It is not known exactly whether this prophet was slain by the Jews or whether he died a peaceful death. //[Micah the Morasthite prophesied in the days of Hezekiah king of Judah and spoke to all the people of Judah saying, Thus said the Lord of hosts; Zion shall be plowed like a field and Jerusalem shall become heaps and the mountain of the house as the high places of a forest. Did Hezekiah king of Judah and all Judah put him at all to death? Did he not fear the Lord and besought the Lord and the Lord repented him of the evil which he had pronounced against them? Thus might we procure great evil against our souls]// (Jeremiah 26:18-19). However, it is known that he was buried in his village. During the reign of Emperor Theodosius the Great, Bishop Zevin of Eleutheropolis had a mystical vision that led to the finding of Micah's relics, together with those of the Prophet Habakkuk.
! THE PRIESTLY-MARTYR MARCELLUS, BISHOP OF APAMEA
Marcellus was a highly educated Cypriot, born of wealthy and eminent parents. He married and had children. When his wife died, Marcellus withdrew to Syria for the monastic life, leaving his children to God's providence. He gained renown by his compassion, meekness and spiritual knowledge. The Apameans elected him as their bishop. Bishop Marcellus zealously labored to convert pagans to the Christian Faith. It happened that an idolatrous temple was burned, and the idolaters seized Marcellus, accusing him as having set the fire. They burned him in about the year 389 A.D. Especially instructive in the //Life// of St. Marcellus is a discussion of the blessing of water, and the use of blessed water.
! HYMN OF PRAISE
! THE HOLY PROPHET MICAH
!
Micah, God's prophet, with the divine Spirit burned,
Foretelling doom and proclaiming salvation:
"Hear, you leaders of the house of Jacob:
When fire erupts, the chaff is not saved.
You hate good and evil you relish;
God's people, you heartlessly defraud;
The Law and the prophets of old you have abandoned;
You hearken not to God, but to sorcerers!
But misfortune, pain and lamentation will come;
You will cry out to heaven, but in vain and too late.
For the Assyrian, Samaria will be a threshing floor,
And for the barbarous Chaldeans, Jerusalem!
But you, Bethelem, little Ephratha,
Though least, you are dearest to Me.
From you, the Leader we need shall come.
His descent shall be from the heart of heaven;
Out of His fervent love He will come with eagerness.
With His mighty staff, His flock He will tend.
He shall be great unto the ends of the earth.
The earth and the heavens, of His mercy, shall sing,
And peace will reign--He shall be that peace.
In Himself, He will glorify the race of man.
! REFLECTION
Beware of a parent's curse, for a parental curse is a dreadful thing. Value, and seek, a parental blessing--for it will be with you throughout your entire life. The all-wise Sirach speaks: //For the blessing of the father establisheth the houses of children; but the curse of the mother rooteth out foundations// (Sirach 3:9 [Ecclesiasticus 3:9]). The curse by which Noah cursed the descendants of Ham continued to follow the unfortunate Hamites, but the sons of Jacob have had blessing in their lives, by the grace of their father's blessing. As a young man, St. Sergius begged his parents for their blessing to become a monk. His aged parents begged their son to wait awhile and abide with them until their death, and then be tonsured a monk. Sergius obeyed his parents, and was blessed throughout his life. Bishop Hermogenes relates that a man mistreated his wife. When his mother tearfully scolded him because of it, the son attacked his mother, beat her, and smashed her head against a wall. The sorrowful mother cried out: "Lord, may my son be cursed, and may he not have my blessing nor Your blessing." That same day, the son began to tremble throughout his entire body, and for thirteen years he trembled so badly that he was not even able to raise a spoon to his mouth. He finally made his confession and received the Sacrament of Holy Communion--which eased his suffering a little. Soon afterward he died.
! CONTEMPLATION
To contemplate God's wondrous assistance of Saul, in battle with the Ammonites (1 Samuel 11 [also known as 1 Kings 11]):
# How the powerful Nahash [Naas], the leader of the Ammonites, threatened to pluck out the right eyes of all the Israelites;
# How the people of Israel wept before the Lord;
# How God helped Saul and Samuel destroy the Ammonites, for the Spirit of God was upon them.
! HOMILY
! About the prophecy of light in darkness
"The people that walked in the darkness have seen a great light: they that dwell in the land of the shadow of death, upon them hath the light shined" (Isaiah 9:2).
The prophet foretold that, where it was darkest, the light-bearing Messiah would appear. The land of Zebulun and the land of Naphtali were considered to be the darkest lands. There the pagans intermingled with the Jews; the yoke of external and internal slavery was the heaviest; the darkness of the pagans and the spiritual blindness of the Pharisees covered the people with the shadow of death. The Light of Heaven shone first in Bethlehem when Christ the Lord was born there. That Light was seen from afar by eastern Magi, and from nearby by the shepherds of Bethlehem. But that Light was driven out of Bethlehem by the bloody sword of Herod, and the Light withdrew to Egypt. After that, the Light shone in full radiance in the land of darkness and the shadow of death--the land of Zebulun and Naphtali. Beside the lake in that region, there lived fishermen whom our Lord chose for His disciples. Also in that land is to be found the Mount of the Beatitudes, from whose slopes the Lord proclaimed His first great sermon. There, also, is Cana of Galilee, where the Lord worked His first miracle. There He began His work for the salvation of mankind by His powerful words and deeds. Men saw this great Light and were astonished. Many were scandalized by the Lord, and many mocked Him. But these men of darkness did not kill Him. There was another, darker place in the land of the Jews, whose people rose up against the Creator and slew Him. It was the same place from which Herod, thirty-three years earlier, had raised his bloody sword to extinguish the Great Light by blood. This place was Jerusalem. Of all the darkness, the darkness of Jerusalem was the blackest--ironically, since the name Jerusalem means "light."
O Lord, our Great and All-powerful Light, encompass us by Your light in our fleeting lives, and receive us, when we pass from this earth, into Your glorious, immortal Light.
To Thee be glory and praise forever. Amen.
! THE DORMITION [THE FALLING ASLEEP - THE ASSUMPTION] OF THE MOST-HOLY BIRTH-GIVER OF GOD (THEOTOKOS)
The Lord Who, on Mt. Sinai, gave the Fifth Commandment, //Honor your father and your mother//(Exodus 20:12), showed by His own example how one should respect one's parents. Hanging on the Cross in agony, He remembered His Mother, and indicating to the Apostle John, He said to her: //Woman behold your son// (John 19:26). After that, He said to John: //Behold your mother// (John 19:27). And so, providing for His Mother, He breathed His last. John had a home on Mount Zion, in Jerusalem, in which the Theotokos then lived. She dwelt there to the end of her days on earth. By her prayers, kind guidance, meekness and patience, she greatly assisted Her Son's apostles. She spent most of her remaining time on earth in Jerusalem, often visiting those places that reminded her of the great events and of the great works of her Son. She especially visited Golgotha, Bethlehem and the Mount of Olives. Of her few distant journeys, her visit to St. Ignatius the God-bearer [Theophorus] in Antioch is recorded; as is her visit to Lazarus (whom our Lord resurrected on the fourth day), the Bishop of Cyprus. She also visited the Holy Mountain [Athos], which she blessed; and she stayed in Ephesus with St. John the Evangelist [The Theologian] during the time of the great persecution of Christians in Jerusalem. In her old age, she often prayed to her Lord and God on the Mount of Olives, the site of His Ascension, that He take her from this world as soon as possible. On one of these occasions, the Archangel Gabriel appeared to her and revealed to her that she would find repose within three days. The angel gave her a palm-branch, which was to be carried in her funeral procession. She returned home with great joy, hoping in her heart to see her Son's apostles just once more in this life. The Lord fulfilled her wish, and the apostles, borne by angels in the clouds, gathered together at the house on Mount Zion. With great rejoicing she saw them, encouraged them, counseled them, and comforted them. Then she peacefully gave up her soul to God without pain or physical illness. The apostles took up her coffin, from which a heavenly fragrance arose--and, in the company of many Christians, bore it to the Garden of Gethsemane, to the sepulchre of her parents, Saints Joachim and Anna. By God's providence, the procession was concealed by a cloud from the evil Jews. Even so, Aphthonius [Anthony], a Jewish priest, grabbed the coffin with the intention of overturning it, but an angel of God severed both his hands. He then cried out to the apostles for help, and was healed upon declaring his faith in the Lord Jesus Christ. The Apostle Thomas was absent--again, according to God's providence--in order that a new and all-glorious mystery of the Holy Theotokos would be revealed. On the third day, Thomas arrived and desired to venerate [kiss] the body of the Holy Most-pure One. But when the apostles opened the sepulchre, they found only the winding sheet: the body was not in the tomb! That evening, the Theotokos, surrounded by a host of angels, appeared to the apostles and said to them: "Rejoice, I will be with you always." It is not exactly known how old the Theotokos was at the time of her Falling Asleep, but the overwhelming opinion is that she was over sixty years of age.
! HYMN OF PRAISE
!
! THE MOST-HOLY BIRTH-GIVER OF GOD [THE THEOTOKOS]
!
Thus spoke the Lord Most-high:
"From your heart, Virgin pure,
Living water will flow,
That those who thirst will drink Christ."
Life-bearing source,
We all boast of you!
------------
Those who thirst will drink Christ.
By Him, the bitter is sweetened;
By Him, the scales are washed from blind eyes;
And by Him, the grief of those in sorrow is healed.
Life-bearing source,
We all boast of you!
------------
Sweet drink sprung from eternity,
Our arid age, the brook filling:
Once more toward heaven raised,
Our exhausted world becomes refreshed.
Life-bearing source,
We all boast of you!
------------
Glory to You, O Most-pure One!
Glory to You, O Mother of God!
For us the Living Christ You did bear,
The living water of grace!
Life-bearing source
We all boast of you!
! REFLECTION
Each one of the faithful can learn much--indeed, very much--from the life of the Virgin Theotokos. I would like to mention only two things. First, she frequently went to Golgotha, the Mount of Olives, the Garden of Gethsemane, Bethlehem, and other places redolent [reminiscent] of her Son. She prayed on bended knees at all of these places--especially at Golgotha. Thus she gave the first example and impetus to the faithful of visiting holy places out of love toward Him Who by His presence, His passion and His glory made these places holy and significant. Second, we learn how she prayed for a quick departure from this life, so that, when separated from her body, her soul would not encounter the prince of darkness and his horrors, and hidden from the dark regions would not see the punishment of those darkened by sin. Do you see how terrible it is for the soul to pass through the toll-houses [mitarstva]? When she--who gave birth to the Destroyer of hades, and who herself has tremendous power over demons--prayed thus, what then is left for us? Out of extreme humility, she commended herself to God, and did not trust in her own deeds. So much less should we trust in our deeds, and even more we should commend ourselves into the hands of God, crying out for His mercy, especially at the time of the departure of the soul from the body.
! CONTEMPLATION
To contemplate the wondrous sign by which Samuel confirmed his words before the people (1 Samuel 12 - [also known as 1 Kings 12]):
# How Samuel told the people it was evil in the sight of the Lord that they sought a king for themselves other than the Lord, the true King;
# How for the confirmation of his words, he called upon God for thunder and rain;
# How the thunder and rain descended, and how the people were in fear of God, and of Samuel.
! HOMILY
! About the Most-glorious Child
"For unto us a Child is born, unto us a Son is given: and the government shall be upon His shoulder: and His name shall be called Wonderful, Counseller, The mighty God, The everlasting Father, The Prince of Peace" (Isaiah 9:6).
In all of human history, to what mortal man could all of these titles, all of this authority, and all of this glory apply? There is no one. That is why St. Chrysostom says: "It is impossible to understand this in regard to any other man, but only in reference to Christ." The prophet here clearly expresses two natures in the Savior: the human and the divine. //A Child is born--//this signifies a human nature. //Unto us a Son is given--//this unites the two natures in one person, the Son of God and the Son of the Virgin in the person of the Incarnate Lord. The remaining titles signify the Divine Nature of the Lord Jesus. His government is //upon His shoulder--//the government is His, His own, and is not borrowed. //Mighty Counsel--//is this not the Holy Trinity? The angel--or messenger and herald--of this Triune Counsel is the Son of God, the Pre-eternal Word. //Wonderful Counseller--//for all that is wonderful, all that is new that has come to mankind is from Him and through Him. //The Mighty God--//what would Arius and his modern adherents, who deny the divinity of the Lord Jesus, say to this? //The Prince of Peace--//for from Him is lasting peace; outside Him is war, without and within. //The Everlasting Father// [the Father of future times]--as He is the Lord of the past, so also is He the Lord of the future. Furthermore, He is also the Father of the Church, the Creator of the new world, the Founder of the Kingdom of God.
Isaiah himself, the son of Amos, saw this wonderful and true vision some seven hundred years before it was revealed to the entire universe.
O Lord Jesus, You are to the prophets the most glorious prophecy, and to the faithful the most glorious revelation. Unlock our minds, so that the wonderful glory of Your majesty can enter into our minds; and unlock our hearts, so that they would be filled by Your life-creating love.
To Thee be glory and praise forever. Amen.
! THE ICON OF THE LORD JESUS CHRIST, "NOT MADE WITH HANDS"
At the time when our Lord preached the Good News and healed every illness and infirmity of men, there lived in the city of Edessa, on the shore of the Euphrates, a prince named Abgar, who was completely infected with leprosy. He heard of Christ, the Healer of every pain and disease, and sent an artist, Ananias, to Palestine with a letter to Christ in which he begged the Lord to come to Edessa and to cure him of leprosy. In the event that the Lord was unable to come, the prince ordered Ananias to portray His likeness and to bring it to him, believing that this likeness would be able to restore his health. The Lord answered that He was unable to come, for the time of His passion was approaching. Instead, He wiped His face with a towel--and the image of His face remained on the towel. The Lord gave this towel to Ananias with the admonition that the prince would be healed by it, but not entirely--He would send the prince a messenger who would complete the healing of his disease later on. Receiving the towel, Prince Abgar kissed it and the leprosy completely fell from his body, but a little remained on his face. Later, the Apostle Thaddaeus came to Abgar, preached the Gospel, and secretly healed and baptized him. The prince then destroyed the idols which stood at the gates of the city. He placed the towel with the likeness of Christ--with a wooden backing, framed in a gold frame, and adorned with pearls--above the gates. The prince also wrote beneath the icon, directly on the gateway: "O Christ God, no one will be ashamed who hopes in You." Later, one of Abgar's great grandsons restored idolatry, and the Bishop of Edessa came by night and walled up that icon over the gates. Centuries passed. During the reign of Emperor Justinian, the Persian King Chozroes attacked Edessa, and the city was in great hardship. It happened that Bishop Eulabius had a vision of the All-Holy Theotokos, who revealed to him the mystery of the sealed wall and the forgotten icon. The icon was discovered, and by its power the Persian army was defeated.
! THE HOLY MARTYR DIOMEDES [DIOMIDIUS]
Diomedes was a physician of prominent birth from Tarsus. Healing the people, Diomedes taught them the Christian Faith. Emperor Diocletian ordered him beheaded in Nicaea, in the year 298 A.D. Those who beheaded him and brought his head to the emperor were blinded, but when they returned the head to the body and prayed, they were healed.
! THE VENERABLE JOACHIM OF OSOGOVSK
Joachim lived a life of asceticism in the second half of the eleventh century on Osogovsk Mountain, in a cave at a place called Sarandopor. Later in this place, another ascetic, Theodore of the Sheepfield, to whom St. Joachim appeared in a dream, built a church. Throughout the centuries, many miracles occurred over the relics of the Venerable Joachim, and still do today.
! THE HOLY MARTYR STAMATIUS
Stamatius was a peasant born in Volos, in Thessaly. When an inhuman Agha [Aga] collected the royal tribute from the people and greatly mistreated them, Stamatius departed for Constantinople with several of his companions to complain to the Vizier [Vizir]. By his sharp criticisms of the Agha, Stamatius offended the sultan's noblemen and they arrested him. At first they tried to convert him to Islam by flattery, promising him riches, glory and honor. But the martyr cried out: "Christ is my riches, glory and honor!" The Turks tortured him, and finally, in front of the Church of Hagia Sophia [Divine Wisdom], Stamatius was beheaded. That is how this soldier of Christ was crowned with the martyr's wreath, in the year 1680 A.D.
! HYMN OF PRAISE
!
! PRINCE ABGAR
!
O gentle God, Who reveals mysteries,
Wonderful mysteries, never before heard of--
Once by the lake, You proclaimed
That many pagan peoples
From the east to the west,
With Abraham, would sit at table,
And that the unbelieving sons of the Jews,
To utter darkness, would be banished (Matthew 8:11-12)
Because of their hardened hearts.
This mystery, You spoke, and it came to pass:
The Jews at Your face looked,
But behind Your back prepared death.
But from a distant land, Prince Abgar,
Leprous in body, as well as in soul,
From the false faith of the pagans,
Heard of You by word of mouth,
Heard of Your words and miracles,
Heard of You and, in You, believed.
And when, the likeness of Your most-pure face, he saw,
With tears, he kissed it
And in soul and body was made whole.
His soul to Paradise went,
With Abraham to rejoice eternally.
! REFLECTION
The Orthodox Church surpasses all other Christian groups in the richness of her Tradition. The Protestants want only to adhere to Holy Scripture. But Holy Scripture cannot be interpreted outside of Tradition. The Apostle Paul himself commands: //Therefore, brethren, stand fast and hold the traditions which you have been taught, whether by word or our epistle// (2 Thessalonians 2:15). The tradition of Prince Abgar, without doubt, is of Apostolic Tradition, even though the apostles do not mention him in their writings. The Apostle Thaddaeus did not write anything at all (and according to Protestant thinking, that would mean he did not say anything and or teach the faithful). According to what, then, was he an apostle of Christ? St. John Damascene [Damaskin] cites the tradition of Prince Abgar in his defense of the veneration of icons. How wonderful and touching is the letter of Abgar to Christ! He wrote, first of all, that he had heard of His miraculous power--that Christ cured the sick. Then he implored Him to come and to heal him, and continued on to say: "I also hear that the Jews hate You, and that they are preparing some evil against You. I have a city, not large, but beautiful and bountiful in every good; come to me and live with me in my city, which is sufficient for the both of us for every need." Thus wrote a heathen prince, while the princes of Jerusalem were preparing death for the Lord, the Lover of Mankind.
! CONTEMPLATION
To contemplate God's wondrous help to Jonathan, the son of Saul (1 Samuel 13-14 [also known as 1 Kings 13-14]):
# How the Philistines rose up against the Jews, and the army of the Philistines was //as the sand which is on the sea shore// (1 Samuel 13:5 - 1 Kings 13:5);
# How Jonathan, with his young armor-bearer [the man who bore his armor], attacked the Philistines, trusting in God--and how he confused and defeated them;
# How even we should know the truthfulness of Jonathan's words: //It may be the Lord will work for us: for there is no restraint to the Lord to save by many or by few// (1 Samuel 14:6 - 1 Kings 14:6).
! HOMILY
! About the divine branch from the root of Jesse
"And there shall come forth a Rod out of the stem of Jesse and a Branch shall grow out of his roots" (Isaiah 11:1).
With such clear prophesies about Christ the Lord, why did the Jews not believe in Him as the Messiah? Because of their insane pride, and their insane crimes against holy and righteous men. Who is that Rod from the stem of Jesse, other than the Lord Christ? Jesse was the father of King David: the Messiah was expected from the lineage of David. He appeared from the lineage of David and from Bethlehem, the city of David. The //Rod out of the stem of Jesse//signifies the physical descent of the Lord through the Virgin Mary--a descendant of Jesse and David--and the Branch out of his roots (Jesse's roots) signifies the revelation of that righteousness in Him which had been trampled down by many kings from the house of David. Trampled-down righteousness is like a dry tree stump: from the root of such a tree stump, a green branch sometimes sprouts. The Lord Jesus is such a self-sprouting Branch. From His mother, He is of the lineage of David; by His righteousness, He is of the lineage of David; and by His Divine Conception, He is of the Holy Spirit. In eternity, He is of the Father without a mother; in time, He is of a mother without a father. In eternity, the concept of becoming man [incarnation] remained hidden under the covering of Divinity; in time, His Divinity therefore remained hidden under the covering of humanity. Pilate gazed in vain at this //Rod from the stem of Jesse// and cried out: //Behold the Man!// (John 19:5)--the same as when one looks at a wire conveying electrical current among many ordinary wires and cries out: "Behold the wire!" Such a one does not recognize electrical current in the wire, nor did Pilate recognize God in the man.
O Lord Jesus, mankind-loving God-man, make us to love God, and save us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR MYRON THE PRESBYTER
Myron was a priest in the town of Achaia. He was of wealthy and prominent origin, yet was kind and meek by nature--a lover of both God and of man. During the reign of Emperor Decius, on the Feast of the Nativity of Christ, pagans charged into the church, dragged Myron out of the service, and subjected him to torture by fire. During this torture, an angel appeared to him and encouraged him. The pagans began to peel his skin in strips from his head to his feet. The martyr grabbed one such strip of his skin and struck his torturer, the judge, on the face with it. As though possessed, Antipater the judge grabbed a sword and killed himself. Finally, the pagans took Myron to the city of Cyzicus, and slew him there with the sword, in the year 250 A.D.
! THE HOLY MARTYR PATROCLUS
Patroclus was a citizen of the city of Trychasia, present day Troyes in France [Gaul]. He inherited great wealth from his parents and, as a true Christian, used it to perform daily acts of mercy for the less fortunate, while he himself lived a life of asceticism, taking food only once a day after the setting of the sun. Because of the sanctity of his life, the Lord granted Patroclus the power of healing, and he was known throughout the land as a miracle-worker. Emperor Aurelian, arriving in Gaul, ordered that Patroclus be brought before him. St. Patroclus proclaimed his faith in Christ before the emperor, and did not conceal anything. "O Emperor, if you desire something of my wealth, I will give it to you, for I see you as poor," said St. Patroclus to the emperor. To this the emperor replied: "How is it that you call me, the emperor, poor, when I have countless riches?" St. Patroclus then said: "You have only transient earthly treasures. You are poor, for you are not in possession of yourself, nor do you possess the Christian Faith in your heart." He was condemned to death and given over to the soldiers to be taken to a bog near the river to be slain, and to be left to sink into the mud. But the saint of God prayed to God that his body not remain in the mud, and by the power of God he suddenly became invisible to the soldiers and was translated to the other side of the river. After a long search, the soldiers found him and slew him on a dry spot of land. Two beggars, to whom Patroclus often gave alms, happened by, recognized the body of their benefactor, and buried it with honor.
! THE VENERABLE ELIAS OF CALABRIA [ITALY]
Elias was a Greek by descent, and was the abbot of the Monastery of Mellicia, in Calabria in southern Italy. During the iconoclastic rebellion in the East, many eastern monks fled to Calabria with icons. In time, the monastic life was spread widely throughout Calabria. The Calabrian monks were distinguished by their great learning and austerity of life. At one point, there were so many Orthodox monasteries and monks in Calabria that Calabria was compared with Egypt of old. Later, through the centuries, Orthodox Calabria came under the authority of the Archbishop of Ohrid. Venerable Elias died in Thessalonica in the year 903 A.D.
! THE VENERABLE ALYPIUS THE ICONOGRAPHER OF THE MONASTERY OF THE CAVES IN KIEV
Portraying the images [faces] of the saints on wood, Alypius imitated their good works in his own soul. He healed a man of leprosy, saw an angel of God, and died peacefully in the Lord in his old age in the year 1114 A.D.
! HYMN OF PRAISE
! THE HOLY MARTYR PATROCLUS
!
Patroclus, before the emperor, stood erect.
And fearlessly glorified Christ God;
The emperor questioned him, and Patroclus said:
"The wealthy, to the poor, should give:
I am wealthy and you, O Emperor, are poor;
I have treasure, if only you would ask."
"Am I, who rule the world, poor?
And are you wealthy, with only that cursed Faith?"
"Wealthy, I am," Patroclus repeated,
"In the fire, my wealth does not burn;
Unto the ages of ages my wealth lasts;
In heaven, my wealth awaits me."
The emperor angrily cried out:
"What kind of wealth is this? You are in my power!
To torture will I give you over!"
"Give me over, O Emperor," Patroclus replied.
"God will reward my sufferings.
Torture my body; it is made for torture--
And into the hands of the Lord, my spirit I will give.
A Christian's spirit is free,
As it is with every Christian soldier.
Glory and victory await me,
Just as shame and misfortune await you, O Emperor.
Upon me, be swift, and heap tortures,
So that my wreath does not fade, O Emperor.
! REFLECTION
The Lord does not allow His faithful servants to be shamed. It often happened that the martyrs of Christ, ridiculed and mocked before the courts, unexpectedly performed a miracle, which instilled fear in the unbelievers. Either the idols fell, or thunder destroyed the temples of the heathen, or an unexpected downpour of rain extinguished the fire prepared for their burning, or the torturers beat themselves with stones and rods and so forth. Thus, while he was torturing St. Myron, Antipater suddenly went insane and killed himself. St. Alypius the Icongrapher was already at the end of his life when he received an order from a man to paint [write] an icon of the Dormition [the Falling Asleep - The Assumption] of the Most-holy Theotokos. As the feast was approaching, this man came several times to see if the icon was completed. But the icon was not even begun by the eve of the Feast of the Dormition, when the icon was supposed to have been placed in the church. When this man had gone home grief stricken, a young man suddenly appeared in Alypius's cell and immediately sat down to paint the icon. He worked very quickly and with great expertise. When the icon was completed, it shone like the sun. After showing the icon to the astonished Alypius, the young man took the icon to the church for which it had been ordered. The next day, that man who had ordered the icon went to the church and, to his great surprise, saw the icon in its place. Then he came to the monastery and, along with the abbot, entered Alypius's cell. "How was this man's icon painted so swiftly, and who painted it?" asked the abbot. The ailing Alypius replied: "An angel painted it, and he is standing here now, to take me away." And with that, he gave up the spirit.
! CONTEMPLATION
To contemplate God's punishment of Saul because of his disobedience (1 Samuel 15 [also known as 1 Kings 15]):
# How God commanded Saul not to spare the Amalekites nor to take any of their livestock;
# How Saul spared Agag, the Amalekite King, and allowed the best of the livestock to be taken;
# How Samuel informed Saul that God had rejected him because of his disobedience, and because of his self-willed offering of the sacrifice to God without a priest.
! HOMILY
! About the Spirit-bearing Divine Child
"And the Spirit of the Lord shall rest upon Him, the spirit of wisdom and understanding, the spirit of counsel and might, the spirit of knowledge and of the fear of the Lord" (Isaiah 11:2).!
The Holy Spirit of God does not separate from the Father, nor does He separate from the Son; nor does the Father separate from the Son and the Spirit; nor does the Son separate from the Father and the Spirit. The Holy Spirit prophesied about the Son through the prophets; the Holy Spirit overshadowed the All-holy Virgin and prepared her for the birth of the Son of God; the Holy Spirit stood inseparably over the Son during the entire time of His dwelling in the world in the body. The spirit of wisdom--this is the vision of heavenly mysteries; the spirit of understanding--this is the comprehension of the ties of the visible and invisible worlds; the spirit of counsel--this is the separation of good from evil; the spirit of power [might]--this is the authority over created nature; the spirit of knowledge--this is the knowledge of the essence of created beings; the spirit of the fear of the Lord--this is the recognition of the divine power over both worlds, and submission to the will of God. Who, at any time among men, has had this fullness of riches of the gifts of the Holy Spirit? No one but the Lord Jesus Christ. Nevertheless, the Holy Spirit distributes His gifts freely, and gives them to men, some to this one, and some to another. But the whole of the undivided fullness of His gifts shines only in the Son of God.
Why did the Lord Jesus need to have the fear of God when He Himself is God? As God, He did not have the fear of God; but as a man, He had the fear of God as an example for us. Just as He fasted, watched and labored as a man for the sake of teaching men, so He feared God as a man, for the sake of teaching men. What is more curable for men infected with sin than the fear of God? He, as One Who was healthy, had to take unto Himself the medicine for sin so that He could encourage us, who are sick, to take that medicine. Does not a parent do the same thing, with sick children who are afraid to take the prescribed medicine?
O Triune and Eternal God--before Whom all the heavenly hosts bow down, singing the wondrous hymn: //Holy, Holy, Holy, Lord of Sabaoth//--receive our worship also, and save us.
To Thee be glory and praise forever. Amen.
! THE VENERABLE JOHN OF RILA
This great ascetic and saint of the Orthodox Church was born near Sofia, Bulgaria, in the town of Skrino, during the reign of King Boris. He was of poor but honorable parents. After the death of his parents, John was tonsured a monk and withdrew to a mountain wilderness, where he lived a life of strict asceticism in a cave. There he endured many assaults, both from demons and men, robbers and his own relatives. Eventually he moved to Mount Rila and settled in a hollow tree. He fed only on herbs and beans, which, according to God's providence, began to grow in the vicinity. For many years he did not see a man's face until (again, by God's providence) he was discovered by shepherds who were seeking their lost sheep. Thus the saint became known to the people, and they began to come to him, seeking help in sickness and in sufferings. Even the Bulgarian King Peter visited John and sought counsel from him. Many who were zealots for the spiritual life settled in the proximity of John. A church and monastery were soon built nearby. St. John reposed peacefully in the Lord on August 18, 946 A.D., at the age of seventy. After his death, he appeared to his disciples. At first his relics were transported to Sofia, then to Hungary, then to Trnovo, and finally to the Monastery of Rila, where they repose today. Through the centuries, the Monastery of Rila has been a beacon of light, a place of miracle-working power, and a spiritual comfort for the Christian people of Bulgaria, especially during the difficult time of bondage under the Turks.
! THE HOLY MARTYRS FLORUS AND LAURUS
Florus and Laurus were brothers in the flesh, and in spirit and in vocation. Both were zealous Christians, and were stonecutters by occupation. They lived in Illyria. A pagan prince hired them for the building of a temple to the idols. It happened that, during their work, a piece of stone flew and struck the eye of the pagan priest Merentius's son, who was observing the work of the builders with curiosity. Seeing his son blind and bloody, the pagan priest began to shout at Florus and Laurus and wanted to beat them. Then the holy brothers said to him that if he would believe in the God in whom they believed, his son would be healed. The pagan priest promised. Florus and Laurus prayed with tears to the one, living Lord God, and traced the sign of the Cross over the child's injured eye. The child was immediately healed, and his eye became whole, just as it had been. Then Merentius and his son were baptized. Shortly after that, both suffered for Christ, being tortured by fire. When they completed the temple, Florus and Laurus placed a cross on it, summoned all Christians and consecrated it in the name of the Lord Jesus, with an all-night vigil of hymn-singing. Hearing of this, the Illyrian deputy burned many of those Christians, and had Florus and Laurus themselves thrown into a well. He then filled it with dirt to suffocate them. Their relics were later revealed and translated to Constantinople. These two wonderful brothers suffered, and were martyred for Christ and glorified by Him, in the second century.
! THE PRIESTLY-MARTYR EMILIAN, BISHOP OF TREVI
Emilian was born in Armenia. Seeking martyrdom, he traveled to Italy to preach Christ during the reign of Diocletian. He was elected bishop of Trevi. As a result of the many miracles worked by God during the time of Emilian's torture, approximately one thousand pagans came to believe in Christ. He was slain by the sword, together with Hilarion, his spiritual father, and two brothers, Dionysius and Hermippus.
! HYMN OF PRAISE
!
! THE HOLY MARTYRS FLORUS AND LAURUS
!
To two sons, two saints, one mother gave birth;
Blessed is such a mother that pleases God.
Wondrous Florus and Laurus cut through stone,
And with the Cross, the souls of men corrected.
What a chisel is to stone, the Cross is to the soul;
As they were hewn by the Cross, they also perished for it.
The pagan priest saw a miracle never before seen:
An eye destroyed, and then healed!
An unheard-of miracle! For him, that was enough,
And with the Cross he was baptized and a martyr became.
Wondrous Florus and Laurus, an idolatrous temple, built,
But in their hearts glorified Christ God.
The brothers, the new pagan temple, finished,
But topped it with a cross, and lo! it was a Christian church!
With hymns of praise to Christ they filled it,
And with the beauty of candles and incense pure.
One man is truly similar to another,
But one is humble, the other haughty.
They are much alike, in body and attire,
But much unlike in mind and spirit.
In one is Christ and holiness pure,
In the other, devilish suffering and emptiness.
May our bodies, given us by God,
Be temples of the Living Spirit of God,
Through the powerful prayers of the God-pleasers,
The brothers Florus and Laurus, the holy martyrs.
! REFLECTION
It is not a rare occurrence, especially in our time, for parents to be responsible for the spiritual death of their children. Whenever a child has an aspiration for the spiritual life and asceticism, and the parent curtails this aspiration instead of encouraging it, such a parent becomes the murderer of his child. And such children, as a punishment to their parents, often turn to the opposite side and become perverted. A boy named Luke, the nephew of St. John of Rila, heard about his uncle and was drawn by the desire for the spiritual life, so he visited his uncle in the mountain. John received Luke with love, and began to instruct and to strengthen him in asceticism. Then one day Luke's father appeared at John's cave, and furiously began to scold the saint for keeping his son in that wilderness. John's words and counsels were of no avail. The father dragged the son home by force. On the way home, a serpent bit Luke and he died. The cruel father saw in this the punishment of God and repented, but it was all too late. He returned to John, mourning and condemning himself. But the saint said only to bury the child, and to return from wherever he came.
! CONTEMPLATION
To contemplate God's wondrous choosing of David as king (1 Samuel 16 [also known as 1 King 16]):
# How the Lord instructed Samuel to go to the home of Jesse and anoint one of his sons as king;
# How the Lord instructed Samuel to anoint David, a herder of sheep, the eighth and youngest son of Jesse;
# How Samuel anointed David, and how the Spirit of God descended upon David.
! HOMILY
! About peace between the wolf and the lamb
"The wolf also shall dwell with the lamb and the leopard shall lie down with the kid" (Isaiah 11:6).
Thus, the true prophet foretold the truth. And he further added: //The calf and the young lion and the fatling together; and a little child shall lead them. And the cow and the bear shall feed; … and the lion shall eat straw like the ox// (Isaiah 11:6-7). And the child will place his hand in the hole of a poisonous snake [asp], and the snake will not harm him. Brethren, when will this wonder occur? This has already occurred, when Christ the Wonder-worker appeared on earth. This is a reality of Paradise, which was restored among men with the coming of the Savior upon earth. The prophet speaks enigmatically, but, nevertheless, clearly; enigmatically--for the prophet does not speak about wild beasts but of men; and his prophecy was clearly fulfilled in Christ's Church. Men, who by their habits were as wolves, wildcats, lions, bears, oxen, lambs, kids and serpents--all stand before the Child of Bethlehem, united by faith, tamed by grace, illumined by hope, and softened by love.
The prophet further fortells why this would take place. //For the earth shall be full of the knowledge of the Lord, as the waters cover the sea// (Isaiah 11:9). When viewed physically, every man is earth. The man who believes in Christ, and who truly follows after Christ, becomes as full of the knowledge of the Lord as the sea is full of water. Such were many individuals. Such were even entire companies of ascetics in Egypt, on the Holy Mountain [Athos], on Cyprus, in Russia, in Armenia, and in other places. But this is not all. The knowledge of the Lord has spread today throughout the earth. Holy Scripture is distributed throughout all nations. There are few corners of the earth where the Gospel of Christ is not read, where the name of God is not known, and where the Bloodless Sacrifice of the Lord is not offered. Some deny Christ, others embrace Him; some abandon the true Faith, and others embrace it. Thus the world-wide struggle in the name of Christ continues. The overflowing waters pour out into empty valleys; the empty valleys become filled and rise to equal the high waters. The world is not fully illuminated as we Christians wish it to be, but the prophecy of Isaiah the Prophet has been gloriously fulfilled and accomplished most clearly. Oh, how wonderful is the vision of Isaiah, the son of Amos, the true prophet.
O miracle-working Lord, tame the beastly nature of those men and people who are not tamed by the power of Your love--that all may be fruitful from Your abundance, and all may be glorious from Your Glory, and all may be alive from Your Immortal life.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR ANDREW, STRATELATES [THE TRIBUNE, THE COMMANDER]
Andrew was an officer, a tribune, in the Roman army during the reign of Emperor Maximian. He was a Syrian by birth, and served in Syria. When the Persians menaced the Roman Empire with their military, Andrew was entrusted to command the imperial army in defense against the enemy. Therefore, Andrew was promoted to the rank of general--"Stratelates." Secretly a Christian, even though he was not baptized, Andrew trusted in the Living God and chose only the best of the many soldiers to enter into battle. Before the battle, he told his soldiers that if they would call upon the help of the one, true God--Christ the Lord--their enemies would scatter as dust before them. Truly, all the soldiers were filled with zeal for Andrew and his faith, and invoked Christ for assistance; then they made the assault. The Persian army was utterly destroyed. When the victorious Andrew returned to Antioch, envious men accused Andrew of being a Christian, and the imperial deputy summoned him to court. Andrew openly confessed his unwavering faith in Christ. After bitterly torturing him, the deputy threw Andrew into prison and wrote to the emperor in Rome. Knowing the respect in which the people and the army held Andrew, the emperor ordered the deputy to free Andrew, and to seek another opportunity and reason to kill him. Through God's revelation, Andrew learned of the emperor's command, and, taking with him his faithful soldiers, 2,593 in number, he departed to Tarsus in Cilicia, where all were baptized by Bishop Peter. Persecuted even there by the imperial authorities, Andrew and his detachment withdrew further into the Armenian Mount Taurus. The Roman army caught up with them there while they were at prayer in a ravine, and all of them were beheaded. None of them tried to defend themselves, but all were desirous of a martyr's death for Christ. On this spot, where the stream of the martyr's blood flowed, a spring of healing water burst forth, which cured many people of every disease. Bishop Peter secretly brought his people and honorably buried the bodies of the martyrs where they had been slain. Dying honorably, they were all crowned with the wreath of glory and took up their habitation in the Kingdom of Christ our Lord.
! THE VENERABLE THEOPHANES
Theophanes was born in Ioannia. As a young man, he left all and went to Mt. Athos, where he was tonsured a monk in the community of Dochiariou. He was an example to all the monks in fasting, prayer, all-night vigils, and depriving himself of all that was unnecessary. Because of this, he was eventually elected abbot. Later, because of a disagreement with the monks, he and his nephew left Mt. Athos for Berea [Beroea] in Macedonia, where he established a monastery in honor of the All-holy Theotokos. When this monastery blossomed with spiritual life, Theophanes entrusted its governance to his nephew. He then went to Naousa, where he established another monastery in honor of the Holy Archangels. Theophanes died peacefully in the fifteenth century. His miracle-working relics repose in Naousa, and even now manifest the great power of God.
! THE HOLY MARTYRS TIMOTHY, AGAPIUS AND THECLA
All three were martyred for Christ during the reign of the wicked Emperor Diocletian. Timothy was burned alive, and Agapius and Thecla were thrown to wild beasts.
! HYMN OF PRAISE
!
! THE HOLY MARTYR ANDREW, STRATELATES [THE TRIBUNE]
!
Nature sang on Mount Taurus,
But resounded without an audible human response,
Until one day the mountains shook,
And a new sound reverberated thorughout it.
Then the mountain, its age-old echo, stilled,
To hear something new, which it had not in ages heard.
There, Andrew's brave detachment met their end;
There, the wolves slew the innocent lambs.
Andrew, from the Persians, the Roman Empire saved,
And now, against Andrew, the Roman army thundered.
With his two-thousand companions, Andrew on the earth knelt;
To his friends, good counsel he gave:
"Now is the favorable hour, now is the day of salvation--
Our separation from earthly life.
In humility, before God, let us kneel,
And for so much good, let us warmly thank Him,
And especially, brethren, for a martyr's death,
Without anger or railing against the executioner's hand."
So Andrew spoke, and to their knees they fell,
And the two thousand men began to pray.
The cruel persecutors, their swords brandished,
On the mountaintop, choirs of angels shone,
And the gates of Paradise, in Heaven opened,
For Holy Andrew, the glorious Stratelates,
And his army, who defeated the enemy
And for Christ, shed their honorable blood.
! REFLECTION
When an unexpected misfortune happens to us who are innocent, we should not immediately grieve, but rather we should try to see God's providence in the situation. Through that misfortune, God is preparing something new and beneficial for us. One day, unexpected news came to Blessed Theophanes, the Abbot of Dochiariou, that the Turks had seized his sister's son, had forced him to embrace Islam and had taken him to Constantinople. Theophanes went immediately to Constantinople, and with the help of God he succeeded in finding his nephew. He conveyed him out of Constantinople in great secrecy and brought him to his monastery on Mt. Athos. There he received his nephew into the Christian Faith again, then tonsured him a monk. However, the brethren began to complain against their abbot and his nephew for fear of the Turks, for they were afraid that the Turks would find out and destroy the monastery. Not knowing what to do, St. Theophanes took his nephew away--not only from Dochiariou, but also from the Holy Mountain itself, and came to Berea. The later activities of Theophanes in Berea (and later, in Naousa) proved how much that misfortune was beneficial to the Church. That which Theophanes could never achieve on the Holy Mountain, he achieved in these other places to which he had fled because of that misfortune: he founded two new monasteries, where, in time, many monks were saved, and where countless men found comfort for themselves. Also, his holy relics became a source of healing for the strengthening of faith among many unbelievers and those of little faith. Thus, God wisely directs the destiny of men through unexpected misfortunes which, in the moment, may only seem to be the end of everything.
! CONTEMPLATION
To contemplate the wondrous providence of God in the life of David (1 Samuel 16 [also known as 1 Kings 16]):
# How the Spirit of God withdrew from Saul because of Saul's sin;
# How an evil spirit assaulted Saul, so that he sought a harpist in order to comfort him;
# How the servants of the king found David, and brought him to the king, to calm him with the harp.
! HOMILY
! About the power of the Lord and the weakness of idols
"Behold, the Lord rideth upon a light cloud and shall come into Egypt: And the idols of Egypt shall be moved at His presence" (Isaiah 19:1).
Fleeing from King Herod, the "Pharaoh" of Jerusalem, the Lord came to Egypt. The true Israel is not reckoned according to the place, but according to the spirit and deeds. At the time of the birth of the Lord, greater evil [Herod] reigned in Jerusalem than had ever reigned in the Egypt of the Pharaohs--as it often happens when believers fall away from the Faith: they become worse than the unbelievers who never knew the true Faith. Such is the case in our days, with the rulers in Russia who apostatized from Christ. [This was written in 1928 --Ed.] At that time, Egypt was a kinder and more hospitable place for the Savior of the world than was Jerusalem. Compare the words of the prophet with the words of the angel in Righteous Joseph's dream: //Arise, and take the young Child and His mother and flee into Egypt//(Matthew 2:13), and immediately you will be convinced that the words of Isaiah do not refer to anyone other than Christ the Lord. You will be convinced of this even more when you hear the words of the other prophet who says: //Out of Egypt I called My son// (Hosea 11: 1).
What does "a light cloud," on which He [the Lord] will come to Egypt, signify? This signifies the body of the Lord, in which He clothed His divinity, for the body of man is as a dense cloud in which the soul resides. Therefore, this is the prophetic vision of the Incarnate Lord. Some interpreters also think that "a light cloud" signifies the Most-pure Mother of God who, by long fasting and prayer and other ascesis, made her body as light as a cloud. The body of the Theotokos was "light as a cloud" especially becuase of her overcoming ot the passions that weigh down the human body.
O All-merciful Lord, Who desires salvation for all mankind, and does not look to see who is a Jew and who is an Egyptian: save and have mercy on us, for we continuously hope in Your Name.
To Thee be glory and praise forever. Amen.
! THE FINDING AND THE TRANSLATION OF THE RELICS OF ST. STEPHEN, THE ARCHDEACON AND PROTO-MARTYR
When the wicked Jews slew St. Stephen by stoning, they left his body for the dogs to consume. However, God's providence intended otherwise. The martyr's body lay in an open place at the foothill of the city for one night and two days. The second night Gamaliel, Paul's teacher and secretly a disciple of Christ, came and removed the body, taking it to Caphargamala, and buried it there in a cave on his own land. Gamaliel later buried his friend Nicodemus, who died weeping over the grave of Stephen, in the same cave. Gamaliel also buried his godson Abibus there; and, according to his own will, he himself was buried there also. Many centuries passed, until no one living knew where the body of St. Stephen was buried. Then, in the year 415 A.D., during the reign of Patriarch John of Jerusalem, Gamaliel appeared three times in dreams to Lucian, the priest at Caphargamala. Gamaliel related everything concerning the burial of himself, Stephen, and the others, showing him the exact spot of their forgotten grave. Affected by this dream, Lucian informed the patriarch, and, with his blessing, went with a group of men and exhumed the four graves. Gamaliel had already told him in the dream whose grave was which. A strong, sweet-smelling fragrance, emanating from the relics of the saints, permeated the entire cave. The relics of St. Stephen were then solemnly translated to Zion, and were honorably buried there. The relics of the remaining three were placed in a church, located on the hill above the cave. Many healings of the sick were occasioned by the relics of St. Stephen. Later on, St. Stephen's relics were translated to Constantinople. Thus the Lord crowned with much glory him who shed his blood for His name.
! THE PRIESTLY-MARTYR STEPHEN, POPE OF ROME, AND OTHERS WITH HIM
Stephen was Pope of Rome between the years 253-257 A.D., during the reign of Emperor Valerian. He struggled against the heretic Novatian. He cured Lucilla, the daughter of Nemesius the tribune, and baptized them both. Stephen, with twelve of his priests, was beheaded during the celebration of the Liturgy.
! THE HOLY AND BLESSED BASIL, FOOL-FOR-CHRIST OF MOSCOW
Basil's father was named Jacob, and his mother Anna. At age sixteen, he dedicated himself to a life of asceticism as a fool-for-Christ, and persevered for seventy-two years in this difficult ascesis. He lived to his eighty-eighth year. He traveled bareheaded, barefoot, and in rags. He had no permanent dwelling place. He admonished sinners, reprimanded noblemen, prophesied the truth, and had visions of distant events. Having suffered greatly from hunger, frost and the insults of men, Blessed Basil presented his holy soul to God. The metropolitan and Tsar Ivan attended his funeral. He was entombed in Moscow, in the Church of the Most-holy Birth-giver of God, which was later re-consecrated in his name.
! HYMN OF PRAISE
! GAMALIEL
!
In the middle of the dark night, Gamaliel appeared
To Lucian, and a wondrous mystery revealed.
Gamaliel appeared as an elder dignified:
A mysterious smile on his radiant face,
With gray hair and a long, gray beard,
And a garment of white, with a red cross adorned.
Gamaliel set four casks
In a cave, beside four graves.
Three were of gold, the fourth of silver;
Each one, with beautiful flowers, was filled.
The first was full of red flowers,
The remaining with white ones from the spring of Paradise.
"This golden cask," Gamaliel said,
"With flowers red, from which a fragrance flows,
Before the grave of Saint Stephen, is set,
Who, for the Living Christ, shed his blood.
The other two gold casks, with flowers so white,
By me, Gamaliel, and holy Nicodemus are shared:
Here is his body, and there is mine.
And the fourth, of purest silver,
With flowers white, is by where Abibus rests--
My only son, whom alive, I see.
His cask is white and his flowers are white
For his pure soul and pure body:
Young and baptized he died, like an early bloom,
My son, I buried, beside Saint Stephen
That the saint, my son Abibus, might help,
As he helps every Christian."
! REFLECTION
We must be patient and merciful toward the sinner, if we wish that our long-suffering God be merciful to us. The great compassion of Blessed Alexander, Patriarch of Antioch, was proverbial. One of his scribes stole several gold pieces and fled to the Thebaid. Robbers captured him in the wilderness and took him with them. Learning of this, Alexander sent the robbers eighty-five gold pieces as a ransom. That is why it was said: "The mercy of Alexander cannot be overcome by any sin." St. John the Merciful writes: "The long-suffering of God is unchangeable, as is His kind mercy… How many criminals who go out to kill and rob does He conceal, so that they may not be captured and tortured? Pirates sail the sea, yet God does not order the sea to drown them. How many falsely swear by Holy Communion, and He is patient, not immediately repaying them evil for evil? Highwaymen rob citizens on the road, yet He does not give them over to the beasts to tear them to pieces… Libertines go off with prostitutes, and He is patient. Why all of this? Because He waits for repentance and conversion. Truly, God does not want the destruction of a sinner…That is why, brethren, we should be ashamed before the most patient Lord God."
! CONTEMPLATION
To contemplate God's miraculous assistance to the repentant Israelites (Judges 11):
# How the penitents cried out to God: //Do Thou unto us whatsoever seemeth good unto Thee; deliver us only, we pray Thee, this day// (Judges 10);
# How the Spirit of the Lord descended upon Jephthah and he destroyed the Ammonites and liberated Israel;
# How, even today, the repentance of men brings peace with God, and brings down the help of God to those who are fallen.
! HOMILY
! About God's grievance against the unfaithful people
"Hear, O heavens and listen, O earth, for the Lord speaks: sons have I raised and reared but they have disowned me!" (Isaiah 1:2).
The wrath of God! God turns from the chosen people in wrath and grieves to His other creations; He grieves to the heavens and the earth. "Hearken, my holy and rational angels, and hearken, all you irrational earthly creatures! I wanted to make this people holy and rational--yet they have lowered themselves beneath irrational creatures with their impurity and ungratefulness. I have called them my sons and exalted them, and they turned their backs on me and went after foul idols." The wrath of God, the wrath of love, that even a thousand times does good to a leper, and is a thousand times spat upon by the leper. If all the elements could speak, they, with all living things, would witness to all the great miracles that the One Living God performed for the people of Israel in Egypt and in the wilderness, simply so they would turn away from idolatry and believe in the One Living and Almighty God. This would be attested to by water and blood, by stone and wood, by darkness and fire, by frogs and flies, by birds and serpents, by sickness and death, by clouds and smoke, by winds and manna, and copper and iron; together with Pharaoh and the countless numbers of nations miraculously defeated by the hand of God and removed from the path of the people of Israel. Even so, Israel turned from God and went after idols.
This is the dreadful vision of Isaiah, the son of Amos, the prophet of God. O my brethren, just imagine what kind of vision the Prophet Isaiah would have concerning us, if he would appear today among our people!
O Lord, the only living, the only omnipotent, affix our mind and our heart to You, the true God--and safeguard us from temptations to apostatize from You.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET SAMUEL
Samuel was the fifteenth and last judge of Israel. He lived eleven hundred years before Christ. Samuel was born of the tribe of Levi, of the parents Elkanah and Hannah, in a place called Ramatha (or Arimathea), where noble Joseph would later be born [Joseph of Arimathea]. Through weeping, the barren Hannah besought from God the child Samuel and dedicated him to God when he was three years of age. Living in Shiloh, near the Ark of the Covenant, Samuel had a true revelation from God in his twelfth year, concerning the punishments that were pending for the house of the high priest Eli because of the immorality of his sons Hophni and Phineas. That revelation soon materialized: the Philistines defeated the Israelites, slew both of Eli's sons, and captured the Ark of the Covenant. When the messenger informed Eli of this tragedy, Eli fell to the ground dead, in the ninety-eighth year of his life. The same thing occurred to his daughter-in-law, the wife of Phineas. For twenty years, the Israelites were the slaves of the Philistines. After that, God sent Samuel to the people to preach repentance--if they desired salvation from their enemies. The people repented, rejected the pagan idols that they served, and recognized Samuel as a prophet, priest and judge. Samuel then set out with an army against the Philistines. With God's help he confused and defeated them, and liberated Israel. After that, Samuel peacefully judged his people until old age. Considering his old age, the people asked him to install a king for them in his place. In vain, Samuel tried to dissuade them from this, saying to them that God was their only true King, but the people stubbornly insisted. Even though this was not pleasing to God, He commanded Samuel to annoint Saul, the son of Kish from the tribe of Benjamin, as their king. Saul reigned for a short time only, before God rejected Saul because of his impudence and disobedience. God then commanded Samuel to annoint Jesse's son, David, as king in Saul's place. Before his death, Samuel gathered the entire people and bid them farewell. When Samuel died, all of Israel mourned for him, and they buried him honorably in his house at Ramatha.
! THE PRIESTLY-MARTYR PHILIP, BISHOP OF HERACLION, WITH SEVERUS THE PRESBYTER, AND HERMES THE DEACON
It seem certain that they were Slavs. They served God in Thrace, and there they were first given over to tortures for Christ. When the pagans rushed to set fire to a Christian church, the brave Philip said to their leaders: "Do you think that God is enclosed within these walls? He lives in our hearts." The church was destroyed, all the books burned, and these clergy were taken to Jedrene where, after imprisonment and tortures, they were thrown half-burnt into the Maritsa River. Thirty-eight other Christians also died with them as martyrs. It is thought that they suffered and died during the reign of Diocletian.
! HYMN OF PRAISE
!
! THE HOLY PROPHET SAMUEL
!
Samuel the Righteous, servant of the Living God,
Of his people, beloved judge:
He revered God--God above all!
The will of God, for him, was a commandment.
By the will of God, the will of the people he corrected,
And, for the people's sins, before Him repented.
Priest and prophet and righteous judge:
In three ways, Samuel glorified God.
With his every word, with his every deed,
In labor and prayer and sacrifice and food,
With his entire being, God he served.
To the rulers of the world, an example he offered:
"For his people, no one can do good,
Who, from the law of God, departs,
Who, to himself and the people listens, but not to God.
To the depth of the bottomless abyss, such a man will lead them,
Just as Saul fell, and others with him--
All fellow partakers of the sin of the people.
A slave to God alone should a ruler be
To benefit his people eternally."
This Samuel taught in deeds and in words,
And throughout the ages, this truth resounds.
! REFLECTION
Repent before death closes the door of your life and opens the door of judgement. Repent before death, and, because you do not know the hour of death, repent today, even now, and cease to repeat your sin. Thus, St. Ephraim the Syrian prays:
Before the wheel of time stops in my life, have mercy on me;
Before the wind of death blows--and diseases, the heralds of death, appear in my body--have mercy on me;
Before the majestic sun in the heights becomes darkened for me, have mercy on me; and may Your light shine for me from on high, and disperse the dreadful darkness of my mind;
Before the earth returns to earth and decays, and before the destruction of all the features of its beauty, have mercy;
Before my sins deceive me at the Judgment, and shame me before the Judge, have mercy, O Lord, full of gentleness;
Before the hosts come forth, preceding the Son of the King--to assemble our miserable race before the throne of the Judge--have mercy;
Before the voice of the trumpet sounds before Your coming--spare Your servants and have mercy, O our Lord Jesus;
Before You lock Your door before me, O Son of God, and before I become food for the unquenchable fires of Gehenna, have mercy on me.
! CONTEMPLATION
To contemplate the wondrous victory of David over Goliath (1 Samuel 17 [also known as 1 Kings 17]):
# How Goliath, fearsome in body, armor and weapons, defied the entire army of Israel;
# How David, with hope in God, came with a slingshot and stones, and slew Goliath;
# How David was victorious--for he believed that //the battle is the Lord's// (1 Samuel 17:47 [1 Kings 17:47]), a battle of believers against unbelievers.
! HOMILY
! About Egypt's conversion to the Lord
"And the Lord shall be known to Egypt, and the Egyptians shall know the Lord in that day and shall do sacrifice and oblation; yes, they shall vow a vow unto the Lord and perform it" (Isaiah 19:21).
Oh, how changeable is the heart of man! But of all of his changes, one is the most shameful--and that is when a believer becomes an unbeliever. Then again, of all his changes, one is the most glorious--and that is when the unbeliever converts and becomes a believer. For example, the former occurred with the Israelites who killed Christ; and the latter occurred with the Egyptians who believed in Christ. Egypt was once the greatest persecutor of those who believed in the One Living God, for the Egyptians of that time had many lifeless gods, idols and strange things that they worshipped; and fables and soothsayers by which they were deceived. But behold what the prophet fortells! What a wonderful vision! The Egyptians would recognize the One Living Lord at the time of the Lord's Incarnation among mankind! Idols would be destroyed, the temples of demons and animals would be overthrown, and the altar of oblation to the One Living God would be established and raised up. The Bloodless Sacrifice would be offered in place of the bloody sacrifice, and the rational in place of the irrational. Hundreds and thousands of monks would take upon themselves the vows of poverty, obedience, fasting and prayer out of love for the Lord. The greatest ascetics would appear in this once-darkened Egypt, as would the bravest martyrs for Christ the Lord, and the most enlightened minds, the most clairvoyant miracle-workers. Oh, what a wonderful vision! And how wonderful is the realization of that vision! St. John Chrysostom writes: "The sun, with its multitude of stars, is not as brilliant as the wilderness of Egypt with all of its monks." In truth, all that was foreseen and foretold by Isaiah, the son of Amos, the discerning and true prophet, has been realized.
O compassionate Lord, Who showed mercy on Egypt--the one-time persecutor of Your faithful--and illumined it with the light of truth; illumine us also, and strengthen us by Your Holy Spirit, and by the example of the great Christians of Egypt.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE THADDAEUS
This Thaddaeus was one of the Seventy Apostles, but was not the Thaddaeus who was one of the Twelve Apostles. St. Thaddaeus first encountered John the Baptist and received baptism from him; then he found the Lord Jesus and followed Him. The Lord numbered him among the Seventy Lesser Apostles, whom He sent out two by two before His face: //After these things, the Lord appointed other seventy also and sent them two and two before His face into every city and place where He Himself would come// (Luke 10:1). After His glorious Resurrection and His Ascension, the Lord sent Thaddaeus to Edessa, Thaddaeus's birthplace, according to the promise He gave to Prince Abgar when He returned Abgar's towel with the image of His face on it (the Icon of the Lord "Not Made With Hands," August 16). By kissing the towel, Abgar was healed of leprosy, but not completely. [A little leprosy still remained on his face.] When St. Thaddaeus appeared to Abgar, he received him with great joy. The apostle of Christ instructed him in the true Faith, and after that baptized him. When Abgar arose out of the baptismal water, he was completely healed. Glorifying God, Prince Abgar also determined that his people should know the true God and glorify Him. The prince assembled all the citizens of Edessa before the holy Apostle Thaddaeus to hear his teaching about Christ. Hearing the words of the apostle and seeing their prince miraculously healed, the people rejected their former idolatry and unclean living, embraced the Christian Faith, and were baptized. Thus the city of Edessa was illumined by the Christian Faith. Prince Abgar brought much gold and offered it to the apostle, but Thaddaeus said to him: " Since we left our own gold, how can we receive the gold of others?" St. Thaddaeus preached the Gospel throughout Syria and Phoenicia. He reposed in the Lord in the Phoenician city of Beirut.
! THE HOLY FEMALE MARTYR BASSA AND HER CHILDREN: THEOGNIUS, AGAPIUS AND PISTUS
Bassa was the wife of an idolatrous pagan priest, but was secretly a Christian. She educated her sons in Christianity. Her husband hated her because of her faith, and gave her and her sons over to the judge for torture. After harsh tortures, her sons were beheaded (it is believed that this occurred at Edessa, in Macedonia). Bassa was joyful when she saw her sons honorably completing their heroic martyrdoms for Christ; and she, with even greater eagerness, went from torture to torture. When they threw Bassa into the sea, angels appeared to her and brought her to an island in the Sea of Marmara, where she was later beheaded during the rule of Maximian. Thus St. Bassa was made worthy of the Kingdom of Christ in a twofold manner--as a martyr, and as a mother of martyrs.
! VENERABLE ABRAHAM OF SMOLENSK
Abraham was born in the Russian town of Smolensk, in answer to his parent's prayers. He entered the monastic life at an early age and gave himself over to austere asceticism, emulating the ancient fathers of the desert. Later he established the Monastery of the Holy Cross near Smolensk. He endured many temptations both from demons and men with great patience and thanksgiving to God. During a great drought, Abraham brought forth rain by his prayers. Living fifty years as a monk, Abraham peacefully died in the Lord, in about 1220 A.D.
! THE HOLY FOREFATHERS ABRAHAM, ISAAC AND JACOB
Abraham, Isaac and Jacob are also commemorated on the Sunday of the Forefathers before the Nativity, as righteous ones and God-pleasers.
! HYMN OF PRAISE
!
! VENERABLE ABRAHAM OF SMOLENSK
!
A candle burns and clouds of incense rise:
Day and night, Abraham prays.
His neighbors, he loves as himself.
St. Abraham's body is withered
From fasting and prostrations;
His heart trembles from the name of God--
On the pages of time, eternity writes.
----------
Sinners do not fear a sinner,
But, a righteous one, they bitterly fear.
Sinful men mock Abraham;
The envious censure him.
Mocked and censured, Abraham endures,
And for his foes, the mercy of God he implores.
----------
Abraham guards his heart--
Kneeling in secret, shedding secret tears.
God does not judge as men judge;
The judgment of man desires to cause harm;
But God desires salvation for all--
The aristocrat and the helpless slave.
On God, St. Abraham sets all his hope,
And God glorifies him eternally.
! REFLECTION
Magnanimous forgiveness of slanderers, and prayer for them, are characteristics of Christian saints. These do not ascribe the slanders against themselves to men, but rather to demons, the main instigators of every slander, as well as every sin in general. St. Abraham of Smolensk was slandered by the envious to the prince and the bishop, as a deceiver, magician and hypocrite. The slanderers sought nothing less than to have him burned. The prince and the bishop believed the slanderers, and Abraham was banished from Smolensk and forbidden to exercise his priestly functions. During the entire time of his investigation and trial, Abraham repeated the prayer of St. Stephen, the first martyr: //Lord, lay not this sin to their charge// (Acts of the Apostles 7:60). Later it was proven that all of the accusers against Abraham had lied. The infuriated prince wanted to severely punish the slanderers, and the bishop wanted to excommunicate them from the Church, but the holy Abraham fell on his knees before the bishop and tearfully begged him to forgive them. Abraham did not want to return to his monastery, or to exercise his newly restored priestly functions, until his slanderers were shown mercy and released.
! CONTEMPLATION
To contemplate David and Saul--one who had the Spirit of God, and one who had lost the Spirit of God (1 Samuel 18 [also known as 1 Kings 18]):
# How Saul feared David because of his virtues, yet how David was obedient to Saul in everything;
# How Saul hypocritically rewarded David, and sent him among the Philistines so that he would be killed;
# How an apostate from God always fears a godly man.
! HOMILY
! About the wondrous stone in Zion
"Behold, I lay in Zion for a foundation a stone, a tried stone, a precious corner-stone, a sure foundation: he that believes in it shall not be ashamed" (Isaiah 28:16).
Brethren, this wondrous Stone is our Lord Jesus Christ Himself. For if the prophet thought of it as an ordinary stone, he would not have exhorted faith in it, for thus he would have prophesied idolatry. The Prophet Daniel also speaks of a stone that was cut from a mountain, and smashed the great idol, and grew into a great mountain that filled the whole earth: //Thou sawest till that a stone was cut out without hands, which smote the image upon his feet that were made of iron and clay and broke them into pieces…and the stone that smote the image became a great mountain and filled the whole earth//(Daniel 2:34-35). The prophecy about the stone in Daniel is for pagans, and the prophecy about the stone in Isaiah is for Jews. The Lord Jesus Christ is that Stone which is laid: first, as the foundation of God's entire creation--for He is the Word of God and the Wisdom of God; second, as the foundation of the preparation--the Old Testament; and third, as the foundation of the fulfillment--the New Testament. The cornerstone is the firmest and strongest stone in the building; it connects and joins the other building-stones, and binds the walls in their various directions [angles], in oneness and in wholeness. If we observe the Lord Christ within us, He is the Cornerstone that binds and ties our various spiritual capabilities in unity and wholeness, so that all work toward one goal, toward God and the Kingdom of God. If we observe Christ the Lord throughout the history of mankind, He is the Cornerstone that ties and binds Judaism and paganism into one House of God--the Church of God. //For other foundation can no man lay than that is laid, which is Christ Jesus// (1 Corinthians 3:11), says the Apostle of the New Testament, in agreement with the prophet of the Old Testament. Whoever has believed in that Stone of Salvation has not been ashamed. Neither will anyone ever be ashamed who will believe in it. For this Stone is a //sure foundation// and truly a //chosen stone, a precious and honorable stone//.
O Lord Jesus, our Stone of Salvation, strengthen in us that holy and salvific faith in You, our only Savior.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS AGATHONICUS, ZOTICUS AND OTHERS WITH THEM
St. Agathonicus was a citizen of Nicomedia and a Christian by faith. With great zeal he converted the Hellenes from idolatry and instructed them in the true Faith. At Emperor Maximian's orders, the regional governor cruelly persecuted the Christians. The deputy captured St. Zoticus in a place called Carpe. He crucified Zoticus's disciples and brought Zoticus himself to Nicomedia--where he also captured and bound St. Agathonicus, Princeps, Theoprepius (Bogoljepa), Acindynus, Severianus, Zeno and many others. Securely bound, they were all taken to Byzantium. As they traveled, Saints Zoticus, Theoprepius and Acindynus died of their many wounds and exhaustion. Severianus was slain near Chalcedon. Agathonicus and the others were taken to Silybria, in Thrace. There, after being torture in the emperor's presence, they were beheaded, and entered into eternal life and the joy of their Lord.
! THE HOLY FEMALE MARTYR EULALIA
The virgn Eulalia, born of Christian parents in the town of Barcelona, lived during a time of terrible persecution against Christains in Spain. Completely dedicated to Christ as her Bridegroom, completely immersed in Holy Scripture, Eulalia ceaselessly disciplined herself in voluntary ascesis of the body and spirit. When the torturer Dacian--a merciless killer of Christians throughout Spain--came to Barcelona, Eulalia secretly left from her parents at night, came before the torturer, and, in the presence of many people, rebuked him for slaughtering innocent people. She also ridiculed the lifeless idols and openly confessed her faith in Christ the Living Lord. The enraged Dacian ordered that Eulalia be disrobed and beaten with rods. The holy virgin showed that she did not feel pain from being tortured for her Christ. The torturer then bound her to a wooden cross and ordered that her body be burned with torches. Then the torturer asked her: "Where is your Christ, now, to save you?" Eulalia answered: "He is here with me, but you are unable to see Him because of your impurity." Under savage torture, Eulalia gave her soul to God. When she reposed, the people saw a white dove ascend from her mouth. Snow instantly fell from the sky and covered the naked body of the martyr like a white garment. On the third day, St. Felix came and sadly wept before Eulalia's still-hanging body, and a smile formed on her lifeless lips. Her parents and other Christians honorably buried the body of this holy virgin. Eulalia suffered and died for her Lord, and entered into eternal joy, at the beginning of the fourth century.
! THE HOLY FEMALE MARTYR ANTHUSA AND OTHERS WITH HER
Anthusa was the daughter of wealthy but pagan parents from Seleucia in Syria. Learning of Christ, Anthusa believed in Him with all her heart and secretly went to Bishop Athanasius, who baptized her. Angels of God appeared to her at her baptism. Soon afterward, Anthusa set out for the wilderness to live a life of asceticism, for she was afraid to return to her parents. She labored ascetically in the wilderness for twenty-three years. She gave up her soul while in prayer, kneeling on a stone under which, according to her last testament, she wished to be buried. Bishop Athanasius and two of Anthusa's servants, Charismus and Neophytus, were slain some time later because of their faith in Christ. These events occurred in the time of Emperor Valerian, in about 257 A.D. They all reposed honorably and were crowned with heavenloy wreaths of victory.
! HYMN OF PRAISE
!
! THE HOLY FEMALE MARTYR EULALIA
!
God's white dove,
And martyr of Christ--
Eulalia desired torture,
To purify her spirit by torment.
What is the body? Weak potter's clay;
And when the soul bursts out of it,
Dust returns to its dust,
While the soul flies to the angelic world.
Eulalia bore Christ
And without sighing, endured tortures,
And in the midst of torment she prayed to God
That the torture she might withstand.
And the dove did withstand,
And the martyr did conquer.
Her body, wounded,
With white snow was covered;
Her soul flew off like a dove,
Bound for her Creator.
On her lifeless face,
With white snow, covered,
Was the smile of a victor,
And the smile of an avenger!
With a smile she was illumined,
And, a new life, proclaimed.
By the prayers of Eulalia,
May God have mercy on us!
! REFLECTION
When a man once truly repents, he needs to avoid thinking about the sins he committed, so that he will not sin again. St. Anthony counsels: "Be careful that your mind be not defiled with the remembrance of former sins--that the remembrance of those sins not be renewed in you." He also says: "Do not establish your previously committed sins in your soul by thinking about them, so that they not be repeated in you. Be assured that they were forgiven you from the time that you gave yourself to God and to repentance. In that, do not doubt." It is said of St. Ammon that he attained such perfection that, in his abudance of godliness, he no longher recognized that evil even existed. When they asked him what is that "narrow and difficult path" (Matthew 7:14), he replied: "It is the restraining of one's thoughts, and severing of one's desires, in order to fulfill the will of God." Whoever restrains sinful thoughts does not think of his own sin or the sins of others, or of anything corruptible or earthly. The mind of such a man is continually in heaven, where there is no evil. Thus, sin gradually ceases to be in him--not even in his thoughts.
! CONTEMPLATION
To contemplate the wondrous help David received from God (1 Samuel 19 [also known as 1 Kings 19]):
# How David played the harp before Saul;
# How an evil spirit possessed Saul, and Saul hurled a spear at David, intending to kill him;
# How Saul, even though he was very close to his target, did not hit David.
! HOMILY
! About the prophecy of the miracles of Christ
"Then the eyes of the blind shall be opened and the ears of the deaf shall be unstopped. Then shall the lame man leap as a hart and the tongue of the dumb sing" (Isaiah 35: 5-6).
Come, brethren, let us be amazed at the power of our Living God, Who opened the eyes of mortal men to see what will come to pass, even in the far future. And even more, to see these future events in the minutest details, as though Isaiah himself were an apostle of Christ, and walked with the Lord, witnessing miracle after miracle: how Christ gave sight to the blind, hearing to the deaf, healing to the lame, and voice and speech to the deaf and dumb. When John the Baptist, in prison, sent his disciples to ask Christ: //Are You He who is to come or do we look for another?//(Matthew 11:3), the Lord Christ answered them in the words of His prophet Isaiah: //Go and show John again those things which you do hear and see: The blind receive their sight and the lame walk, the lepers are cleansed and the deaf hear, the dead are raised up// (Matthew 11: 4-5).
See how wonderfully the Lord planned our salvation! That which was prophesied about Him through His Prophet Isaiah, is what He fulfilled. Once the Prophet Isaiah spoke words inspired by the Holy Spirit, and later Christ spoke the words of His prophet. The prophet quoted Him, and now He [Jesus Christ] quotes the prophet. This was to show that, whether Christ speaks His own words or He speaks the words of the prophet, He always speaks only His own words. It was also to show that even then it was He who spoke (and not the prophet), and that it is now He who speaks (and not anyone else). It was also to justify His prophet as His faithful servant, so that no one would be able to say that the prophet spoke falsely. Thus the prophets served to the glory of Christ the Lord; and Christ the Lord glorified His prophets, His true servants.
O Lord Jesus Christ, glorified by Your servants, and the Glorifier of Your servants, help us also, so that by word, deed and thought, we may be able to serve the majestic glory of Your Name.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR LUPUS
The holy man Lupus was a servant of Great-martyr Demetrius, the military commander of Thessalonica. When Emperor Maximian beheaded St. Demetrius, Lupus dipped the hem of his garment, together with his ring, in the blood of the martyr. Lupus worked many miracles in Thessalonica with this ring and this garment, healing people of every pain and infirmity. Emperor Maximian (then still residing in Thessalonica) discovered this and ordered that Lupus be tortured and killed. However, the soldiers who took up weapons against Lupus turned against one another and severely wounded each other. As he was an unbaptized Christian, Lupus prayed that God would somehow bring about his baptism before his death. At that moment, rain fell upon this holy martyr, and thus he received baptism from on high. After great sufferings, Lupus was beheaded, and took up his habitation in the Kingdom of Heaven.
! THE PRIESTLY-MARTYR POTHINUS, BISHOP OF LYONS
Pothinus was sent by St. Polycarp from Asia Minor to preach in Gaul [France]. He became the first Bishop of Lyons and converted many pagans to Christianity. During the persecution of Christians in 177 A.D., Pothinus was brought to trial--more accurately, he was carried, [in the arms of others] for he was ninety years old. The proconsul asked him: "Who is the Christian God?" The aged Pothinus replied: "You will find out if you become worthy." The pagans attacked him with canes and stones, and beat him without mercy. Thrown into prison, St. Pothinus died from the beatings two days later, and took up his habitation in the Kingdom of Heaven.
! THE PRIESTLY-MARTYR IRENAEUS, BISHOP OF LYONS
In his youth, Ireneaus was a disciple of Polycarp, who was a disciple of the apostles, who sent him to preach in Gaul. Following the martyrdom of St. Pothinus, Ireneaus was installed as bishop. In his countless writings, Ireneaus defined the Orthodox Faith and also defended it from heretics. Ireneaus was martyred for Christ in the time of Emperor Severus in the year 202 A.D., as were also nineteen thousand of his fellow Christians.
! SAINT VICTOR
Saint Victor suffered and died in Marseilles [France] in the third century. After prolonged and bitter tortures, he was cast into prison, where he converted the guards to the Christian Faith. He died by crucifixion.
! SAINT ALBAN
Alban was an English nobleman. In a time of persecution, he concealed a Christian priest in his home and was learned the Christian Faith from him. Alban gave his clothing to the priest, then dressed himself as the priest and gave himself up to the torturers. Sentenced to death, he converted his executioner to the Christian Faith.
! HYMN OF PRAISE
!
! SAINT POLYCARP--SAINT IRENAEUS--SAINT POTHINUS
!
Most beautiful is a vine with fruitful branches,
With fragrant fruit, noble fruit;
In his offspring, a parent is wonderful;
Of physical wedlock, sons are the glory.
But more beautiful than the vine and a fruitful marriage
Are the spiritual children of the Holy Spirit.
Polycarp, most-glorious, had two sons--
Saint Ireneaus and Saint Pothinus.
His spiritual, not fleshly, sons were they,
Crowned with eternal glory that never fades.
By the Spirit of God, Polycarp bore them spiritually;
They were dearer to him than if he had sired them physically.
He raised them both up, with wisdom nourished them,
And, to preach in Gaul, he prepared them both.
Two pleasing sacrifices, two pure lambs--
He gave to the slaughter, for the Crucified Christ.
Of the New Zion, two wise heralds,
Of baptized Lyons, two courageous bishops--
Ireneaus and Pothinus glorified God
And Polycarp, their spiritual father.
Heroically they stood, and as martyrs they fell,
And, before the benevolent Christ, they stood again, crowned.
! REFLECTION
The power of the Cross is mysterious: no matter how unexplainable, it is true and indisputable. Yet St. John Chrysostom speaks of a custom in his time, in which the sign of the Cross is attached "on the emperor's diadem, on the accouterments of the soldiers, and it is traced on parts of the body--the head, the breast [chest] and the heart--and also on the table of oblation and over beds.... If we need to to expel demons, we use the Cross; it also helps to heal the sick." St. Benedict made the sign of the Cross over a glass of poison, and the glass burst as though it were struck by a stone. St. Julian made the sign of the Cross over a glass of poison that was brought to him and drank the poison, and he suffered no harm. The Holy Female Martyr Basilissa of Nicomedia protected herself with the sign of the Cross, stood amidst the flames and remained unharmed. The Holy Martyrs Audon and Senis crossed themselves when wild beasts were released on them, and the beasts became docile and meek as lambs. The sign of the Cross has been the most powerful weapon against the temptations of the demons, from the time of the ancient ascetics to the present day. The most horrible of the devil's devisings vanish into nothing, like smoke, when man traces the sign of the Cross over himself. Thus, it is a sign of the Lord Jesus Christ's love for mankind that the Cross--at one time a sign of criminality and shame--became, through His Crucifixion and Resurrection, the repository of all victorious power and might.
! CONTEMPLATION
To contemplate the rapid advance of evil in the soul of Saul from the moment he turned away from God (1 Samuel 22 [also known as 1 Kings 22]):
# How he hurled a spear at David;
# How he hurled a spear at his son Jonathan;
# How he slew eighty-five priests in one day, suspecting that they were aligned with David;
# How, in every age, and with every single unrepented sin against God, many other sins are also drawn in.
! HOMILY
! About John the Forerunner, and on how Isaiah prophesied concerning him
"The voice of him that crieth in the wilderness: Prepare ye the way of the Lord, make straight in the desert a highway for our God" (Isaiah 40:3).
When a king wants to visit a certain place, he sends a herald to announce his coming. An unusual herald is appropriate for an unusual king. In the wilderness, Moses was the herald of Christ the King; in Jerusalem, the Prophets; in Nazareth, the Archangel; in Bethlehem, the Magi of the East; at the Jordan, John the Baptist. Not one king in the history of mankind has had such heralds. St. John the Baptist--as unusual and special as were the other heralds of Christ--was the voice crying in the two-fold wilderness: in the wilderness of Jordan and in the human wilderness. Just as the wilderness of Jordan was fruitless and dry, so the wilderness of the human spirit was unfruitful and dry. John was not able to make the human wilderness green and fruitful, but he cleared and plowed it. He was preparing the earth for the great Sower, Who, by His coming, brought with Him seed and rain--the seed of knowledge, and the rain of grace from on high--to make it green and fruitful. By repentance, John prepared the way, and by baptism in water he made the path straight. The way and the paths--these are the souls of men. By repentance, the souls of men are prepared to receive the seed of Christ; and by baptism in water, the seed is implanted deep in the earth of human hearts. When they are immersed in the baptismal water, the proud and the lowly are all as one--equal in their nothingness before the majesty of the All-glorious Christ the Savior. //Every valley shall be exalted and every mountain and hill shall be made low// (Isaiah 40:4). These words are not about earthly valleys and hills, but about lowly and proud men. As all corpses in the grave are the same before the eyes of a living man, so all sinners--the lowly and the proud, the slaves and the masters--are equal before the Living God.
Such a wondrous vision was seen by Isaiah, the son of Amos, the prophet of the One, True, Living God.
O Lord, Heavenly King, Whom the heavenly hosts worship day and night, look down once again upon our nothingness--and by Your humiliation and suffering for us, save us.
To Thee be glory and praise forever. Amen.
! THE PRIESTLY-MARTYR EUTYCHES
Eutyches was one of the lesser apostles and was born in Sebastopol. He was a disciple of the Apostle John the Theologian and the Apostle Paul. Even though he is not numbered among the Seventy Apostles, nevertheless he is called an apostle because he was a disciple of the great apostles, and because--in his evangelical service--he displayed true apostolic zeal. Consecrated a missionary bishop, St. Eutyches traveled much, having an angel as his companion. He also received heavenly bread from an angel while in prison. When his body was scraped with a serrated iron rod, there flowed from him blood mingled with fragrant myrrh. He was thrown into a fire and exposed to wild beasts, and in the end he was finally beheaded with a sword in Sebastopol.
! THE HOLY MARTYR TATION
By descent, Tation was from Mantinaeas near Claudiopolis in Bithynia. He suffered during the time of Diocletian. After terrible tortures he was buried alive, and thus gave up his holy soul to God.
! THE HOLY FEMALE MARTYR SYRA
Syra was a kinswoman of St. Mary Golinduc (July 12). She was a Persian from the town of Khirkhaselevkos, and the daughter of a eminent, fire-worshiping pagan priest. Reared in paganism, the virgin Syra learned of Christ from poor Christian women, and her heart became inflamed with love for the Lord. During an illness while she was still unbaptized, Syra asked a Christian priest for dust from the church, but the priest refused since she was not yet baptized. With great faith she touched the priest's vestments, and was healed. That miraculous healing confirmed her even more in the Christian Faith. Her soulless father gave her over to harsh tortures, during which she received courage and comfort from heavenly visions. She was strangled with a cord and then drowned in the year 558 A.D., at the ages of eighteen. This occurred in the time of the Persian King Chozroes I. And so this holy virgin gloriously finished her earthly journey and took up her habitation with the heavenly angels.
! THE VENERABLE ARSENIUS OF KOMEL
Arsenius was born in Moscow and was of noble birth. As a youth he became a monk in the Monastery of St. Sergius of Radonezh. Being an exemplary monk, Arsenius was chosen as abbot, but he yearned for prayerful solitude and withdrew to the forest of Komel. There he lived a life of asceticism until his death, struggling bravely with powerful temptations from the demons. He went to rest in the Lord in the year 1550 A.D.
! SAINT GEORGE LIMNIOTES (OF THE LAKE)
Gregory was a confessor and a great ascetic of Olympus. He died at the age of ninety-five, in the time of the Iconoclasts, in 716 A.D. //)
------------------
//) The Great Greek Synaxarion also mentions St. Dionysius, the Archbishop of Aegina, who died in 1624 A.D., and whose relics have manifested numerous miracles.
! HYMN OF PRAISE
!
! THE HOLY FEMALE MARTYR SYRA
!
As young as the dew but, in wisdom, ancient,
Rich in faith, hope and meekness,
Syra the Persian, an exemplary Christian,
To God prayed, at night before dawn.
By prayer Syra, her soul, enriched;
In prayer her heart rejoiced.
In the darkness and sorrow of her father's home,
Amidst the grief and blood of the field of battle,
In prayer, Syra's heart rejoiced--
With the peace of Christ, joyful and filled.
Set against her, the kingdom and the pagan priests were,
Yet for her, were Christ and the honorably clergy.
In the dungeon dark, praying vigilantly,
With a wondrous light, Syra shone--
The light of Paradise, darkened in the world by sin,
Yet restored in the faithful by the Cross of Christ.
Whoever takes the Cross upon himself receives that light,
And from the light of the soul, the face also glows.
Syra, like a true star, shone,
And through death, to Christ's embrace, hastened.
! REFLECTION
If you were to ask many people why they do not go to church to pray, they will generally answer you: I have no time, I have to work! Look at those people who only work and do not go to church, placing their whole trust in their work; and compare them with those who set aside time for both work and prayer--and you will quickly be convinced that the latter are more well-off, and, what is more important, they are more content. Here is a story about two neighboring tailors who were very different in their respective approaches to work and prayer, and very different in their wealth and satisfaction. One of them had a large family, and the other was a bachelor. The first had the habit of going to church every morning for prayer, but the bachelor never went to church. Not only did the first work less, but he was also a less skillful tailor than the other. Yet he had enough of everything--and the other lacked everything. The bachelor asked the other how it was that he had everything, though he worked less. His prayerful neighbor [Bogomoljac, a devout person] answered him, saying that he attended church every day, and found lost gold along the way! He invited the bachelor to go to prayer with him--and they would share the discovered gold. Both neighbors began to attend church regularly, and soon they became equal in abundance and in satisfaction. Naturally, they found no gold on the road, but found the true gold of the blessing of God, which multiplies the abundance of truly devout men. To those who //seek first the Kingdom of God and His righteousness// (Matthew 6:31), God adds and gives increase, for all that is necessary for their physical life.
! CONTEMPLATION
To contemplate the providence of God that protected David from falling into the hands of Saul (1 Samuel 23 [also known as 1 Kings 23]):
# How Saul came to besiege the city of Keliah [Celia], where David was; but God revealed this to David, and he fled beforehand;
# How Saul almost captured David in Maon, but word came to Saul that the Philistines had attacked the land;
# How the Lord always watches over the righteous; and how He confounds the plans of the unrighteous.
! HOMILY
! About the character of Christ, as foretold by Isaiah
"He shall not cry, nor lift up, nor cause His voice to be heard in the street. A bruised reed shall He not break, and the smoking flax shall He not quench: He shall bring forth judgment unto truth" (Isaiah 42:2-3).
Who had more right than the Lord, the Son of God, to raise His voice at the lawless ones in His vineyard on earth? Who had a greater right to reprimand sinners who scorn God and God's law? O sweet meekness, unseen among men! O pure mountain water, that flows down from the heights and silently washes the impurity of the habitations of men! Many pagans think that they would believe in Christ if they could hear thundering words--not kind words--from Him. Perhaps the pagans could say which is better: thunderous words, shouting and roaring, which pass without effect like smoke in the wind, or kind words which have the effect of thunder? Can a legion of thunderclaps expel a legion of demons from a man possessed? A legion of thunderclaps boomed above Gadara, but the legion of demons in the possessed man did not even feel that. Our Lord Jesus did not shout at the demons, but quietly told them to come out, and they obediently came forth. Brethren, it is not a matter of shouting or roaring, but of power.
//A bruised reed shall He not break, and the smoking flax shall He not quench.// This refers to the Old Testament, the spirit of which the Pharisees had completely bruised with their Sabbatical formalities, and which only gave off smoke and no light, because of mankind's blunted understanding and their stony-heartedness. The Lord would not break the bruised reed, neither would He completely quench the almost-extinguished fire of that Law which He gave Israel. This also pertains directly to sinful men. He will not destroy sinful mankind, nor will He quench mankind within whom the divine light has turned to smoke, but He will straighten the reed and rekindle the divine fire in men. He came into the world for the sake of sinners. He proclaimed judgment softly and gently but with the power that truth alone conveys. He behaved gently and humbly, with compassion like a physician, but far more sublimely, and far more compassionately than any earthly physician--when He entered the house of a sick soul.
O gentle, humble Lord, fill us with Your All-wondrous gentleness and humility.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE BARTHOLOMEW
On this day we commemorate the translation of the relics of St. Bartholomew, although his main feast is celebrated on June 1# When this great apostle was crucified in Albanopolis [Derbend] in Armenia, Christians removed his body and honorably buried it in a lead sarcophagus. When numerous miracles--especially healings of the sick--occurred over the grave of the apostle, the number of Christians visiting the grave increased, so the pagans took the coffin containing the relics of Bartholomew and threw it into the sea. They also threw four more coffins into the sea. These contained the relics of four martyrs: Papian, Lucian, Gregory and Acacius. However, by God's providence the coffins did not sink, but floated and were carried by the current: Acacius to the town of Askalon, Gregory to Calabria, Lucian to Messina, Papian to the other side of Sicily, and Bartholomew to the island of Lipara. By a miraculous revelation, Agathon, the Bishop of Lipara, foresaw the approach of Apostle Bartholomew's relics. Accompanied by other clergy and the people, Agathon came to the seashore to receive the coffin with great joy. Immediately, many healings of the sick occurred over the relics of the holy apostle. The relics were placed in the Church of St. Bartholomew on Lipara, and reposed there until the time of Theophilus the Iconoclast. In approximately 839 A.D., the Muslims threatened Lipara, and the relics of the apostle were translated to Benevento. Thus the Lord glorified His apostle by the miraculous grace bestowed upon him, both during his life and after his death.
! THE APOSTLE TITUS
Titus was one of the Seventy [Apostles]. He was born in Crete and was educated in Greek philosophy and poetry. Following a vision in a dream, he began reading the Prophet Isaiah and lost his faith in Hellenic philosophy. Hearing of Christ the Lord, Titus traveled to Jerusalem with other Cretans, and there he heard the Savior speak and witnessed His mighty acts. He gave his young heart completely to Christ. Later he was baptized by the Apostle Paul, whom he served, like a son to a father, in the work of evangelization. Paul loved Titus so much that he referred to him at times as his son: //To Titus, my beloved son//(Titus 1:4) and at times as his brother: //I urged Titus to go to you and I sent the other brother with him// (2 Corinthians 12:18). Titus traveled extensively with the great apostle, and Paul appointed him Bishop of Crete. Titus was present at Paul's suffering and death in Rome, and honorably buried the body of his teacher and spiritual father. Afterward Titus returned to Crete, where with great success he baptized the pagans, and where he prudently governed the Church of God until old age. Titus entered into rest at the age of ninety-four.
! THE HOLY CONFESSORS OF EDESSA
They suffered much, in prisons and in exile, for the Orthodox Faith. This was during the reign of the Arian Emperor Valens. Their persecution was lifted under Emperor Theodosius.
! SAINT MENAS, PATRIARCH OF CONTANTINOPLE
Menas governed the Church wisely from 536-552 A.D. Before that, he was in charge of the Home of St. Sampson (see June 27) for the poor and needy. Pope Agapitus (who had come to Constantinople in order to refute and depose the heretical Patriarch Anthimus) participated at the consecration of Menas as bishop. //)
------------------
//) It is said that the following miracle occurred in Constantinople during the patriarchate of St. Menas. A Jewish boy went to church with his Christian friends and, following their example, received the Sacrament of Holy Communion. His father, a glassblower by trade, learned of his son's action, and threw him into the superheated kiln that he had prepared for firing glass. The boy remained in the fiery kiln for three days and three nights. When it was finally opened, the boy was alive and healthy, preserved by God's providence.
! HYMN OF PRAISE
!
! THE HOLY APOSTLE TITUS
!
Only the immature spirit soothes itself with fables:
For him who seeks the truth, fables are too weak.
Chaste Titus, on impure Crete, lived;
Desire for truth brought him to Christ.
When, upon the face of Almighty God, he gazed,
All fables seemed like turbid water.
Christ is the truth, and the Cross is the path to Truth--
To divine heights, the Cross lifts the soul,
And enlightens it in the mystery of God's plan.
Titus bore labors and countless tortures--
Both for himself and for his teacher,
The great Paul, his father in spirit.
When Nero the profane beheaded Paul,
Titus lost neither faith nor courage,
But peacefully buried his father with honor,
And, returning to Crete, he labored doubly.
The temple of Diana fell, the temple of Zeus vanished,
At Titus's wondrous prayerful power.
The darkness of error he banished and, with Christ, Crete, he enlightened.
Titus, Paul's fellow-apostle, wondrous and holy.
! REFLECTION
Our Christian forebears' superhuman courage and readiness to endure all sufferings (and even voluntary death) for Christ evoked fear in their tormentors. Emperor Maximian, a fierce and merciless persecutor of Christians, ordered his Antiochian proconsul to release St. Andrew Stratelates from prison, in fear that the people would rebel, since they respected Andrew more than the emperor. Emperor Valens ordered his eparch in Edessa to slay all Christians who opposed Arius. The eparch had more human compassion than the emperor. The Edessan Christians had services in a field outside the city, for the Arians had seized all the churches in the city. The eparch warned the Christians to forego the services in the field the next day, so that they would not be killed. Contrary to this warning, all the Christians set out happily to the field, rejoicing that they would suffer and die for the true Faith. The eparch, marching out of the city with the soldiers, saw a Christian woman with a child in her arms as she hurried past the soldiers toward the field. The eparch said to her: "Haven't you heard that the eparch, with his soldiers, will come and kill everyone that he finds there?" The woman answered: "I heard--and because of that, I am hurrying to the field, so that I can die for Christ with the others." The eparch continued: "And why are you taking this child with you?" The woman replied: "I want my child to become worthy of martyrdom as well as myself." At this, the eparch was filled with dread, and returned to the city with his soldiers to inform the emperor. The emperor also was filled with fear, and revoked his order to massacre the Christians.
! CONTEMPLATION
To contemplate the extraordinary selflessness of David (1 Samuel 24 [also known as 1 Kings 24]):
# How Saul, pursuing David, unknowingly entered into the cave where David was hiding with the young men;
# How the young men pressed David to kill Saul, but David refused;
# How David cried out to Saul: //The Lord judge between me and you// (1 Samuel 24:12 - 1 Kings 24:12).
! HOMILY
! About the opened prison and the lighted darkness
"That you may say to the prisoners, Go forth; to them that are in darkness, Show yourselves" (Isaiah 49:9).
Who is a greater prisoner than he who is bound by sin? Is there a greater darkness than the darkness of sin, death and hell? Who can free one from sin? God alone. Even the scribes and Pharisees acknowledged this. //Who can forgive sins but God alone?//(Mark 2:7). Christ released many from sin, and made them free and whole. Therefore, if God alone is able to release prisoners from sins, why did the Jews not acknowledge Him as God? They themselves were bound by sin and were unable to think logically, and they did not allow the Lord to release them from their bonds. See what folly the "wise men" of the Jews committed. On the one hand, they confirmed that God alone is able to loose man from sin; yet, on the other hand, they accused Christ of being in league with the devil! The devil is the one who binds, so how can the devil set loose? The devil is the one who destroys, so how can he save man? Where there are devils, there is also the prison--sin, death and hell. Only Christ has the power--the divine, unequaled power--to lead the souls of men out of prison, and save them. //My son, your sins are forgiven you!// (Mark 2:5). //Young man, I say to you, arise!// (Luke 7:14) //Lazarus, come forth!// (John 11:43). By His mighty words, He removed the bonds of the sinners and led the dead back into the light of life. By His descent into hell, He destroyed the throne of Satan and freed the souls of the righteous ones. By His resurrection, He fully and completely revealed His irresistible authority over all the diabolical bonds of the devil, over all the intrigues of hell, and over the last enemy--death: //The last enemy that will be destroyed is death// (1 Corinthians 15:26).
O Lord, Victor over demons, Liberator from sin, Resurrection of the dead--You do we worship, and to You do we pray: free us, resurrect us, and bless us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR ADRIAN AND HIS WIFE NATALIA
Adrian and Natalia were husband and wife, both of noble and wealthy families from Nicomedia. Adrian was a pagan and the head of the Praetorium. Natalia was secretly a Christian. They were both young and lived together in marriage for only thirteen months before their martyrdom. When the wicked (nefarious) Emperor Maximian visited Nicomedia, he ordered that Christians be seized and subjected to torture. Twenty-three Christians were hidden in a cave near the city. Someone reported them to the authorities. They were cruelly flogged with oxen whips, beaten with rods, and cast into prison. Soon they were taken before the Praetor to register their names. Adrian observed these people--serene and meek, tortured but patient. He made them swear to tell him what they thought their God would give them for enduring so many tortures? They told him of the blessedness of the righteous in the Kingdom of God. With that, Adrian turned to the scribe at once and said to him: "Write my name with these saints--I also am a Christian." When the emperor learned of this, he asked Adrian: "Have you gone out of your mind?" Adrian replied: "I have not gone out of my mind--rather, I have come to my senses." When she heard of this, Natalia greatly rejoiced. As Adrian sat with the others, chained and in prison, she came and ministered to all of them. When they flogged and intensely tortured her husband, Natalia encouraged him to endure to the end. After lengthy tortures and imprisonment, the emperor ordered that the prisoners' arms and legs be broken with a hammer and anvil. This was done. With twenty-three fellow Christian men, Adrian gave up the spirit under the greatest of tortures. Natalia took their relics to Argyropolis (near Constantinople) and honorably buried them there. After a few days, Adrian appeared to her in heavenly radiance and called out that she should also come to God, and she peacefully gave up her spirit to God.
! THE VENERABLE TITHOES
Tithoes, a disciple of St. Pachomius, was renowned among the ascetics of Egypt. He was abbot of Tabennisi Monastery. He lived his entire life in absolute purity. Once a brother asked him: "What path leads to humility?" Tithoes replied: "The path to humility is abstinence, prayer and knowing that you are lower than everything." Tithoes attained a very high degree of perfection--whenever he lifted his hands in prayer, his spirit rose into ecstasy. He died in the Lord in the fourth or fifth century. The Venerable Ibistion is commemorated together with him.
! SAINT ZER-JABOB
Jacob was a great Christian missionary in Abyssinia [Ethiopia].
! THE MIRACLE OF THE MOST-HOLY THEOTOKOS IN MOSCOW IN THE YEAR 1395 A.D. //)
See "Reflection" below.
-------------------
//) In the Greek Synaxarion, the life of St. Ioasaph, the heir to the throne of India, is also found on today's date. However, in the Slavic Prologues, as in this one, he is to be found on November 19.
! HYMN OF PRAISE
! THE HOLY MARTYR ADRIAN AND HIS WIFE, SAINT NATALIA, AND THE TWENTY THREE MARTYRS
The path is thorny, but in Paradise there are roses;
Sufferings are bitter, but Christ is sweet.
What is that sound in the darkened dungeon?
The hard anvil, the hammer strikes,
But, iron nor lead, it does not forge:
It breaks the martyr's legs;
It breaks the martyr's arms;
The martyr is Christ's soldier.
One white hand, noble,
Blood-stained, to the dust falls--
Saint Adrian's hand.
Saint Natalia took her husband's hand,
And with it, from prison ran.
She washed this hand, wrapped it in silk,
And kissed and bedewed it with tears.
Wherever she goes, with her, his hand she bears.
In sleep, under her head, she places it,
And to the severed hand, quietly whispers:
"O hand of my holy Adrian,
You have helped me often,
Again, help me, O hand;
To heaven, raise me quickly,
To where Adrian lives with the saints."
Indeed, her wait was short;
Adrian, to Natalia, appeared,
Than a king, more beautiful and brilliant,
And his heavenly voice invited her:
"Come to me, my sister, Natalia;
Come to me, and you shall live eternally.
To the Eternal Kingdom, the King summons you!
! REFLECTION
Occasionally one hears the godless words among Christians: "Even God cannot help here!" There is no danger in which God cannot help, nor are there any enemies who could conquer by their own power without God's permission. Do not ask how God will destroy the powerful army of our enemies; it is easier for God to do than it is for you to breathe! Read how God, by one apparition, terrified the Syrian army to such an extent that it dispersed, and Israel was saved: //For the Lord had made the host of the Syrians to hear a noise of chariots and a noise of horses, even the noise of a great host: and they said one to another, Lo, the king of Israel has hired against us the king of the Hittites and the kings of the Egyptians to come upon us//(2 Kings 7:6). Read how Jerusalem was saved from the powerful army of Babylon without any effort on the part of King Hezekiah other than his pleading and prayer before God: //And it came to pass that night, that the angel of the Lord went out and smote in the camp of the Assyrians a hundred four-score and five thousand: and when they arose early in the morning, behold, they were all dead corpses// (2 Kings 19:35). God did not perform such miracles only in ancient times, but He performs them every time the faithful pray to Him. So it was in the year 1395 A.D., when the Tartar King Tamerlane [Tamburlaine] surrounded Moscow with his countless soldiers. The Russians brought the miracle-working icon of the Most-holy Theotokos from the town of Vladimir to Moscow, and all the people prayed, with tears, to the Most-holy and Pure One. Suddenly, for no visible reason, the army of Tartars withdrew hurriedly and fled. What caused this? Tamerlane had a dream in which clouds of saints swept down from the heavens. In their midst, the Holy Theotokos stood as Queen, surrounded by hosts of angels. The Theotokos sharply rebuked Tamerlane and ordered him to leave the land of the Russians immediately, and the saints raised their staffs at him. In great dread, Tamerlane ordered his troops to withdraw as soon as the day dawned.
! CONTEMPLATION
To contemplate the greatness of David's soul (1 Samuel 26 - [also known as 1 Kings 26]):
# How David entered the camp of Saul at night and, while Saul was sleeping, took his spear and cup [cruse of water];
# How David's commander [Abishai] wanted to spear Saul, but David forbade it;
# How David left vengeance to God.
! HOMILY
! About the sufferings [passions] of Christ, how Isaiah foresaw them.
"I gave My back to the smiters and My cheeks to them that plucked off the hair: I hid not My face from shame and spitting" (Isaiah 50:6).
Brethren, this is the prophecy. Now read the exact fulfillment of that prophecy: //And when he had scourged Jesus, he delivered Him to be crucified//(Matthew 27:26). Is not this what the prophet foretold? //I gave My back to the smiters//... And again: //One of the officers who stood by struck Jesus with the palm of his hand// (John 18:22). Again: //They struck Him on the face and asked Him, saying, "Prophesy, who is it that smote You?"// (Luke 22:64). Is not this what the prophet foretold? //I gave My cheeks to them that smite//... Furthermore: //And they mocked Him// (Matthew 27-29); //And they smote Him on the head with a reed and did spit upon Him// (Mark 15:19). This is what the prophet foretold: //I hid not My face from shame and spitting.// Every word of the prophecy is clear. It is amazing that the discerning man of God sees more clearly through the walls of several hundred years than an ordinary eye sees the bottom through clear and shallow water! God, by His irresistible power, opens the spirit of mortal man to see, by the spirit, events in the distance as clearly as the physical eyes see events close by. How can the All-seeing God Himself see through the marrow of our bones, through the fog of our thoughts, and through all the secrets of our hearts? He knows our thoughts even before they are born, and knows our desires before they are conceived. He is the only undeceived (and undeceivable) Witness of all events, external and internal, in the heights and the depths, and in the width and in the length. He witnesses to our spirit in truth all that our soul desires to know for our benefit, and for the salvation of our soul.
O All-seeing and All-wonderful Witness to all the secrets in heaven and on earth, our Creator and our Good Provider, You alone see the weaknesses of all of us. Help us--oh, help us!--to learn that which is necessary for the sake of our eternal salvation.
To Thee be glory and praise forever. Amen.
! THE VENERABLE POEMEN [PIMEN] THE GREAT
Poemen was an Egyptian by birth and a great ascetic of Egypt. As a boy, he visited the most renowned spiritual men. He gathered tangible knowledge from them, as a bee gathers honey from flowers. Poemen once begged the elder Paul to take him to St. Paisius. Seeing Poemen, Paisius said to Paul: "This child will save many; the hand of God is on him." In time, Poemen was tonsured a monk, and attracted two of his brothers to the monastic life as well. Once his mother came to see her sons. Pimen did not allow her to enter but asked her through the door: "Do you desire more to see us here, or there, in eternity?" The mother withdrew with joy, saying: "Since I will surely see you there, then I do not desire to see you here." In the monastery where these three brothers dwelled (which was governed by Abba Anoub [Anubis], Poemen's eldest brother), their rule [typikon] was as follows: At night they spent four hours doing manual work, four hours sleeping, and four hours reading the Psalter. During the day, they alternated work and prayer from morning to noon, did their reading from noon until Vespers, and made supper for themselves after Vespers. This was the only meal in twenty-four hours, and it usually consisted of some kind of cabbage. Poemen is said to have commented: "We ate that which was given to us. No one ever said, 'Give me something else,' or 'I do not want that.' In this way, we spent our entire life in silence and peace." Poemen lived a life of asceticism in the fifth century, and died peacefully in old age. //)
! THE VENERABLE POEMEN [PIMEN] OF PALESTINE
Poemen lived a life of asceticism in Rouba, which lay in the wilderness of Palestine, during the reign of Emperor Maurice (582-602 A.D.). He had been a shepherd in his youth. One day his dogs attacked a man and tore him to pieces, but out of mischievousness he did not try to save the man. As a result of this, it was revealed to him that he would be slain by wild beasts when his time was to come. And thus it happened. He was devoured by wild beasts and gave up his soul to his Lord.
! SAINT HOSIUS, BISHOP OF CORDOVA
As the Bishop of Cordova, Hosius governed the Church in Spain for over sixty years. He was prominent at the First Ecumenical Council in Nicea [325 A.D.], and presided at the local Council in Sardica in 347 A.D. So zealous was he for Orthodoxy that, when he was near death, he issued yet another anathema against the Arian heresy.
! THE PRIESTLY-MARTYR KUKSHA AND POEMEN [PIMEN] THE FASTER
Kuksha and Poemen were both monks in the Monastery of the Caves in Kiev. Kuksha successfully preached the Gospel to the Wallachians and baptized them. One day, pagans attacked and slew him and his disciple. Just then, Poemen the Faster was standing in the church in the Monastery of the Caves; and, having a vision of the death of Kuksha, his disciple and companion, he cried out: "Today, our brother Kuksha was slain for the Holy Gospel." Saying this, he himself gave up the spirit. This happened in the year 1113 A.D.
-----------------------
! HYMN OF PRAISE
! VENERABLE POEMEN [PIMEN] THE GREAT OF PALESTINE
Venerable Poemen was a well of wisdom,
And a great torch of Christ's light.
From the day he put the world of vanity behind him,
No one did he reprimand, no one did he reproach.
Once, in his presence, the brethren quarreled,
But Poemen remained silent. Some reprimanded him:
"How can you hear the quarrel as if nothing is wrong?"
Poemen replied: "I died long ago."
Another asked him: "How can I be saved,
That my mind, after the enemy's calumnies, not wander?"
Said Poemen: "Flies avoid hot water,
And, from a warm soul, devils flee."
Another asked: "What is more trustworthy,
The speech of my brethren or silence?"
"By one or the other, God is glorified.
For the glory of God, choose for yourself."
"How can I defend myself from evil?"
"Evil does not defeat evil.
For the evildoer, do something good,
And that will inflame even his heart.
One's home is not built by destroying another's:
In this, only the third party--the devil--benefits."
"Two wicked passions poison our souls;
Freedom we do not have while they crush us:
Pleasures of the flesh and worldly vanity--
Only a holy soul is free from them."
! REFLECTION
The great Orthodox ascetics, in their difficult ascent to the Kingdom of God, are like those who laboriously grope their way up a steep mountain, clutching with hands and feet to inch onward, not thinking to look back. Their labor and detachment is indeed amazing. St. Poemen did not want to see his mother when she came to visit him. Again, a prince wanted to see Poemen but he refused. However, the prince thought of a cunning way to force the elder to meet with him. He arrested Poemen's nephew and said to the mother (Poemen's sister) that he would release her son only if Poemen himself came to speak with him. The sister went into the wilderness, and, knocking at Poemen's door, begged her brother to come out and save her son. But Poemen did not come out. The sister began to scold and curse him. When the prince heard of this, he ordered that a letter be written to Poemen, saying that, if he would ask the prince to release the nephew in writing (since he did not do so orally), the prince would do so. Poemen replied: "O mighty prince, make deep inquiries into the guilt of the young man, and if his guilt is such that he deserves death, let him die, so that by temporal punishment, he will escape the torments in eternity. But, if the guilt does not merit the penalty of death, then punish him according to the law and release him." Reading this just and impartial letter, the prince was greatly astonished. He released the youth, and his respect for Poemen increased two-fold.
! CONTEMPLATION
To contemplate Saul's total apostasy from the one God (1 Samuel 28-31 [also known as 1 Kings 28-31]):
# How, when frightened by the Philistines, he [Saul] turned to a pagan sorceress [the witch of Endor] to prophecy for him;
# How the sorceress, through her sorcery, evoked a spirit who called himself Samuel and who prophesied Saul's death;
# How Saul and his sons perished at the hands of the Philistines.
! HOMILY
! About the Day of Christ, as prophecied by Isaiah
"Therefore My people shall know in that day that I am He that does speak: behold, it is I" (Isaiah 52:6).
Brethren, our God is the God of Truth. Though there are spots of darkness on the sun, there is not a spot of untruth on our God. Every word spoken by God, through the prophets, came true. When the Word [Logos] of God became incarnate as Jesus Christ our Lord, then all the prophecies concerning Him--which, for the Jews, had been dark enigmas--were revealed as clearly as the sun. In the Holy Gospel it is said: //And the Word was made flesh//(John 1:14). This was said of the Pre-eternal Word, the eternal Wisdom and Son of God. In the Word of God made flesh, every word of prophecy was revealed in bodily form. Until the Lord Christ came to visit mankind in the flesh, the scribes and readers of Holy Scripture thought that many visions of the prophets--long unfulfilled--were only the words of men and not the words of God. But God does not let anyone think lowly thoughts about His prophets, which is why He said: //My people shall know in that day that I am He that does speak.// Therefore, God wanted to give weight to every word of the prophets, and to teach men patience, to await //that day--//that wondrous day when the manifestation of the Lord on earth in the flesh would clearly announce: //Behold, it is I!// He who recognized the Lord Jesus as God in the flesh, also recognized Him as the One Who spoke through the prophets.
//Behold, it is I!//Thus speaks Christ today. //I am He// Who speaks through all the created universe. //I am He// Who spoke through the prophets. //I am He// Who, through lips of flesh, spoke the words of eternal salvation. //I am He// Who spoke through the apostles, saints and teachers. //I am He// Who speaks, and will continue to speak, through My Holy Church until the end of time. //I am He// Who speaks, and //I am He// about Whom it is spoken.
! O Lord, to Thee be glory and praise forever. Amen.
! THE VENERABLE MOSES THE BLACK [THE ROBBER]
Moses was an Ethiopian by birth. In the world, he was a thief and the leader of a band of thieves, and yet he became a penitent and a great ascetic. Moses was once a slave, who escaped and joined the thieves. Because of his great physical strength and daring, the robbers chose him as their leader. Then one day he was suddenly overcome with pangs of conscience and repented for his misdeeds. He left the thieves, entered a monastery, and gave himself over completely to obeying his spiritual father and the monastic rule. He benefited much from the teachings of Saints Macarius, Arsenius and Isidore. Later he withdrew to solitude in a cell, where he dedicated himself completely to physical labor, prayer, vigils and contemplating God. Tormented by the demon of lust, Moses confessed to Isidore, his spiritual father, who gave him counsel to increase his fasting, and even when eating to avoid satisfying his appetite. When this regimen did not help, he was counseled to keep all-night vigil and to pray standing. Then he also began the practice of bringing water to the elderly monks from a distant well, all night long. After six years of terrible struggles, St. Isidore miraculously healed him of lustful thoughts, fantasies and dreams perpetrated on him by the demon. Moses was ordained a priest in old age. He founded his own monastery, had seventy-five disciples, and lived to the age of seventy-five. He foresaw his death: one day he told his disciples to flee, for the barbarians were about to attack the monastery. When the disciples urged him to escape with them, Moses said that he had formerly been violent, and had to suffer violence himself, according to the words: //For all they that take the sword shall perish with the sword// (Matthew 26:52). He remained at the monastery with six brethren, and the barbarians slew them. One of the brethren, hiding nearby, saw seven shining wreaths descend from heaven upon the seven martyrs.
! THE VENERABLE SAVA OF PSKOV AND KRYPETSK
Sava was a Serb by descent. He lived a life of asceticism in the Monastery of the Holy Theotokos in Pskov, and then became abbot of that monastery. But they praised him, and so, fleeing the glory of men, he withdrew to the shores of Lake Krypetsk, where he founded a new community dedicated to St. John the Theologian. Nevertheless, he was unable to conceal his fame and prominence even there. He was visited by Prince Yaroslav of Pskov and his wife. Sava would not allow the wife to enter the monastery, but he blessed her and prayed to God for her, and healed her of a disease outside the monastery. This saint of God found rest in the year 1495 A.D. and his relics have retained miracle-working power. Abbot Dositheus was one of his visitors at Krypetsk.
! THE SYNAXIS [ASSEMBLY] OF ALL THE SAINTS [CHOSEN MEN OF GOD] OF THE MONASTERY OF THE CAVES IN KIEV
! HYMN OF PRAISE
! THE VENERABLE MOSES THE BLACK [THE ROBBER]
Blessed is he upon whom God shows mercy!
The mercy of God is joy,
In both worlds joy.
Moses the Black, like a prodigal son,
Repented and, to God, returned,
And with tears, redressed his many sins.
By much fasting, himself he withered--
Black of face, and radiant in soul.
Incessant night vigils tamed his passions,
And from the demon's power, freed him.
His soul, like a mountaintop lake, became
Which, into the heavens gazes,
In which heaven sees its face.
When others asked Moses:
"Do not the sins of others sadden you?
Do not sinful people concern you?"
Saint Moses tearfully replied:
"Whoever has a corpse in his house
Does not weep over someone else's corpse,
But rather weeps over his own corpse."
The lion, into a lamb, can often change,
But such miracles, only Christ performs.
Moses, a lion in the mountains, was,
Yet, a gentle lamb, became.
By his holy prayers,
May God grant salvation to us as well.
! REFLECTION
A true Christian avoids the praise of men--and not only avoids it, but has a true fear of it. St. Sava of Pskov left the office of abbot, and the monastery itself and the good brotherhood of the monastery, fleeing to a desolate place to escape the praise of men--for the love of praise robs our hearts. A devout prince, upon hearing of the ascesis of St. Moses Murin [the Black], took his retinue into the desert to see him. Moses learned that the prince was coming to his monastery, and quickly ran to hide somewhere, but he unexpectedly encountered the high-ranking visitors. "Where is the cell of Abba Moses?" the servants of the prince asked, not suspecting that this was Moses himself. Moses opened his mouth and said: "What do you want him for? He is an ignorant old man, very untruthful, and completely impure in life." Hearing this, the visitors were astonished, but continued on. When they arrived at his cell, they asked for the elder, but the monks said he was not there. The visitors told them what the monk on the road had said. The monks were dismayed, and asked them: "What did this old man look like?" The visitors answered that he was very dark-skinned, tall and dressed miserably; and the monks cried out loudly: "But that was Abba Moses himself!" This incident was of great spiritual benefit to the prince. He returned home rejoicing.
! CONTEMPLATION
To contemplate the nobility of David (2 Samuel 1 - [also known as 2 Kings 1]):
# How a messenger arrived and told David of the deaths of Saul and Jonathan, thinking to receive a reward;
# How David bitterly mourned and lamented for Saul, who had wished nothing but death for David.
! HOMILY
! About the form of the Messiah
"And we saw that He had neither form nor comeliness" (Isaiah 53:2). //)
The prophet speaks this about Christ the Lord as a man: //He had neither form nor comeliness!// How is it that He--Who gave form to every created thing, created the beautiful angels of heaven and all the beauty of the universe--had no form or comeliness [beauty]? Brethren, this need not confuse you. He was able to appear in any manner He chose. He did not want to appear in angelic beauty, or in royal power, or in luxurious wealth. He who enters a house of sorrow does not dress in the most beautiful clothes, nor does a doctor dress in his best clothes when he visits the gravely ill. In coming to earth, the Lord entered a house of sorrow; he entered a hospital. The body is the garment of the soul. He dressed in a simple garment to impress us by the power of His spirit, not by His dress. We do not know exactly what His appearance was. According to tradition, His face was swarthy and His hair was of a chestnut color. Yet when King Abgar sent Ananias his artist to paint the face of the Lord, he was not even able to begin, for it is said that Christ's face shone with an unearthly light.
After all, even if Christ had clothed Himself in the most beautiful body--such a body as only He could create, what would physical beauty be in comparison with the immortal beauty of His divinity? The greatest earthly beauty is merely a shadow of the heavenly beauty. The Prophet Daniel was a young and handsome man, but when an angel of God stood before him, he himself said: //…there remained no strength in me: for my comeliness turned in me into corruption//(Daniel 10:8). What is the face of an earthly man in comparison to the likeness of an immortal angel of God? As darkness is in comparison to light! Therefore, the prophet, beholding Christ the Immortal King in the flesh of man, and comparing His earthly appearance with His Immortal glory, had to cry out: //He had neither form nor comeliness.//
O most gentle Lord, Who for our sake was clothed in our miserable physical garment to serve us and keep us from fear, glory to You!
To Thee be glory and praise forever. Amen.
------------------------
//) According to the Greek text (Septuagint).
! THE BEHEADING OF SAINT JOHN THE BAPTIST [MATTHEW 14:1-12]
Herod Antipas (son of the elder Herod who slew the children of Bethlehem at the time of Christ's birth) was ruler of Galilee when John the Baptist was preaching. He was married to the daughter of Aretas, an Arabian prince. But Herod, an evil sprout of an evil root, put away his lawful wife and unlawfully took Herodias as his concubine. Herodias was the wife of his brother Philip, who was still alive. John the Baptist stood up against this lawlessness and strongly denounced Herod. Herod then cast John into prison. During a banquet in his court at Sebastia in Galilee, Salome--the daughter of Herodias and Philip--danced before the guests. Herod, drunk with wine, was so taken by this dance that he promised Salome anything she asked of him, even if it were half of his kingdom. Salome was persuaded by Herodias to ask for the head of John the Baptist. Herod gave the order, and John was beheaded in prison--and his head was presented to him on a platter. John's disciples took the body of their teacher by night and honorably buried it, but Herodias pierced John's tongue with a needle repeadedly, and buried his head in an unclean place. What later happened to John the Baptist's head can be read on February 24. However, God's punishment quickly befell this group of evildoers. Prince Aretas, avenging his daughter's honor, waged war against Herod with his army and defeated him. The defeated Herod was sentenced by the Roman Caesar, Caligula, to exile (at first to Gaul, then later to Spain). Herod and Herodias lived in poverty and humiliation in exile, until the earth opened up and swallowed them. Salome died an evil death on the Sikaris (Sula) River (see "Reflection" below). St. John's beheading occurred just before Passover [the Pascha] but its celebration on August 29 was established because a church that had been built over his grave in Sebastia (by Emperor Constantine and Empress Helena) was consecrated on August 29. The relics of John's disciples, Eliseus and Audius, were also placed in that church.
! VENERABLE THEODORA OF THESSALONICA
She and her husband, a wealthy and devout man, lived on the island of Aegina. When the Arabs menaced Aegina, they settled in Thessalonica. There they gave their only daughter to a convent, and her monastic name was Theopista. Theodora's husband died soon after this, and she also became a nun. She was a great ascetic. She often heard angelic singing, and often mentioned it to the sisters: "Do you not hear how beautifully the angels sing in the heavenly sanctuary?" She died at the age of seventy-five, in the year 879 A.D. From her relics flowed healing myrrh, which benefited many.
! THE HOLY FEMALE MARTYR VASILISSA
Vasilissa suffered for Christ in Srem [Serbia].
! THE HOLY MARTYR ANASTASIUS
Anastasius was a young man from Radovište, in the diocese of Strumica. He learned a trade in Thessalonica. The Turks tried to force him to become a Muslim, which he adamantly rejected, and for that he was tortured, then hanged, on August 29, 1794 A.D.
! HYMN OF PRAISE
! SAINT JOHN THE BAPTIST
O Saint John, wonderful Baptist,
Of the glorious Savior, you were the Forerunner;
Your purity touched human souls
And, like a terrible trumpet, from the Jordan resounded,
Awakening men from sleep, and the vice of sloth,
When the axe was near to the root.
To you I bow, to you I pray:
Every attack, help me to withstand.
Prophet most powerful, to you I bow,
And before you I kneel, and before you I weep:
From your heart, grant me the strength of a lion;
From your spirit, grant me angelic whiteness.
Grant me your strength, that by practice I may attain
Submissiveness to God and self-control,
To be baptized by fasting, purified by all-night vigils,
Sweetened by prayer and heavenly sight;
And to face every martyrdom without fear,
With your courage and strong faith.
O Saint John, man of God,
Glorious martyr for supreme justice:
It is you whom the godless armies fear.
To my prayer, be not deaf,
But strengthen me by your prayers,
That, as a true candle before the Lord, I may stand.
! REFLECTION
If you observe how men die, you will see that the death of a man usually resembles his sin. As it is written: //For all they that take the sword shall perish with the sword// (Matthew 26:52). Every sin is like a knife, and men usually are slain by that sin which they most readily committed. An example of this is that of Salome--the foul daughter of Herodias--who asked for and received from Herod the head of John the Baptist on a platter. Living in the Spanish town of Lerida [Loredo] with the exiled Herod and Herodias, Salome set out across the frozen river Sikaris one day. The ice broke, and she fell into the water up to her neck. Shards of ice jammed around her neck and she struggled, treading her feet in the water, as she once danced at the court of Herod. She was unable either to raise herself up or to sink down, and a shard of ice severed her head. The water carried her body away, and her head was brought to Herodias on a platter, as was once the head of John the Baptist. Behold how terribly a death resembles the sin committed.
! CONTEMPLATION
To contemplate the righteousness of David (2 Samuel 3 [also known as 2 Kings 3]):
# How Abner the commander, one of David's opponents, gave himself over to David, trusting him;
# How Joab, David's commander, slew Abner;
# How David cursed the house of Joab, and wept copiously for Abner.
! HOMILY
! About the healing of mankind by the wounds of Christ
"And by His stripes [wounds] we are healed" (Isaiah 53:5).
We are healed by the wounds of Christ. Thus the prophet of God prophesied, and we now know that his prophecy is true. By the suffering of Christ, we have been saved from eternal suffering; by His most-pure blood, we are cleansed of the leprosy of sin and are enlivened. Our blood and body became impure from sinful passions; but it was our spirit--the nest and source of bodily impurity--that first became impure. Can the unclean be cleansed by the unclean? Can dirty linen be washed with dirty water? It cannot.
Only that which is clean can wash that which is unclean. Even the pagans feel that mankind is impure. But they [the pagans] want to cleanse the impure by the impure: by invoking impure spirits and worshipping them, and by offering impure sacrifices, be they human or animal. One drop of the blood of the Most-pure Christ can cleanse mankind more than all of the idolatrous sacrifices from the beginning of the world. Why? Because the blood of Christ is pure, and all else is impure. By diluting just one drop of a strong medicine, physicians can vaccinate many people to protect them from disease. We dilute the blood of Christ with water, and then we drink it in Communion, for it is said that when they pierced the body of the Lord with a spear //there came out blood and water// (John 19:34). There is such power in one drop of His blood that the world could be burned up by it. It is sinless blood, the only sinless blood; the blood most-pure, the only truly pure blood in the world.
Oh, if men would only know the power of absolute purity! All the sinful, impure ones would rush to cleanse themselves by the Most-pure Christ, and all the helpless ones would rush to partake of the Blood and Body of Christ [Holy Communion], and all the unbelieving would believe in Christ. For there is a trinity here; and all three are pure and all three purify--pure spirit, pure blood and pure body. Only the pure can purify the impure; only that which is healthy can heal the unhealthy; and only that which is powerful can raise up the helpless.
O our omnipotent Lord, cleanse us by the blood of Your wounds, Your innocent and most-pure wounds.
To Thee be glory and praise forever. Amen.
! THE VENERABLE ISAAC, DALMATUS AND FAUSTUS
Venerable Isaac is also celebrated separately, on May 30. St. Dalmatus was once an officer during the reign of Emperor Theodosius the Great, and the emperor held in great esteem. When the spirit awakened in him, he despised all earthly things. He resigned his rank, taking his only son Faustus to St. Isaac's community on the outskirts of Constantinople, where they both were tonsured as monks. Elder Isaac rejoiced that Dalmatus was completely devoted to a God-pleasing life. When Isaac approached the hour of death, he appointed Dalmatus as abbot in his place. Later, this community was named after him. Dalmatus devoted himself to fasting, and fasted for forty days at times, conquering the invisible demonic powers. He participated in the Third Ecumenical Council [Ephesus, 431 A.D.] and fought against the Nestorian heresy. Pleasing God, he died peacefully in the fifth century. His son Faustus supported his father in everything, and, after a God-pleasing life, also died peacefully in this Dalmatus community.
! THE VENERABLE COSMAS, THE EUNUCH
Cosmas was a monk from the Lavra of Pharan. He was well versed in Holy Scripture. So much did he value the words of St. Athanasius the Great that he said to his disciples: "If you have no paper when you hear something quoted from the writings of St. Athanasius, write it down on your handkerchief." In his old age, Cosmas went to Antioch, to the see of Patriarch Gregory (+584 A.D.), and there ended his life. The patriarch ordered that the body of Cosmas be buried in the monastery of the partiarchate. One man in particular frequently came to the grave of Cosmas, honoring the saint and praying to God there. Asked why he did this, he revealed that he had been paralyzed for twelve years, and that St. Cosmas had healed him.
! THE VENERABLE ANTHONY THE ROMAN
Anthony was born in Rome in 1086 A.D. of devout and wealthy parents. By then, the Roman Church had separated from the Eastern Church, and all who remained faithful to the Eastern Church were being persecuted by the Roman clergy. Anthony was among the persecuted. He distributed all of his inherited wealth and was tonsured a monk. Anthony lived am ascetic life, and among his labors, he stood on a rock in the sea for fourteen months. As he persisted, the rock separated from its base and floated to Novgorod, miraculously. In Novgorod, Archbishop Nicetas received Anthony kindly, and helped him build a church to the Holy Birth-giver of God, which would become a monastery. Anthony lived a long time as the abbot of this monastery, and manifested the great power of God's grace through many miracles. He died peacefully in the year 1146 A.D., and took up his abode in the mansions of the Lord.
! SAINT SALOME THE MYRRH-BEARER
Salome was the mother of the Apostles James and John, the wife of Zebedee, and the daughter of Joseph, the betrothed of the All-Holy Birth-giver of God. She served the Lord during His earthly life, and was deemed worthy to be among the first to proclaim His Resurrection.
! HYMN OF PRAISE
!
! THE VENERABLE ANTHONY OF NOVGOROD
!
A man alone on a lifeless rock:
Surrounded by the foaming, turbulent sea!
Anthony, in God, immersed,
His mind, to God, ceaselessly raised,
And the prayers of his heart ascended.
The rock floated and Anthony remained still,
Thinking of nothing but God, fearing no evil.
Evil itself fears a true hero,
And even more, a true monk.
Righteous men, providence guides,
And, through the saints, God glorifies Himself.
Through Anthony, God is glorified.
Anthony, like a star, shone
In the great city of Novgorod,
Where, to the people, the miracle he proclaimed.
Anthony took care to acquire humility,
His mind to God, ceaselessly raised.
His humble soul, to God, was a sweet sacrifice,
And his prayer was true, sacrificial incense;
Anthony was both incense and sacrifice.
God never saw the saint as one dead,
As the clairvoyant saint never thought God to be dead.
! REFLECTION
Holy souls read Holy Scripture with great diligence, concentrating on every word, and placing themselves before the mirror of the Word of God as before the Dread Judgment. Their diligence was so great in this, that some of the ascetics undertook distant journeys in order to find a spiritual sage who would interpret a word or a saying from Holy Scripture for them. Of course, whenever it was possible, this was accomplished through correspondence. From this, a large collection of the letters of the saints have survived, including those of Saints Basil, Gregory, Chrysostom, Isidore of Pelusium, Nilus of Sinai and many others. One day, St. Cosmas pondered on the words of the Lord Christ--when He, in the Garden of Gethsemane, asked His disciples if any of them had a sword, and when His disciples said to Him: //Lord, behold, here are two swords. And He said to them, it is enough// (Luke 22:38). Being unable to explain these words himself, St. Cosmas crossed over the wilderness to the distant Lavra of Pirga, where dwelled the illustrious Abba Theophilus, to inquire of him. With great difficulty, St. Cosmas succeeded in reaching his goal. Theophilus explained to him: "The two swords signify the two-fold order of a God-pleasing life: deeds and visions, or labor and awakening the mind to godly thoughts and prayer. Whoever has both of these is perfect."
! CONTEMPLATION
To contemplate the ingratitude of the Jews toward God the Deliverer, and on God's punishment of them (Judges 13):
# How the sons of Israel, yet again, did that which is wicked before the Lord;
# How the Lord gave them over into the hands of the Philistines for forty years;
# How the ungratefulness of a liberated people toward God the Deliverer is punished by bondage under foreigners, even today.
! HOMILY
! About human ingratitude, unseen even among the animals
"The ox knoweth his owner and the ass his master's crib: but Israel doth not know, My people doth not consider" (Isaiah 1:3).
The ingratitude of man is most strongly exposed by the gratitude of animals. When the irrational ox knows who his master is, and when the ass knows from whose crib it is fed, how then can rational man not know about God, His Creator and Nourisher? The word "Israel" means "one who sees God." And every rational man should, by his rationality, be "one who sees God," and knows God, and feels the presence of God, and serves God as the meek and wonderful Jacob once did. But when rational man, whose entire dignity is in the knowledge of God, does not know God--when the "one who sees God" becomes blind toward God--then the dignity of the ox and the ass is raised above that of such a man. For oxen, without exception, recognize the master; and asses, without exception, recognize the one who feeds them; while among men there exists exceptions. There are men--very often leaders of men--who do not recognize their Lord or their Nourisher. In all of created nature, godlessness is a disease only among men; for godliness is the condition of normality and health only for men, and not for animals. Thus, godlessness is not the disease of animals but of men (alas, only of men!), for only they are destined to be "ones who see God" and, when they lose their godliness, they become poorer than the ox and the ass.
This is the vision of Isaiah, the son of Amos, the Prophet of God.
O God of meek Jacob, of Israel the enlightened one "who sees God," help us to maintain our human dignity--the dignity of one "who sees God"--so that, every day and every hour, we may know and recognize You with gratitude, as our Lord and Nourisher.
To Thee be glory and praise forever. Amen.
! THE SYNAXIS [ASSEMBLY] OF THE HOLY SERBIAN ENLIGHTENERS AND TEACHERS
Today we do not commemorate all the Serbian saints in general, but only several archbishops and patriarchs:
Saint Sava, the first Archbishop of the Serbs and Equal to the Apostles;
Arsenije (Arsenius), the successor to St. Sava, a great hierarch and miracle worker;
Saint Sava II, son of the First-crowned, King Stefan, who lived in Jerusalem for a long time and is called "like unto Moses in meekness" [refer to the Srbljak, the Service Book of the Serbian Saints];
Nikodim (Nicodemus), who lived a life of asceticism on the Holy Mountain [Athos], was abbot of Hilandar, and following that was Archbishop of all the Serbian and Coastal lands;
Joanikije (Joannicius), at first an archbishop, and then patriarch from 1346 A.D. to his repose in 1349 A.D.;
Ephraim, an ascetic who was elected patriarch against his will in the time of Prince Lazar in 1376 A.D., and who crowned Lazar king. After that, he resigned the patriarchal throne and retreated into solitude;
Spyridon, who was the successor to Ephraim, and who reposed in the year 1388 A.D.;
Makarije (Macarius), who renovated many ancient monasteries [Zaduzbine] and printed many ecclesiastical books in Skadar, Venice, Belgrade and other places. He also built the famous refectory in the monastery at Peć and labored much to advance the Church with the assistance of his brother Mehmed Sokolović, the Grand Vizier. Makarije died in the year 1574 A.D;
Gabriel, by birth a nobleman of the Rajić family, who participated in the Moscow Church council under Patriarch Nikon, for which he was tortured for treason by the Turks, and hanged in the year 1656 A.D.
With these we also commemorate Jevstatije (Eustace), Jakov, Danilo, Grigorije, Jovan, Sava III, Maxim and Nikon. Many of them lived a life of asceticism on the Holy Mountain [Athos], and all were meek and faithful servants in the vineyard of the Lord.
! SAINTS ALEXANDER, JOHN AND PAUL, PATRIARCHS OF CONSTANTINOPLE
Alexander participated in the First Ecumenical Council in Nicaea [325 A.D.], in place of the aged Patriarch Metrophanes. Afterward, he succeeded Metrophanes as patriarch. When certain philosophers wanted to debate with him about faith, he said to one: "In the name of my Lord Jesus Christ, I command you to be silent!" and the philosopher immediately became mute. By his prayers, also, Arius's life was shortened (see "Reflection" below). Alexander died at age ninety-eight in the year 340 A.D.
St. John the Faster governed the Church during the reign of the wicked Emperor Anastasius the acephalite heretic. He died in the year 595 A.D.
St. Paul IV governed the Church for five years and eight months, then resigned the throne and secretly received the Angelic Habit in order to repent for his sins, because he had earlier agreed with the iconoclasts. He was the predecessor of the great Tarasius, and died in the reign of Irene and Constantine in the year 784 A.D.
! THE VENERABLE CHRISTOPHER
Christopher was an ascetic of the sixth century in the community of St. Theodosius. In a vision he saw the lampadas (votive lamps) of diligent monks alight, and the lampadas of the slothful monks unlit.
! SAINT EULALIUS, BISHOP OF CAESAREA IN CAPPADOCIA
Eulalius was one of the predecessors of St. Basil. He defrocked his son of his priestly rank for wearing clothing unbecoming to his spiritual calling.
! HYMN OF PRAISE
! THE SYNAXIS OF THE HOLY SERBIAN ENLIGHTENERS AND TEACHERS
Men of God, Serbian saints,
Teachers wise and enlighteners,
Princes spiritual, glorious heroes,
Of the flock of Christ, most good shepherds,
God you served, and denied yourselves,
And beacons you were to your people;
You had divinity within you,
O God-bearing men,
From the Holy Trinity, receiving light.
Generously you received it and everywhere dispersed it.
Your labors bore miracles fruit.
In the footprints of Sava, you walked straight,
Throughout the Serbian land, spreading holiness,
Confirming faith in the Word of God.
In new raiment, you clothed souls,
And with beautiful churches, adorned the land.
O men of God, equal to the angels!
You were the angels of the Serbian people;
To glorify God, you taught them,
To worship the Savior, the Living Christ;
And you faithfully served the Holy Gospel.
In heaven, that is why the Lord glorified you,
And, as candles, before the Serbian people, set you:
That, living in heaven, you shine on earth
And lead your people in truth and justice.
As long as Serbia, your example, upholds,
By your prayers the Serbs, as a people, will live.
! REFLECTION
With clamor and disgrace the noisy heretics died. And their deaths themselves show God's wrath against them for their lies and for the disturbances they caused the Church of God. After he was condemned in Nicaea, Arius came to Emperor Constantine one day and begged him to be received into the Church again. The emperor asked Arius if he believed in the Nicaean Creed [Symbol of Faith]. Arius, the cunning one, kept the written form of his heretical confesion of faith in his bosom. Striking himself with his hand across his bosom, he said to the emperor: "Thus do I believe." The emperor thought that Arius had repented, and sent him to Patriarch Alexander to be received into the Church again. Patriarch Alexander was unwilling to receive Arius, knowing that he was a liar. Even so, the emperor designated a Sunday on which Arius was to be received back into communion, in the Great Church of Hagia Sophia. On the eve of that day, the holy patriarch prayed to God to receive his soul before the blaspheming heretic was received into the Church. When the Sunday of the appointed day dawned, the patriarch was at service in the church and Arius, with the emperor's men and his fellow heretics, set out for the church. When they arrived at the Square of Constantine, a pain--both bodily and spiritual--overcame Arius, and he looked for a place to relieve himself. There, in the square, was such a public place, and he went in. His escort waited a long time, and became impatient from waiting. When some of them went to see what was wrong with Arius, they found him dead in that foul place, with his intestines extruded outside his body in filth and blood.
! CONTEMPLATION
To contemplate the victories of David over the Philistines (2 Samuel 5 [also known as 2 Kings 5]):
# How the Philistines invaded David's land, and David prayed to God, and defeated the Philistines;
# How the Philistines invaded again, and David prayed to God, and defeated the Philistines again.
! HOMILY
! About the mysterious ancestry [generation] of Christ
"…And who shall declare His generation?" (Isaiah 53:8).
For the Jews, the ancestry of the Lord Jesus was hidden, like the hidden spring of a great river. They read and knew that the Messiah would be born in Bethlehem, and yet when He was born in Bethlehem they did not recognize Him. They knew that the Messiah would come from the lineage of David, and He was born of the lineage of David through His Most-holy Mother, but they did not recognize or acknowledge Him. They read that He would be born of a Virgin; that He would flee into Egypt; that He would be called out of Egypt; that His forerunner would appear before Him, //crying in the wilderness// (Mark 1:3); that He would shine as a great light in the darkness and shadow of the deadly lands of Zebulon and Naphthali--and all the rest that the prophets foretold and wrote as signs of His coming. Still, the Jews did not recognize or acknowledge Him, but crucified the King of Glory like a criminal.
If He were an ordinary man, would the prophet have delved into His ancestry and origin? Who else in the history of Israel had a hidden ancestry? Melchisedek! Such lineage was hidden from the Jews, and is always hidden from unbelievers; but from believers it is not hidden anymore. We know that Christ is "Light of Light, True God of True God, Begotten not made" [The Nicaean Creed]. That is Him in eternity. We know that "He was incarnate of the Holy Spirit and the Virgin Mary" [The Nicaean Creed], and that He appeared in the world as true God and true man. That is Him in time. His ancestry is wondrous, mysterious, glorious and majestic. When we say everything that was revealed to us about Him, nevertheless, we can still ask ourselves: //Who shall declare His generation?// Not because His ancestry is unknown, but rather because His ancestry is unreachable, incomprehensible, beyond our understanding, and above nature.
O Lord Jesus Christ our God, enlighten us by Your divine understanding, and raise us up to You by Your mankind-loving power.
To Thee be glory and praise forever. Amen.
! THE FEAST OF THE CINCTURE (GIRDLE) OF THE HOLY THEOTOKOS
After her Dormition [Falling-asleep], the Holy Theotokos gave her cincture [sash] to the Apostle Thomas. That cincture was later brought to Constantinople and kept in a sealed reliquary in the Church of the Mother of God at Blachernae, founded by the royal foundation [Zaduzbina] of Empress Pulcheria. This reliquary was not opened until the time of Emperor Leo the Wise (886-912 A.D.). Leo's wife, Empress Zoe, became mentally ill and, in accord with a heavenly vision, she desired that the girdle of the Most-holy Theotokos be placed on her. The emperor implored the patriarch, and the reliquary was opened. Then the girdle was removed and placed on the ailing empress. The empress was healed immediately. Today's feast was instituted in commemoration of that miracle. Currently, one part of the girdle is to be found in Zugdidi, Georgia, because the daughter of Emperor Romanus was healed by the aid of this girdle--and when her father married her to the Georgian Emperor Abuchaz, she took part of the girdle with her. By order of the Russian Emperor Alexander I, a special church was built in Mingrelia, in Zugdidi, where that relic of the miracle-working garment of the Most-holy Theotokos is kept.
! SAINT GENNADIUS, PATRIARCH OF CONSTANTINOPLE
Gennadius succeeded St. Anatolius as patriarch. He was a contemporary of St. Marcian (January 10) and St. Daniel the Stylite (December 11). During his time, the glorious Studite monastery was founded. It was named for the Roman Senator Studius, who came to Constantinople and, with the blessing of Patriarch Gennadius, built the Church of St. John the Forerunner and the monastery beside it. Gennadius was very gentle and restrained. He refused to ordain those who did not know the Psalter by heart. He presided at a local council in Constantinople, at which simony in the Church was anathematized. He worked miracles, and had a vision that foretold his death. Gennadius governed the Church for thirteen years, and peacefully presented himself to the Lord in the year 471 A.D.
! THE PRIESTLY-MARTYR CYPRIAN
Cyprian was born of unbelieving parents, and was himself educated in polytheism. He became famous in Carthage as a teacher of philosophy and rhetoric. He was married, but when he became a Christian he ceased to live with his wife, dedicating himself to the constant study of Holy Scripture and to spiritual perfection. Because of his unusual virtues, he was chosen as a presbyter and soon after that as a bishop. He was as merciful toward Christians as he was firm toward heretics. Guided by the Holy Spirit, he wrote many works of instruction. He wrote against idolatry, Judaism and the Novatian heresy with especial vehemence. Hi works on virginity are especially beautiful and sweet, as are also his writings on martyrdom, charity, patience, the Lord's Prayer and other edifying themes. He was martyred, and reposed in the time of Valerian, in the year 258 A.D. Before his death he prayed to God, blessed the people, and left twenty-five gold coins to be given to the executioner who would behead him--the astonishing greatness and generosity of a true Christian!
! SAINT JOHN, METROPOLITAN OF KIEV
John was a Bulgarian by birth. He came to Kiev in the year 1080 A.D. and immediately attained such esteem that he was soon elevated to the throne of the Metropolitan See. John governed the Church for eight years. He wrote an epistle to Pope Clement, in which he reprimanded him for the innovations that had been introduced by the Roman Church. He died peacefully in the year 1089 A.D.
! HYMN OF PRAISE
! THE HOLY PRIESTLY-MARTYR CYPRIAN
Adornment of the Church and pride of Carthage,
Before and after his repose, Cyprian the priest,
In word and deed, the faithful, he instructed,
The pure and chaste, especially praising.
"Chastity," said he, "is the sanctification of the members.
From the chains of passion, it is freedom,
And the source of purity, the adornment of morality!
It is the dignity of the body and the cincture of modesty;
Chastity is the peace of the home, the crown of harmony,
Chastity is silence, and the absence of tension.
When, from the body, the spirit of man retreats,
And, into its own realm, enters,
And knows the lasting consolation of inner peace,
It does not let the body intrude
With insane passions and varied desires,
Excessive cares and vapid luxuries.
For us, a bejewelled woman does not signify luxury,
But proclaims an impure soul and its sinfulness."
O golden freedom from vain desires--
Precious treasure of a saint!
Chastity is freedom, chastity is silence:
These are gifts from the Son of God!
O Son of God, O Good Lord,
Grant us the glory of chastity and freedom.
! REFLECTION
Christians do not believe in //kismet--//fate or destiny. Even if God determines the main outlines of our life, He can change them according to our prayers and merit. Thus, He prolonged King Hezekiah's life for fifteen years: //Go and say to Hezekiah, thus said the Lord, the God of David Your father, I have heard your prayer, I have seen your tears: behold I will add unto your days fifteen years// (Isaiah 38:5), and He prolonged the Venerable Dius's life (July 19) for fifteen years. St. Basil the Great prayed to God, and God granted that Basil's life be extended for one day so that he could baptize his physician, Joseph the Jew. Yet, even as God can prolong life at the prayerful behest of the righteous, He can also shorten life because of sin. Emperor Anastasius adhered to the heresy of the Severians (also called the acephalites, or "headless ones"), who spread the foolishness that the Church does not need bishops and priests, and insisted that everyone is a bishop and a priest unto himself, and that everyone has the right to interpret Holy Scripture according to his own understanding, and teach others as he understands and believes! In vain, St. John the Patriarch counseled the emperor to return to the truth of Orthodoxy. The emperor did not simply reject the patriarch's counsel, but ill-treated the patriarch in various ways and considered having him banished. One night, the emperor had a dream of an awesome man on an exalted throne, who held a book in his hand. This man opened the book, found the emperor's name in it, and said: "I have wanted to let you live for a while longer, but--because of your heresy--behold, I am erasing fourteen years from your life." And the awesome figure erased something from the book. Terrified, the emperor leaped out of bed and related his dream to his followers. A few days later, lightning struck the imperial court and killed Emperor Anastasius.
! CONTEMPLATION
To contemplate the David's rejoicing in the Lord (2 Samuel 6 [also known as 2 Kings 6]):
# How David transferred the Ark of the Covenant from Baal of Judah to Jerusalem, and how he danced with joy before the Ark;
# How Michal, his wife, despised David for dancing shamelessly before the Ark in the sight of women;
# How God punished Michal with barrenness for her capricious judgment, so that Michal had no offspring to the day of her death.
! HOMILY
! About the power and the mission of Christ, as prophesied by Isaiah
"The Spirit of the Lord God is upon Me, because the Lord has anointed me to preach good tidings unto the meek; He has sent Me to bind up the brokenhearted, to proclaim liberty to the captives and the opening of the prison to them that are bound; to proclaim the acceptable year of the Lord and the day of vengeance of our God" (Isaiah 61: 1-2).
The Lord Jesus read this great and detailed prophecy before the Jews in Nazareth, at the beginning of His saving work. Having read this, He sat down and said: //Today is this scripture fulfilled//(Luke 4: 16-21). Think of that: He read one of the most obscure prophecies for the Jewish scribes and priests, closed the book and said: //Today is this scripture fulfilled.// None of the Jews dared to approach this prophecy, for no one knew to whom this prophecy pertained. Seven centuries had passed since this prophecy was made, and no one knew to whom it pertained. And when that One [Christ]--about whom this prophecy was written--arrived, He read it and applied it to Himself. Thus our great Lord justified His prophet, and presented Himself to the world.
//The Spirit of the Lord is upon Me.// Why does He say that, when He is as equal to the Spirit as He is to the Father? As St. Chyrsostom interprets, it is for the sake of witnessing to the people. He does not say "The grace of the Spirit [is upon Me]," for the grace of the Spirit is upon all the faithful people, but the Spirit Himself is upon Him, as was manifested in the Jordan River. The Spirit is the witness of the Son, and the Son was never without the Spirit. The Lord Jesus often speaks of the Father and the Holy Spirit, out of infinite love for the Father and the Spirit (as love always ascribes its own to others), and for the sake of teaching the proud not to boast of their own qualities, but rather to honor those equal to themselves.
The Lord fulfilled everything else that was said in this wonderful prophecy, word for word. He came primarily to proclaim the mercy of God to men, and also to proclaim the Dread Judgment to those who would despise and reject that mercy.
This is the vision of Isaiah, the son of Amos, a prophet of God, the true prophet.
Brethren, let us venerate Isaiah, whose God-inspired mouth foretold the Savior and our salvation; and let us worship without ceasing our wonderful Savior, the Lord Jesus Christ.
We worship You, our Lord and Savior, and we give You thanks for Your omnisciently wise plan for our salvation.
To Thee be glory and praise forever. Amen.
! THE SEVEN HOLY YOUTHS OF EPHESUS
There was a great persecution of Christians during the reign of Decius. The emperor himself went to Ephesus, and there arranged a boisterous and noisy celebration in honor of the lifeless idols--as well as a terrible slaughter of Christians. Seven young men, soldiers, refrained from the impure offering of sacrifices. They earnestly prayed to the one God to save the Christian people. They were the sons of the most influential elders of Ephesus. Their names were Maximilian, Jamblicus, Martin [Martinian], John, Dionysius, Exacustodianus, and Antonin [Antoninus]. When they were accused before the emperor, they retreated to a hill outside of Ephesus called Celion, and there they hid in a cave. When the emperor learned of this, he commanded that the cave be walled shut. Yet, God--according to His far-reaching providence--caused a miraculous and long-lasting sleep to fall upon the young men. The imperial courtiers Theodore and Rufinus (themselves secret Christians) built a small copper box into the wall. It contained lead plaques on which were written the names of these young men, and which recorded their martyric deaths during the reign of Emperor Decius. More than two hundred years passed. During the reign of Emperor Theodosius the Younger (408-450 A.D.), there was a great dispute about the resurrection of the dead, and there were some that doubted in it. Emperor Theodosius was in great sorrow as a result of this dispute among the faithful, and prayed to God that He, in some way, would reveal the truth to men. Then some shepherds of Adolius, who owned the hill Celion, were building folds for their sheep, using stones from the cave. They removed stone after stone. Suddenly, the youths awoke from their sleep, as youthful and healthy as on the day they fell asleep. The news of this miracle was spread abroad in every direction, so that Theodosius himself came with a great entourage and conversed with the youths, to his delight. After a week, they again fell into the deep repose from which they had awakened, to await the General Resurrection. Emperor Theodosius wanted to place their bodies in gold caskets; but they appeared to him in a dream, and told him to leave them in the earth as they had been laid there.
! THE PRIESTLY-MARTYR COSMAS, EQUAL TO THE APOSTLES
Cosmas was born in Aitolia in the village of Megadendron (Large Tree). As a young man he went to Mount Athos, where he was tonsured a monk in the Monastery of Philotheou. However, driven by a constant desire to preach the Holy Gospel to the people, Cosmas went to Constantinople, where he asked the blessing of Patriarch Seraphim II. He visited the regions of the Danube, preaching the Gospel [Good News], but remained mostly in Albania, where he suffered at the hands of Kurt Pasha, whom the Jews had incited against Cosmas. The Turks strangled Cosmas and threw his body into a river, in the year 1779 A.D. His miracle-working relics repose in the village of Kalikontasi in the Church of the Holy Theotokos, not far from the town of Berat. Cosmas suffered for his Lord in the sixty-fifth year of his life.
! HYMN OF PRAISE
!
! THE SEVEN HOLY YOUTHS OF EPHESUS
!
When the last rays of the sun reddened the west,
The Seven Youths, to God, prayed
That on the morrow they might again find themselves alive and well;
But, before Emperor Decius, they were brought for torture,
And lay down to sleep a long, deep sleep.
Time passed with long strides.
One morning, in the east, the sun rose,
And the Seven, from their deep sleep, awoke.
Then Jamblicus, the youngest, to Ephesus ran
To see and hear and, about everything, ask:
Did Decius still hunt them for the slaughter?
And he went to buy bread for the Seven.
But behold the wonder: this is not the same gate!
And the city is completely different!
Everywhere are beautiful churches, domes and crosses!
Jamblicus asked himself: Are these not dreams?
No familiar faces; no kinsmen anywhere:
There are no persecutions; there are no martyrs!
"Tell me, brethren, the name of this city,
And tell me the name of the emperor who now reigns,"
Jamblicus inquired. The people, at him, looked,
And he was the object of much opinion!
"This city is Ephesus, now as before;
In Christ, now reigns Emperor Theodosius!"
The proconsul heard of this, as did the gray-haired bishop;
The whole city was perplexed, and all, to the cave, ran,
And, seeing the miracle, glorified God
And the resurrected servants of the risen Christ.
! REFLECTION
//Ask and it shall be given to you,// said the Lord (Matthew 7:7). As parents give to their children all that the children ask, and all that is for their benefit, so does God, the Lover of Mankind, give to men all that men ask of God, and what conducive to their salvation. As a monk on Mt. Athos, Cosmas asked two things of God: to preach the Gospel to the people, and to suffer as a martyr for the Faith. For an Athonite monk, who is bound by vows to his monastery, these two desires seem unattainable and unrealistic. But to God, everything is possible. God perfectly fulfilled both desires of Cosmas. The joy of Cosmas was indescribable, when he received the blessing of the patriarch--that he could leave Mt. Athos and go among the people to preach the Gospel [Good News]. Cosmas had a similar moment of joy when the servants of the Turkish Pasha informed him that, by the command of the Pasha, he must die.
Full of joy, the saint sank to his knees, thanking God for fulfilling even this desire. He gave up his body to death, and his soul to the Living God.
! CONTEMPLATION
To contemplate the miraculous announcement of the birth of Samson (Judges 13):
# How an angel of God appeared to Manoah and his barren wife, and announced that his wife would give birth to a son, who would deliver the people from slavery;
# How, for this, Manoah offered a sacrifice to God; and an angel ascended to heaven in the flame of the sacrifice;
# How even a barren woman can give birth, when God wills it.
! HOMILY
! About the sickness of apostasy
"The whole head is sick and the whole heart faint" (Isaiah1:5).
Brethren: God, the God of Sabaoth, is the Source of health. Go up into the heights of God--you whose heads are troubled by superfluous works, and still more by superfluous concerns--and be imbued with the health which comes from God, only from God. A sick head--those are the leaders and the elders of the people; and a faint heart--those are the people. The prophet presents an entire people as one body, and shows how, even with the body of a people, the same thing happens as with the body of a man. When one organ of the body is sick, that organ alone is sick; but the entire body feels faint because of the sickness of this one organ. So it was with the people of Israel: the head was sick, and from a sick head the heart became faint. The leaders and the elders of Israel abandoned the Law of God and followed their senses as their guides. They took their sensual minds, tarnished from various worldly influences, as their guides for a good life, instead of the Law of God. They fell into the hopeless darkness of idolatrous errors. And from the insanity of the head, the heart was faint. It is more difficult for the heart to separate from God than it is for the head; it is more difficult for a people to separate from God than it is for their leaders; but when the head remains sick for a long time, then the heart grows faint and yields. Because of the corruption of the leaders, a people finally strays from the path.
This is the vision of Isaiah, the son of Amos, the true prophet. Indeed, this is a true vision, both for then and now--for the people of Israel and for the people of today. Brethren, look at the people you know best--and judge for yourself, is the head sick and is the heart faint?
O Lord, true and just, enlighten the mind of every people with Your light, and strengthen with Your might the heart of every people--so that our enemies will not rejoice and say that You have abandoned us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR EUSIGNIUS
Eusignius served as a soldier under Emperor Maximian, Emperor Constantine the Great, and under Constantine's sons. He was present during the torture of the holy female Martyr Basiliscus [see May 22]. He saw myriads of angels, and the Lord Jesus Himself, as He received the soul of this holy martyr from the angels. Eusignius fought under Emperor Constantine and saw the heavenly Cross which appeared to the emperor. He served in the army for sixty full years, and during the reign of Constantine's sons he resigned from military service and settled in Antioch, the place of his birth. There he lived a God-pleasing life in fasting, prayer and good works. During the time of Julian the Apostate, two men who were arguing on the street asked him to be their judge. He dispensed justice to the correct one, and the man at fault became angry and went to the emperor, accusing Eusignius of being a Christian. The emperor summoned Eusignius to court, but Eusignius strongly denounced the emperor for his apostasy from the Faith and reproached him with the shining example of Constantine the Great. The enraged Julian ordered that he be beheaded. Eusignius was martyred at a ripe old age in the year 362 A.D. and took up his habitation in the Kingdom of Heaven.
! THE PRIESTLY-MARTYR FABIAN, POPE OF ROME
Fabian was a Roman by birth. He began as a village priest. Then, during a papal election, a white dove descended upon him, and he was chosen pope. Fabian was meek and kind. With great diligence, he gathered the bodies of the holy martyrs, buried them with honor, and built churches over their graves. In the same manner he built shrines and chapels in the caves where the martyrs hid during the time of bitter persecution. He baptized Emperor Philip and his son Philip, the heir to the throne; and, with the help of the baptized senator Pontius, he destroyed many idols and idolatrous temples. When the wicked Decius was crowned emperor, a terrible persecution of Christians began, during which St. Fabian suffered and was beheaded, in the year 250 A.D. Holy Fabian established the custom of consecrating Holy Myron [Chrism] on Holy and Great Thursday.
! THE HOLY MARTYR PONTIUS, THE SENATOR
Pontius was the son of Senator Marcus and his wife Julia. The barren Julia finally conceived, after twenty-two years of marriage, and gave birth to Pontius. He was baptized by Pope Pontian, as was his friend Valerius (who would become his biographer), and succeeded in converting his father Marcus, the Emperor Philip and his son, and many other distinguished Romans to the Christian Faith. As a senator, he greatly protected and assisted the Church; he was a good friend of Pope Fabian. When the persecution began under Decius, Pontius fled from Rome and hid in the foothills of the Alpine mountains [Cimella Cimez, France]. During the reign of Valerian he was captured and subjected to harsh tortures, during which many miracles of God were manifested, and many souls converted to Christ. Many Jews there cried out to the judge: "Kill him, kill him immediately--this magician." To this, St. Pontius raised his hands to heaven and said: "I thank You, my God, that the Jews cry out against even me--as their fathers once cried out against Christ: 'Crucify Him, crucify Him.'" Pontius was beheaded in the year 257 A.D., and was buried by his friend Valerius.
! SAINT NONNA
Nonna was the mother of St. Gregory the Theologian. As a Christian, she possessed powerful and miracle-working prayer. By her prayer to God, she converted her husband from heathen foolishness to the Christian Faith. Her husband Gregory later became the bishop of the town of Nazianzus. By prayer, Nonna saved her son Gregory the Theologian from a storm. She died peacefully as a deaconess, in the year 374 A.D.
! HYMN OF PRAISE
!
! THE HOLY MARTYR PONTIUS
!
Pontius, with his companion Valerius, walked,
But, with sorrow, his heart was overcome.
His father and mother were both Roman senators,
But a bitter enigma tormented his soul;
All worldly wisdom, a fable, to him seemed.
"Oh, where is truth?" he asked. Truth, he sought.
Thus, both walked, absorbed in thought,
At eventide, beside a Christian church.
They went in and saw the splendor;
They saw the splendor and heard the chanting:
"Silver and gold, the gods of the nations are;
Eyes have they, but are blind as clay;
And ears have they, but are deaf as a stone;
And mouths have they, but cannot speak.
Weaker than themselves, the weak ones created gods,
And thus they become like their creations--
One after the other, in bowing down to them,
And haviong foolish hope in lifeless things!"
The two sorrowful young men, two slaves of the idols,
Heard these words and trembled;
Then, to the icon of Christ, they came closer,
And to the honorable priest, entrusted their hearts.
The truth Faith to them, the priest revealed,
And showed them that idolatry is meaningless and bloody.
Into the church walked, the two young noblemen,
Though renowned and respected throughout Rome.
Into the church they went, downcast and sorrowful,
But emerged radiant and joyful.
! REFLECTION
This is how Valerius begins the biography of his companion, St. Pontius: "Who can believe, if God does not grant it? Who can lead a life of asceticism, if the Lord does not help? Who can receive the wreath of martyrdom, if Christ does not give it?" God can do all, and God wills all that is for the salvation of men--if only men pray to Him. By prayer, St. Nonna converted her husband Gregory and her son Gregory (who would become known as the Theologian) to Christianity. By prayer, Monica brought Augustine out of a wayward life, to the path of good works and faith. By prayer, St. Basil converted his teacher Evulios. By prayer, King Hezekiah prolonged his life for fifteen years. By prayer, St. Simeon the Stylite turned back the Persians and Scythians from attacking the land of Greece with an army already prepared. All the stars in the heavens could be more easily counted than all the miracles worked on earth by prayer.
! CONTEMPLATION
To contemplate the miraculous strength of Samson (Judges 14):
# How the Spirit of the Lord came upon him, so that he was able to tear lions apart with his hands, and was able to snap the rope by which he was bound, and was able to slay many Philistines;
# How the Spirit of the Lord withdrew from him when he confided the secret of his strength to a heathen woman [Delilah] and was then slain [Judges 16].
! HOMILY
! About how God cleanses repentant sinners
"Though your sins be like scarlet, they shall be as white as snow; though they be red like crimson, they shall be as wool" (Isaiah 1:18).
Oh, the boundless mercy of God! In His greatest wrath upon the faithless and ungrateful people, upon the people //laden with iniquity, a seed of evildoers, children that are corrupters//(Isaiah 1:4), as //princes of Sodom// (Isaiah 1:10), and upon the people who have become as the //people of Gomorrah// (Isaiah 1:10): in such wrath, the Lord does not abandon mercy but rather calls them to repentance--just as, after terrible lightning, a gentle rain falls. Such is the Lord--long-suffering and full of mercy: //neither will He keep His anger forever// (Psalm 103:9). Only if sinners cease to commit evil, and learn to do good, and turn to God with humility and repentance, will they become //white as snow.// The Lord is mighty and willing. No one but Him is able to cleanse the sinful soul of man from sin, and by cleansing to whiten it. No matter how often linen is washed in water with ashes and soap--no matter how often it is washed and rewashed--it cannot achieve whiteness until it is spread under the light of the sun. Thus, our soul cannot become white, no matter how often we cleanse it by our own effort and labor, even with the help of all the means of the Law--until we, at last, bring it to the feet of God, spread out and opened wide, so that the light of God may illumine and whiten it. The Lord condones and even commends all of our labor and effort. He wants us to bathe our soul in tears, to wring it out by repentance, to press it by the pangs of the conscience, and to clothe it with good deeds. After all of this, He calls us to Him: //Come now,// says the Lord, //and let us reason together// (Isaiah 1:18). That is, "I will look at you, and I will see if there is Me in you; and you will look upon Me, as in a mirror, and you will see what kind of person you are."
O Lord, slow to anger, have mercy on us before the final wrath of that Dreadful Day.
To Thee be glory and praise forever. Amen.
! THE TRANSFIGURATION OF OUR LORD, GOD AND SAVIOR JESUS CHRIST
In the third year of His preaching, the Lord Jesus often spoke to His disciples of His approaching passion, and also of His glory following His suffering on the Cross. So that His impending passion would not totally weaken His disciples, and so that no one would fall away from Him, He, the All-wise, wanted to show them a portion of His divine glory before His passion. For that reason, He took Peter, James and John with Him and went by night to Mt. Tabor, and was there transfigured before them: //And His face shone as the sun and His garments became white as snow//(Matthew 17:2). Moses and Elias [Elijah], the great Old Testament prophets, also appeared beside Him. Seeing this, His disciples were stunned. Peter said: //Lord, it is good for us to be here: if You will, let us make here three tabernacles; one for You, one for Moses and one for Elias// (Matthew 17:4). While Peter still spoke, Moses and Elias departed, and a bright cloud overshadowed the Lord and His disciples, and there came a voice from the cloud saying: //This is my beloved Son, in whom I am well pleased; hear Him// (Matthew 17:5). Hearing the voice, the disciples fell face down on the ground as though dead, and remained that way, prostrate in fear, until the Lord came to them and said: //Arise, and be not afraid// (Matthew 17:7). Why did the Lord take only three disciples onto Tabor, and not all? Because Judas was not worthy to behold the divine glory of the Teacher, Whom he will betray; and the Lord did not want to leave him alone at the foot of the mountain, so that the betrayer would not, because of this, justify his betrayal. Why was our Lord transfigured on a mountain and not in a valley? So as to teach us two virtues: love of labor and godly-thoughts--for climbing to the heights requires labor, and the heights themselves represent the elevation of our thoughts to the things of God. Why was our Lord transfigured at night? Because the night is more suitable than the day for prayer and godly-thoughts; and the night, by its darkness, conceals all the beauty of the earth, and reveals the beauty of the starry heavens. Why did Moses and Elias appear? In order to destroy the Jewish fallacy that Christ was one of the prophets--Elias or Jeremiah or some other. That is why He appeared as a King, above the prophets, and that is why Moses and Elias appeared as His servants. Until then, our Lord had manifested His divine power many times to the disciples; but on Mt. Tabor He manifested His Divine Nature. This vision of His Divinity, and the hearing of the heavenly witness to His being the Son of God, must have served the disciples in the days of the Lord's passion--in the strengthening of a steadfast faith in Him and in His final victory.
! HYMN OF PRAISE
!
! THE TRANSFIGURATION OF OUR LORD, GOD AND SAVIOR JESUS CHRIST
Where Israel defeated Sisera,
There also, did deign to go, the Heavenly King,
To pray in nightly vigils,
The glory of His Transfiguration, to manifest,
And the faith of His followers, to confirm
In His eternal victory as Victor.
There, with divine light, He shone forth,
Dispelled the thick darkness, and illuminated Tabor.
The Light, long concealed within Himself,
Which He had shed upon the world in brief flashes,
In abundant rays, now burst forth--
Joyful rays, sweet rays--
The brilliance of His humanity, to reveal to heaven,
And to reveal to earth and men the truth of His Divinity.
Let heaven, its Messenger, see;
Let the earth recognize God, the Savior.
! REFLECTION
Why did our Lord not manifest His divine glory on Tabor before all the disciples instead of before three of them? First, because He Himself gave the Law through the mouth of Moses: //At the mouth of two witnesses or at the mouth of three witnesses, shall the matter be established//(Deuteronomy 19:15). Therefore, three witnesses are sufficient. These three witnesses represent three main virtues: Peter--Faith, for he was the first to confess his faith in Christ as the Son of God; James--Hope, for, with faith in the promise of Christ, he was the first who laid down his life for the Lord, being the first to be slain by the Jews; John--Love, for he reclined on the bosom of the Lord, and remained beneath the Cross of the Lord until the end. God is called not the God of many, but rather the God of the chosen. //I am the God of Abraham, the God of Isaac and the God of Jacob// (Exodus 3:6). God often valued a faithful man more than an entire nation. Thus, on many occasions, He wanted to destroy the entire Jewish nation, but because of the prayers of righteous Moses, He spared that nation so that it could live. God listened more to the faithful Prophet Elias than to the entire unbelieving kingdom of Ahab. Because of the prayers of one man, God saved towns and people. Thus, the sinful town of Ustiug would have been destroyed by fire and hail, had it not been saved by the prayers of the one and only righteous man in it, St. Procopius, the Fool-for-Christ (July 8).
! CONTEMPLATION
To contemplate the providence of God, which rewarded the virtue of Ruth and Boaz (The Book of Ruth):
# How Ruth, being left a widow, remained faithful to Naomi, her aged mother-in-law, and how by her labors she fed both Naomi and herself;
# How the wealthy Boaz was merciful, and helped these two poor women;
# How Boaz and Ruth entered into marriage, from whom was born Obed, the father of Jesse, who was the father of David.
! HOMILY
! About the exaltation of the Church of God
"And it shall come to pass in the last days, that the mountain of the Lord's house shall be established in the top of the mountains and shall be exalted above the hills; and all nations shall flow into it" (Isaiah 2:2).
This prophecy pertains to the Church of Christ. Although this prophecy must have seemed mysterious to the Jews before Christ, it is completely clear for us today. The mountain, or heights, of the house of the Lord is truly established //in the top of the mountains--//in the heights of the heavens--for the Church of Christ is primarily sustained not by the earth, but rather by the heavens; and one part of the membership of the Church (and by now, a greater part) is to be found in heaven, while the other part is still on earth.
Further, the Church of Christ is //exalted above the hills//--above all earthly and human greatness. Human philosophy and art, and all the cultures of people, as well as all earthly values, represent only the low hills in comparison to the infinite heights of Christ's Church. For it was not difficult for the Church to create all of those hills; while not one of them, nor all of them together, even in the course of many thousands of years, could create the Church.
Finally, the prophet says: //All nations shall flow into it.//Truly, up to now, into what have all the nations flowed, if not into the Church of Christ? The Temple of Jerusalem was inaccessible to the Gentiles under the penalty of death. However, the Church has called all nations on earth unto itself from the very beginning--obedient to the command of the Lord: //Go ye therefore and teach all nations// (Matthew 28:19).
This is the vision of Isaiah, the son of Amos--a vision from afar, a vision truthful and wonderful.
O Wonderful Lord, we give You unceasing thanks that You have made us worthy to be the children of Your Holy and True Church, that is exalted above all the worldly heights.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MARTYR DOMETIUS
Dometius was born in Persia as a pagan during the reign of Emperor Constantine. He became acquainted with the Christian Faith as a young man, abandoned paganism, and was baptized. So much did Dometius love the True Faith that he left every worldly thing and was tonsured a monk in a monastery near the town of Nisibis. He lived for some time among the brethren, and then withdrew to a life of silence with the elder, Archmandrite Urbel (who is said to have not eaten only cooked food for sixty years). Elder Urbel ordained Dometius a deacon, and when he wanted to compel him to receive the rank of a priest, Dometius withdrew to an isolated mountain and settled in a cave. He attained such a high degree of perfection through fasting, prayer, all night vigils and godly-thoughts that he miraculously cured the sick. When Julian the Apostate came to those regions, he heard of Dometius and sent men to seal him up alive in a cave, with two of his disciples. Thus, this saint of God died and took up his habitation in the Kingdom of God in the year 363 A.D.
! THE VENERABLE OR, HERMIT OF THE THEBAID
Or attained great perfection through the greatest asceticism. When he firmly established himself and attained holiness in solitude, he gradually established several monasteries, and was a superb spiritual leader and teacher of many monks. Rufinus, who visited him, describes Or in the following way: "In appearance, he resembled an angel of God--a ninety-year old elder with a long beard, as white as snow. His outward aspect was wonderful. His gaze shone with superhuman radiance." Often he saw the angels of God. He especially endeavored never to speak an untruth. He had great temptations from the demons but overpowered them all, soberly and courageously. He received Holy Communion daily. On one occasion, one of his disciples reminded him that the Feast of the Resurrection had come, and that it should be celebrated. Hearing this, Or came out, raised his hands to heaven and spent three days in prayer without rest. He explained to his disciple: "For the monk, this is the celebration of the Resurrection of Christ: to elevate his mind and to unite it with God." He rested in deep old age in about the year 390 A.D.
! THE HOLY MARTYRS MARINUS AND ASTERIUS
Marinus was a soldier and Asterius was a Roman senator. At the time of Emperor Gallienus, St. Marinus served as a soldier in Caesarea in Palestine. Marinus was beheaded for the sake of the Christian Faith. Asterius, the senator, also a Christian, was present at his martyrdom. He removed his toga [dolman] and wrapped the body of the martyr in it. He then carried the body on his shoulders and honorably buried it. Seeing this, the pagans beheaded him also. They both died honorably for Christ in about the year 260 A.D.
! THE VENERABLE POEMEN, THE MUCH-AILING
Since his youth, Poemen was both sickly and desirous of the monastic life. Brought to the Lavra of the Caves in Kiev for healing, he remained there until his death. Poemen prayed to God more for sickness than for health. At night, angels appeared to him and tonsured him a monk. They also informed him that he would be ill until his death and that just before his death he would become healthy. And so it was. Poemen was bedridden for twenty years. He worked miracles during his lifetime, and possessed a rare gift of clairvoyance. Just prior to his death, he rose from the bed completely whole, and immediately prepared a grave for himself. He rested in the Lord in the year 1110 A.D.
! THE PRIESTLY-MARTYR NARCISSUS, PATRIARCH OF JERUSALEM
Narcissus was beheaded at the time of Antoninus, in the year 213 A.D., being one hundred sixteen years of age.
! HYMN OF PRAISE
!
! SAINT OR, HERMIT OF THE THEBAID
!
To the honor and glory of monks,
Chief among monks, Or, the all-wise Abba,
With great labor and many sighs
Of a true monk, reached the perfection.
Give us a word, they once begged him!
"Never tell a lie, speak the truth.
I know a man who never swore,
Never lied, never wished evil to another."
Having replied, the elder was silent.
Then holy Sisoes asked Or:
"Give me, Father, some instruction."
"Live," Or said to him, "as you see me live!"
"Tell me more clearly, how should I see you?
Does every man, a secret in himself, hide?"
Or spoke again: "Behold, to you I speak:
Of all God's creations, myself I consider the worst."
Paul, his disciple, Or taught in this way:
"From every sin you will easily flee,
If only from evil conversation you will flee,
For, from this evil, every other sin sprouts.
To the soul of man, evil conversation is death;
Every good seed in the heart, it smothers.
One more thing will I say, and let it be enough:
All vain thoughts, repel; iniquitous desires, repel;
From material cares, distance yourself,
And, my son, the immaterial you will attain."
! REFLECTION
Neither concern yourself about the righteous nor envy the sinner. Always remember that the Lord Jesus Christ, by His Resurrection, triumphed over a shameful death--and that Herod, Judas, Nero, Julian the Apostate, Valerian, Leo the Armenian, and other opponents of Christ destroyed their own successes and victories forever, by their shameful deaths. Envious ones slandered St. Narcissus the patriarch, spreading rumors that he had lost his chastity. The innocent Narcissus withdrew into the wilderness. He spent many years in silence and patiently waited for God to do His will. Three patriarchs succeeded him before witnesses came forward to clearly prove his innocence. Then everyone forced him to return from the wilderness to the patriarchal throne. Thus, God justifies the righteous. The bloody Emperor Valerian, with satanic passion, murdered Christians throughout the entire civilized world [Roman Empire]. How did he end his days? He was defeated in battle and enslaved by the Persian king, Sapor. Sapor did not desire to kill him immediately, but used him as a mounting block whenever he mounted a horse. Every day, King Sapor's servants brought Valerian along with the horses, and Sapor enjoyed placing his foot on the neck of the Roman emperor in order to make it easier for him to mount the horse. He who sows evil seed reaps an evil harvest.
! CONTEMPLATION
To contemplate the mercy of God toward the barren Hannah, the mother of Samuel (1 Samuel 1 [also known as 1 Kings 1]):
# How Hannah was barren, and in her sorrow implored God that she be enabled to bear a son, promising to dedicate him to God;
# How God heard the prayers of Hannah, and she gave bore a son, and named him Samuel (bidden of God);
# How Hannah brought Samuel to the Temple and dedicated him to God.
! HOMILY
! About the new Law from Zion
"For out of Zion shall go forth the law, and the word of the Lord from Jerusalem" (Isaiah 2:3).
The prophet speaks of a new Law and of a new Word. The old Law was given on Sinai; the new Law would come from Zion. The old Law was given through Moses; the new Law would be brought by the Lord Christ Himself. The former was intended in the beginning only for the Jews, and the latter would be for all people--all of mankind. Even though these words of the prophet are clear to us, the Jews could not understand them; nor do they understand them today. The meaning of these words is closed to them because of their stony hearts. To whom do they [the Jews] apply these words? To no one. How do they interpret these words? They do not. They pass by these words as a blind man passes by an open door. If they were able to comprehend these words, would they have acted in the manner they did with the prophet and the prophesied One [Christ]? Would they have sawn Isaiah asunder, and crucified Christ on the Cross?
The Jews considered the Law of Moses to be the one, final Law of God. That is why they were unable to comprehend the prophecy of the new Law from Zion, from the House of David, for David glorified Zion. But if the Jews did not know that the new Law would be revealed through the old Law, we Christians know that we comprehend the old Law through the new. The Jews had a tree without fruit, but we have the tree and the fruit. They had an image without reality, but we have both image and reality. They adhered only to promises (and those they understood incorrectly), but we have the promises and their fulfillment.
O most wealthy Lord, Who has enriched us with Your spiritual Law and Your life-giving Word, You only do we worship, and to You only do we pray. Grant us wisdom and power to live according to Your Law and to uphold Your holy Word, so that we may not become poor before You, Who has made us rich!
To Thee be glory and praise forever. Amen.
! SAINT EMILIAN THE CONFESSOR, BISHOP OF CYZICUS
Emilian served as bishop in Cyzicus, during the reign of the nefarious Emperor Leo the Armenian, the iconoclast. Since he did not want to submit to the decrees of the emperor,which demanded the removal of icons from the churches, Emilian and other Orthodox bishops were sent into exile. He spent five years in exile, enduring much pain and humiliation for the sake of Christ. Emilian died in the year 820 A.D. and took up his habitation among the citizens of heaven.
! SAINT MYRON, MIRACLE-WORKER AND BISHOP OF CRETE
Myron, a married farmer, joyfully and abundantly distributed the fruits of his land to needy people. Once he encountered strangers and thieves stealing wheat from his threshing floor. Not telling them who he was, St. Myron helped the thieves fill the sacks, lift them on their backs, and escape. Because of his exceptional virtue, Myron was ordained a presbyter and afterward consecrated a bishop. He was a great miracle-worker and performed many good and mighty works in the name of the Lord Jesus. Myron died sometime close to the year 350 A.D., in the hundredth year of his life.
! THE VENERABLE GREGORY THE SINAITE
Gregory is called "the Sinaite" because he received the monastic tonsure on Mount Sinai. During the reign of Emperor Andronicus Palaeologus (about the year 1330 A.D.), he arrived at Mt. Athos to visit the monasteries and to learn more, if possible, about the practice of mental prayer and contemplation. At that time, however, these two forms of spiritual practice were almost unknown among the holy Athonites. The only one who knew them--and practiced them to perfection--was St. Maximus of Kapsokalyvia. Gregory spread his understanding about mental prayer through all the cells and monasteries on Mt. Athos. His most distinguished disciple there was Kallistos, Patriarch of Constantinople, who would later write the biography of St. Gregory. After this, Gregory crossed over to Macedonia and to other Balkan regions, and established communities in which the monks practiced mental prayer. Thus he assisted many in the deepening of their prayer, to their salvation. His writings about mental prayer and asceticism can be found in the book "Dobrotoljublja: //The Philokalia//." Among other things, he wrote the hymn to the Holy Trinity "It is meet and right," which is sung at the Sunday Midnight Service. Gregory was one of the most eminent ascetics and spiritual teachers of the Balkans. He died peacefully after a long and laborious life, and took up his habitation in the Kingdom of God.
! THE HOLY NEO-MARTYRS TRIANDAPHYLLOS AND SPASO
Triandaphyllos was born in Zagora, and Spaso was born in Radoviste, in the Diocese of Strumica. They were both Slavs, and both were young, simple men--but their love for Christ was more precious to them than this world or this life. They gave their lives and did not betray Christ. They suffered at the hands of the Turks for the Christian Faith: Triandaphyllos, in Constantinople, in the year 1680 A.D.; and Spaso, in Thessalonica, in the year 1794 A.D.
! THE HOLY MARTYR GORMIZDAS
Gormizdas was a nobleman at the court of the Persian Emperor Yezdegeherd. The emperor confiscated his rank and property, and sent him to tend livestock, because he would not deny his Christian Faith. The emperor hoped that Gormizdas would pine so badly for his rank and property that he would soon worship the idols. However, Gormizdas peacefully tended the livestock and kept his faith. For that, the emperor subjected him to cruel tortures that exhausted the body of Christ's martyr but could not alter his spirit. Finally, Gormizdas was slain, in the year 418 A.D., immediately after the martyrdom of St. Abdus the bishop (March 31). Gormizdas was martyred on earth, and glorified in heaven.
! HYMN OF PRAISE
!
! SAINT GREGORY THE SINAITE
!
The wise Sinaite taught the monks,
And, by his own example, confirmed his teachings:
"Passionlessness is the Promised Land,
And, by the Spirit, the passionless soul is illumined.
A man will be devoid of thoughts
When, through prayer, his mind rests in the heart.
Of all passions, sinful thoughts are the forerunners
Which, in the power of demons, hold the soul.
We are all sick, and the Physician's medicine is ready,
For our healing, and our health.
The name of Jesus, in your heart, speak,
And it will, like fire, consume the passions!
Let that powerful name, with heavenly brightness,
Move in your heart with every breath.
If, in your heart, you do not have the Lord Jesus,
All other ascesis remains like water.
Only Jesus, within me, is able
To turn the water of my being into true wine.
As in a nest, rest your whole mind in your heart,
And glorify Jesus by ceaseless prayer.
'Lord Jesus Christ, have mercy on me, a sinner!'
Let the prayer be slow, not hurried,
Until the heart, from prayer, bursts into flame;
Then the mind will gaze upon heaven, and forget about the earth."
! REFLECTION
Moses spoke to the sons of Israel: //I have set before you life and death, the blessing and the curse. Choose life…that you may live// (Deuteronomy 30:19). There are some decisive moments in the life of men when indeed it is left to man to choose between life or death. Judas, in a decisive moment, was corrupted by greed for silver, and he chose death--the sin of avarice. When the general wanted to elevate Marinus the soldier (August 7) to the rank of an officer [centurion], envious men denounced him as a Christian. The general permitted him only three hours to contemplate, and to choose between life or death: either to deny Christ or to die. Marinus, hearing the words of his superior, went to the local bishop, Theotechnus, and asked him for advice. The bishop led Marinus into the church, stood him before the Gospel, and pointed--at first to the Gospel, then to the sword that hung from Marinus's waist--and said to him: "Choose, courageous man, one of these two. Either wear the sword and serve the earthly king temporarily and, after death, be lost eternally; or become a soldier of the Heavenly King, and lay down your life for His Holy name, written in this Book, and reign with Him in eternal life." Marinus immediately decided, kissed the Holy Gospel and departed, through death, into life eternal.
! CONTEMPLATION
To contemplate the miraculous appearance of God to the child Samuel (1 Samuel 3 [also known as 1 Kings 3]):
# How one night, when Samuel was lying down, the Lord called him three times by name;
# How the Lord told Samuel of the condemnation of the House of Eli [Heli] (because of the corruption of the sons of Eli) and of the condemnation of all of Israel;
# How the Lord did not want to appear either to Eli the high priest, or to his sons, but rather to Samuel, an innocent child.
! HOMILY
! About the peace-making of Christ
"And they [the people] shall beat their swords into plowshares and their spears into pruning hooks; nation shall not lift up sword against nation, neither shall they learn war anymore" (Isaiah 2:4).
How clearly the prophet saw Christ the Peacemaker! The prophet elucidated, one by one, the merits of the Savior. First, the prophet revealed Him as the Lawgiver of the new Law, a law for all the peoples on earth. Then the prophet illustrated His exaltedness above all heights, earthly and historical. In the passage we see above, the prophet shows Him to be the Peacemaker, whose power and love will beat swords into plowshares, and spears into pruning hooks. Has this great prophecy of peace been fulfilled? Yes, it has, in spite of the fact that wars still exist. Behold, wars among Christian peoples are not the same as wars among pagans. Pagans fight with pride, while Christians fight with shame. Pagan faiths give only warriors access to their heavens, while the Christian Faith promises heaven to the saints. As Christians sometimes commit other pagan sins by their weakness, so they also commit the sin of waging war. However, God examines the heart and knows with what disposition the pagans sin, and with what disposition the Christians sin. The Pharisees denied Christ, and Peter also denied Him. But the Pharisees denied Him with unrepentant malice, while Peter denied Him with shame, only to repent and confess Him anew.
Brethren, what can we say concerning the swords and spears of passions, by which we kill our souls and the souls of our fellow men? Oh, when will we beat those swords into plowshares that deeply plow the souls, and sow the noble seed of Christ in ourselves! And when will we beat the spears into pruning hooks, to harvest the tares in our souls and burn them! Only then will the peace of Christ take up abode in our souls, just as it abode in the souls of the saints. Who, then, would even think about war against his neighbors or against neighboring peoples?
Oh, how wondrous is the vision of Isaiah, the son of Amos, the prophet of God!
O Lord, beat the weapons of war within us into instruments of peace by the fire of Your word.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE MATTHIAS
Matthias was born in Bethlehem, of the tribe of Judah. He studied with St. Simeon the God-receiver in Jerusalem. When the Lord went out to preach about the Kingdom of God, Matthias joined the others who loved the Lord--for he himself loved Him with all his heart, and heard His words and witnessed His works with delight. Initially Matthias was numbered among the Seventy Lesser Disciples of Christ. However, following the Resurrection of the Lord, the place of Judas being empty, the apostles drew lots and thus chose Matthias as one of the Twelve Great Apostles: //And they appointed two, Joseph called Barsabbas, who was surnamed Justus and Matthias. And they prayed and said: "You Lord, who knows the hearts of all men, show which of these two You have chosen, that he may take part of this ministry and apostleship from which Judas by transgression fell that he might go to his own place! "// (Acts 1:23-26). Receiving the Holy Spirit on Pentecost, Matthias set out to preach the Gospel--first in Judea, and then in Ethiopia, where he endured great tortures for the sake of Christ. It is held that he preached throughout Macedonia, where they wanted to blind him; but he became invisible to his torturers, and thus escaped danger. The Lord appeared to him in prison, encouraged him, and freed him. Finally, he returned again to his work in Judea. There he was accused and brought to court before the high priest Ananias, before whom he fearlessly witnessed Christ. Ananias (the same who had slain the Apostle James) condemned Matthias to death. They led Matthias out, stoned him, and then decapitated him with an axe. (This was the Roman manner of killing a person who was sentenced to death, and the hypocritical Jews applied this method to Matthias, to show the Romans that he had been an enemy of Rome.) Thus this great apostle of Christ died, and took up his habitation in the eternal joy of his Lord.
2. THE HOLY MARTYR ANTHONY!
Anthony was a citizen of Alexandria. Brought before the pagan prince, he freely confessed his faith. He was tortured, flogged and scrapped with sharp blades, but he would not deny Christ. He was then thrown into a fire, yet he spoke to the people from amidst the flames: "My beloved brethren, do not be a slave to the body--rather, concern yourself more about the soul, which is given to you by God and is kindred to God and to the heavenly hosts." And so, instructing his people and burning in the fire, Anthony gave up his holy soul to God.
3. THE HOLY MARTYRS JULIAN AND MARCIAN AND OTHERS WITH THEM!
In the defense of icons, they all suffered at the hands of the wicked Emperor Leo the Isaurian in the year 716 A.D., and were crowned with unfading glory.
HYMN OF PRAISE
!
!
SAINT MATTHIAS THE APOSTLE
!
!
Matthias the Apostle spoke of Christ
And openly witnessed to the Jews:
"He is that Messiah of Whom the Scripture writes;
He is the Son of God, Who came down from on High;
He is the Word of God, Divine Hypostasis.
About Him the prophets clearly spoke!
Moses prophesied: 'God will raise up a Prophet
Like unto me from amidst your people;
And his radiance will shine among you.'
King David said: 'All the generations of the earth,
By Him, will be glorified and blessed.'
Courageous Isaiah, to heaven in spirit, flew up,
And saw and said: 'A virgin shall conceive
And bear a Son, and shall name Him
Emmanuel,' meaning //God is with us.
//
Jonah was a figure of His burial--
As he prefigured the burial, so too the resurrection:
As Jonah, in the belly of the whale for three days, lay,
And was again, by God, vouchsafed life.
The prophecies have been fulfilled, the shadows have passed away,
The promised words have been realized in the flesh!"
But in vain does an awakened man speak to one who sleeps:
He who sleeps through the day, does not believe in the day.
REFLECTION!
One form of martyrdom--and a sign of one's overwhelming love for one's fellow man--is to take another's sin upon one's self. As death is the consequence of sin, to take another's sin on one's self means: to add to your own death still another death, //And sin, when it is finished, brings forth death// (James 1:15). However, God rewards with resurrection those who, out of love, take another's death upon themselves. There are many examples of the saints taking upon themselves the sins of their fellow men. Thus, it is said of St. Ammon: A brother came to Ammon and confessed that he had fallen into sin, and because of the sin he committed, he felt he had to leave the monastery and return to the world. Ammon told that brother that he would take the brother's sin upon himself, and counseled him to remain in the monastery. The brother remained in the monastery, and Ammon was steadfast in offering repentance and prayers to God. After a short time, Elder Ammon received a revelation from God--that the sinwais forgiven because of Ammon's love for the brother. When St. Macarius, St. Simeon the Fool-for-Christ, St. Theodora and others were accused of promiscuity, they did not defend themselves, but, taking upon themselves the sin of others, received the weighty [and unjust] punishment for sin, and patiently endured everything, until God revealed their innocence to men.
CONTEMPLATION!
To contemplate the punishment of God upon the people of Israel for the sins of the sons of Eli, the judge and high priest (1 Samuel 4 [also known as 1 Kings 4]):
# How the sons of the high priest [Hophni and Phinehas] sinned openly in Shiloh, and also secretly before the Ark of the Covenant;
# How God gave the Philistines victory over Israel, and many thousands of Israelites were slain, including the sons of the high priest; and the Ark of the Covenant was seized;
# How, because of the sins of the elders of the people, God sent suffering on the entire nation.
HOMILY!
About the nothingness of the sinful before the majesty of God!
"Enter into the rock and hide thee in the dust, for the fear of the Lord and for the glory of His majesty" (Isaiah 2:10).
This is a bitter derision of an idolatrous Israel by the prophet. The people had rejected the faith in the one true God, and worshiped idols of stone and earth. "What will you do, O evil people, when //the fear of the Lord//appears? Where will you flee, when //the glory of His majesty// appears? Flee into the rocks from which you have made a god for yourselves! Flee into the dust, from which you have made a god for yourselves!" Oh, what a terrible mockery by this discerning prophet! Who can enter into a rock and hide himself? Who can flee into the dust and conceal himself from the Most High?
However, brethren, let us leave the idolatry of the Jews--for which they have been punished enough--and, for a moment, let us look at the idolatry among us Christians. What is a heap of gold, but an idol? What are harvested fields but an idol of dust? What are luxurious clothes but an idol made from the skins and hairs of animals? Where will the idolaters of our generation hide when //the fear of the Lord//appears, and when //the glory of his majesty// appears? Flee to gold, worshiper of gold! Flee to the earth, worshiper of the earth! Hide in the skins of animals, and bury yourself with the hairs of foxes, and the fibers of the dead silk worm, O you idolators! Oh, bitter irony--all of this will be burned in the Day of the Lord, on that Dreadful Day. Man will stand face to face with the only Majestic and Eternal One. All the idols of mankind will be destroyed by fire before men's eyes; then the Immortal Judge will ask the idolators: "Where are your gods?"
Isaiah, the son of Amos, the prophet of God, lived on earth a long time ago--but his vision, even today, is dreadful and instructive, and again dreadful.
You are the only One, the only living Lord, and You do we worship! All else is passing dust. Help us, O Lord, help us--that our minds and hearts adhere not to transitory dust but to You; only to You, the only Living One.
To Thee be glory and praise forever. Amen.////
! THE HOLY PROPHET NAHUM
Nahum was born of the tribe of Simeon in a place called Elkosh on the far side of the Jordan. He lived about seven hundred years before Christ and prophesied the destruction of Nineveh about two hundred years after the Prophet Jonah. Because of Jonah's preaching, the Ninevites had repented, and God had spared them and not destroyed them. In time, however, they forgot God's mercy and again became corrupt. The Prophet Nahum prophesied their destruction, and since there was no repentance, God did not spare them. The entire city was destroyed by earthquake, flood and fire, so that its location is no longer known. St. Nahum lived for forty-five years and entered into rest in the Lord, leaving us a small book of his true prophecies.
! SAINT PHILARET THE ALMSGIVER
Philaret was from the village of Amnia in Paphlagonia. Early in life, Philaret was a very wealthy man, but by distributing abundant alms to the poor he himself became extremely poor. However, he was not afraid of poverty, and, not heeding the complaints of his wife and children, he continued his charitable works with hope in God, Who said: //Blessed are the merciful, for they shall obtain mercy// (Matthew 5:7). Once, while he was plowing in the field, a man came to him and complained that one of his oxen had died in the harness and that he was unable to plow with only one ox. Philaret then unharnessed one of his oxen and gave it to him. He even gave his remaining horse to a man who was summoned to go to war. He gave away the calf of his last cow, and when he saw how the cow pined for her missing calf, and the calf for the cow, he called the man and gave him the cow too. And thus the aged Philaret was left without food in an empty house. But he prayed to God and placed his hope in Him. And God did not abandon the righteous one to be put to shame in his hope. At that time the Empress Irene reigned with her young son, Constantine. According to the custom of that time, the empress sent men throughout the whole empire to seek the best and most distinguished maiden to whom she could wed her son, the emperor. By God's providence, these men happened to stay overnight in Philaret's house, and they saw his most beautiful and modest granddaughter Maria, the daughter of his daughter Hypatia, and took her to Constantinople. The emperor was well pleased with her, married her, and moved Philaret and all his family to the capital, giving him great honors and riches. Philaret did not become proud as a result of this unexpected good fortune, but, thankful to God, he continued to perform good works even more than he had before, and thus he continued until his death. At the age of ninety he summoned his children, blessed them, and instructed them to cleave to God and to God's law, and with his clairvoyant spirit he prophesied to all of them how they would live out this life, as once had Jacob. After that he went to the Rodolfia Monastery and gave up his soul to God. At his death his face shone like the sun, and after his death an unusual, sweet fragrance came forth from his body and miracles took place at his relics. This righteous man entered into rest in the year 797 A.D. His wife, Theosevia, and all his children and grandchildren lived a God-pleasing life and reposed in the Lord.
! HYMN OF PRAISE
!
! SAINT PHILARET THE ALMSGIVER
To the merciful one, God shows mercy;
He never ceases to show mercy.
He hears the prayers of the merciful;
He gives gifts a hundredfold.
Philaret the Merciful
Placed himself wholly in God's hands.
By his compassion, he amazed the world;
He was faithful to God, even in suffering.
Philaret did not compete
For honor or precedence.
We use this age to purchase
The Eternal Kingdom and blessedness.
The Lord spoke a wondrous word:
"Trade until I return!
When the time is right,
I will repay you with great riches."
When Philaret became impoverished
Because of almsgiving beyond measure,
Because of truth and goodness--
God visited him from on high:
Visited him and bestowed mercy,
Bestowed mercy and rewarded him,
Just as once upon the faithful Job,
He bestowed mercy and a reward.
! REFLECTION
Virtue is like a thirst. When a man begins to drink of it, he becomes more thirsty and seeks to drink of it all the more. He who begins to exercise the virtue of compassion knows no measure and acknowledges no limit. St. Philaret was no less generous when he was impoverished than when he was wealthy. When his granddaughter became empress, he became a rich man once again, but no less generous. One day, he told his wife and children to prepare the best feast that they could and said: "Let us invite our King and Lord, with all His noblemen, to come to the feast." Everyone thought that the old man was thinking of inviting to dinner his son-in-law, the emperor, and they all worked as hard as they could and prepared the feast. Meanwhile, Philaret went around the streets and gathered all the needy, the beggars, the blind, the outcasts, the lame and the infirm, and brought them to the feast. Placing them at the table, he ordered his wife and sons to serve at the table. After the feast was completed, he put a gold coin in the hand of each guest and dismissed them. Then everyone understood that by "the King" he meant the Lord Christ Himself, and by "the noblemen" he meant beggars and those in need. He also said that one need not look at the money that one gives to beggars, but rather one should mix up the money in one's pocket and give only what the hand removes from the pocket. The hand will draw out whatever God's providence ordains.
! CONTEMPLATION
Contemplate the sinful fall of Adam and Eve (Genesis 3):
# How Eve, when she sinned, did not repent but hurried to make her husband a participant in her sin;
# How Adam, when he sinned, did not repent but justified himself, blaming his wife before God;
# How, even today, many sinners seek fellow participants in their sin and justify themselves by blaming others.
! HOMILY
! on the creation of the world
In the beginning God created the heaven and the earth (Genesis 1:1).
Brethren, this is God's answer through the mouth of the prophet, the answer to the question that we all thirst to know: "Whence comes this world?" God hears our question, spoken or unspoken; He hears and gives an answer. Just as He gives rain to the dry earth, just as He gives health to a sick person, just as He gives bread and clothing to the body, so also does He give an answer to our spirit. He gives an answer to the question that has caused it hunger and thirst, pain and nakedness, until it (the spirit) is nourished and quenched, restored to health, and is clothed with the true answer. This is the question: "Whence, therefore, comes this world?" This is the answer: //In the beginning God created the heaven and the earth.// This world is not of itself, just as nothing in this world is of itself, neither is this world of an evil power, neither is this world of many creators, good and evil, but rather it is of the one gracious God. This answer evokes joy in the heart of every man and incites him to good works. And by this we know, among other things, that this is the only correct and true answer. Every other answer, in contradiction to this, evokes sorrow and fear in us and incites us to evil works, and therefore we know, among other things, that such answers are false. Brethren, the world is from God--let us rejoice and be glad! The world is of divine origin, and consequently its end will also be in God. The world is of a good root, and consequently it will bring forth good fruit. It proceeded from the chamber of light, and it will end in light. When we know that the beginning is good, then we know that it tends toward good and that the end will be good. Behold, in these words about the beginning, the prophecy about the end is already hidden. As was the beginning, so also will be the end. He from Whom the beginning came, in Him also is the end. Therefore, let us hold fast to this saving truth, that we may have shining hope and be strengthened in love toward the One Who, out of love, created us.
O Lord God, our Almighty Creator, One God, One Creator, the good Source of goodness, Thee do we worship, to Thee do we pray; direct us to the good end by Thy Holy Spirit, through the Lord Jesus Christ.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS MENAS, HERMOGENES AND EUGRAPHUS
Both Menas and Hermogenes were born in Athens. They both lived in Byzantium, being held in great honor by the emperor and the people. Menas was known for his great learning and eloquence of speech and, although he acted outwardly as a pagan, he was a convinced Christian in his heart. Hermogenes was Eparch of Byzantium and acted as a pagan both inwardly and outwardly, but he was compassionate and performed many good deeds. When a dispute flared up between the Christians and the pagans in Alexandria, Emperor Maximin dispatched Menas to calm the disturbance and to root out the Christians from the city. Menas went and restored peace, but he declared himself a Christian and converted many pagans to the true Faith by his eloquence and many miracles. Hearing of this, the emperor sent Hermogenes to punish Menas and to smother Christianity. Hermogenes brought Menas to trial, cut off his feet and tongue, gouged out his eyes, and then cast him into prison. In prison, the Lord Jesus Himself appeared to Menas, healing and comforting His suffering servant. Seeing Menas miraculously healed, Hermogenes was baptized. He began to preach the powerful Christian Faith and was consecrated as Bishop of Alexandria. Then the enraged Maximin went to Alexandria himself and subjected Menas and Hermogenes to cruel tortures, which they courageously endured, helped by God's grace. Beholding the bravery of these soldiers of Christ and the miracles of God upon them, Eugraphus, secretary and friend of St. Menas, appeared before the tribunal and cried out to the emperor's face: "I too am a Christian!" The emperor became enraged, drew his sword and beheaded St. Eugraphus. Following this, the evil emperor ordered the executioner to behead St. Menas and St. Hermogenes. Their holy relics, thrown into the sea, miraculously floated to Constantinople, where the bishop, to whom this was revealed in a dream, solemnly met them and honorably buried them.
! THE VENERABLE ANGELINA AND ST. JOVAN THE DESPOT
Angelina was the daughter of the Albanian prince, George Skenderbeg, and the wife of Stefan, Despot of Serbia, who was the son of Despot George. She endured exile with her husband and shared with him all the bitterness of life in Serbia as well as in Albania and Italy. She raised her sons Maxim and Jovan in a truly Christian spirit. Following the death of her husband, she was tonsured a nun, devoting herself entirely to prayer, acts of charity and the building and restoring of holy churches. A faithful wife, an excellent mother and a perfect Christian, she in truth merited the title "Mother Angelina," as the people call her even now. Her miracle-working relics, together with those of her righteous husband Stefan and her devoted sons Maxim and Jovan, rest in the Monastery of Krušedol (although some of the relics were destroyed by the Turks). She entered into rest and took up her habitation in the Immortal Kingdom at the beginning of the sixteenth century.
! THE HOLY MARTYR GEMELLUS
Gemellus was an honorable citizen of Ancyra. When Emperor Julian the Apostate came to this city, Gemellus came before him and openly denounced him for his apostasy. For this, he was tortured and crucified in the year 361 A.D. While in pain on the Cross, he heard a voice from heaven saying: "Blessed are you, Gemellus!"
! THE VENERABLE THOMAS DEFOURKINOS [OF BITHYNIA]
Thomas was a great ascetic, a conqueror of demons, and a seer. Emperor Leo the Wise wrote him a letter, and he replied without even opening it. He entered into rest in the Lord in great old age in the ninth century.
! HYMN OF PRAISE
!
! THE VENERABLE ANGELINA
The God-pleaser, holy Angelina,
Holy in marriage and also as a nun,
Patient in suffering, merciful in doing good,
Full of sorrow for another's sorrow--
She looked to God, her Comforter,
And was calmed by the Cross of Christ the Savior.
She was a comfort to her husband, an example to her children;
And the children of the holy mother became saints.
Whoever invokes the name of Mother Angelina
Will see all his suffering quickly fade away.
In a time of gloom, when the empire collapsed,
When many harmed their souls by sin,
When the darkness of the Turks encompassed the land,
Angelina saved the souls of the Serbs
By pointing to heaven with her finger and her spirit,
Consoling them with Christ, healing them by the Cross.
And now she hastens to every aching soul,
And with greater power she both heals and consoles.
Whoever invokes the name of Mother Angelina,
Will see all his suffering quickly fade away.
! REFLECTION
In innumerable ways the Living Lord knows when to show mercy and when to chastise, when to deliver the faithful from temptations, when to turn unbelievers into believers, and when to punish incorrigible persecutors of the Faith. When the evil Maximin slew the wonderful martyrs of Christ, Menas, Hermogenes, and Eugraphus, he boarded a boat with his retinue and set sail from Alexandria for Byzantium. But suddenly he was blinded, being blind beforehand in soul and mind, and began to complain to those among his retinue of invisible hands that were harshly striking him. Shortly after that he died wickedly, just as he had lived. At the time of St. Ambrose the following incident occurred: The heretical Empress Justina had persuaded Euthymius, a landowner from Milan, to somehow seize the bishop, whom she hated, and to take him somewhere far away into exile. Euthymius prepared a cart and settled in a house near the church so that he could more easily catch sight of Ambrose alone and carry him off in the cart. And precisely on the day when he had arranged and prepared everything to seize Ambrose, an imperial order arrived that Euthymius immediately be exiled because of some crime. That day, the soldiers came, bound the malicious one, and took him off into exile in the very cart that he had prepared for Ambrose's banishment. On another occasion, an Arian entered the church where St. Ambrose was celebrating, with the intention of hearing from his mouth something for which Ambrose could be denounced. Looking around, this heretic saw God's saint instructing the people and beheld a shining angel alongside him, whispering words in his ear. Being greatly frightened by this, he became ashamed of himself, rejected the heresy and returned to Orthodoxy.
! CONTEMPLATION
Contemplate the deluge of the world (Genesis 7):
# How there was a flood of corruption in the world before the water flooded the world;
# How the long-suffering God permitted the flood because of the sins of mankind, and how the water flooded the entire earth.
! HOMILY
! on Abraham
I … am but dust and ashes (Genesis 18:27).
These are the words that the righteous Abraham spoke of himself. Brethren, ridiculous are those people who pride themselves on their association with worldly princes and noblemen and begin to think highly of themselves. Abraham was found worthy to converse with the Eternal and Almighty King. Nevertheless, he remained unwavering in his humility, calling himself //dust and ashes//. Who was this Abraham, that he was found worthy of so much of God's favor in his lifetime and praise after his death, from the Apostle (Galatians 3, Hebrews 11), and even from the Lord Christ Himself (Luke 16:22, John 8:39)? He was a peasant who possessed all the virtues, living always according to the Law of God, a man with a firm faith in God, a lover of justice, hospitable, compassionate, courageous, obedient, pure and humble. However, Abraham is especially glorified for his faith, a powerful faith. Abraham was one hundred years old when God told him that his wife, barren until then, would bear a son, and he believed. And even before Sarah had given birth to Isaac, God said to Abraham: //I will make thy seed as the dust of the earth// (Genesis 13:16). Abraham believed and doubted not. And when an only son was born to Abraham, God commanded him, as a test, to offer his only son as a sacrifice. Abraham was prepared to do this, had God not turned him from it at the last moment. How complete was this wonderful man's faith and obedience to God! Therefore God blessed him and made him glorious on earth and in heaven. Brethren, blessed are they who, without hesitation, believe in God and fulfill His holy commandments. The blessing of God will accompany them in both worlds.
O our Blessed Creator, bless us sinners also and number us among Thine elect, who have a share with Abraham in Thy Kingdom.
To Thee be glory and praise forever. Amen.
! THE VENERABLE DANIEL THE STYLITE
Daniel was born in the village of Bethara near the city of Samosata in Mesopotamia of Christian parents, Elias and Martha. Through her tearful prayers, his barren mother received him from God, and as an only son he was dedicated to God from early childhood. Daniel embraced the monastic rank at the age of twelve, visited Simeon the Stylite, and was blessed by him. Desirous of solitude, Daniel left the monastery and withdrew to an abandoned pagan temple on the shore of the Black Sea. There he endured countless assaults from demons, but he conquered them all by perseverance, prayer and the sign of the Cross. Afterward he climbed up on a pillar. There he remained until his death, enduring both heat and cold, and attacks from both men and demons. Many disciples gathered around his pillar, and he directed them to eternal life by his example and his words. God rewarded His faithful servant with abundant grace while in this life, and he performed many miracles beneficial to men and prophesied future events. People from all parts crowded beneath his pillar, seeking help and counsel from the saint of God. Emperors and patriarchs as well as ordinary people came to him. Emperor Leo the Great brought his foreign guests, princes and nobles, and showed them St. Daniel on the pillar, saying to them: "Behold, the wonder in my kingdom!" Daniel foretold the day of his own death, instructed his disciples as a father to his sons, and took leave of them. At the time of his death, his disciples beheld angels, prophets, apostles and martyrs above his pillar. Having lived for eighty years, this holy angelic man entered into rest and took up his habitation in the Kingdom of Christ in the year 489 A.D.
! THE VENERABLE LUKE THE STYLITE
Luke lived in Constantinople at the time of Emperor Constantine Porphyrogenitus. As a soldier, he participated in the war against the Bulgarians, in which he witnessed the death of many thousands of people, and from that war he emerged alive and unharmed. Seeing the finger of God in his deliverance, Luke scorned the vanity of the world and withdrew to a pillar near Chalcedon. There he lived a life of asceticism for forty-five years, cleansing his soul of all sinful desires and thoughts. Pleasing God, he entered into rest sometime between the years 970 and 980 A.D. and took up his habitation in a better life.
! THE VENERABLE NICON THE DRY
As a monk in the Monastery of the Kiev Caves, he was enslaved by the Tartars. He lived for three years in captivity: shackled, tortured and mocked. When his kinsmen brought the money to ransom him from his master, he refused, saying: "If the Lord had wanted me to be free, He would not have delivered me into the hands of these lawless men." Once he told his master that Christ would free him in three days. The Tartar thought that this meant that his slave was going to escape, so he severed his tendons below the knees. However, on the third day, Nicon was indeed instantly carried to Kiev by an invisible hand. After a period of time, the Tartar came to Kiev and recognized Nicon, his former slave. He repented and was baptized. The former master became the servant and disciple of his former slave. Nicon was called "the Dry" because of the great austerity of his bodily fasting, and he was a great clairvoyant and miracle-worker. He entered peacefully into rest in the Lord on December 11, 1101 A.D.
! THE HOLY MARTYR MIRAX
Mirax was an Egyptian. Deceived by a Moslem Emir, he embraced Islam. He later repented and entered a mosque with a cross. There he declared himself a Christian, calling upon the Moslems to forsake their falsehood and to accept the truth. He was tortured and beheaded in about the year 640 A.D.
! HYMN OF PRAISE
! THE VENERABLE DANIEL THE STYLITE
When holy Daniel desired to die
He taught his disciples thus:
"My dear children, the fruit of my labor,
Affix your heart to the Living God,
Contemplate in spirit the Heavenly Father.
Glorify the wondrous Creator with praise.
Let humility be the first of your virtues;
The humble in heaven are God's noblemen.
Then show obedience, such as befits the humble.
These are two adornments of every true believer.
The humble and the obedient keep hospitality:
Be hospitable and magnanimous.
These are three virtues, and still more I will say:
Fasting, vigils, poverty--the path to eternal happiness.
Here are six candles in the earthly darkness,
And the seventh is love, the greatest of all."
Thus the saint spoke, and imparted his blessings,
Then rendered his holy soul to the Lord.
O holy Daniel, inhabitant of heaven,
Implore Christ for the needs of us sinners.
! REFLECTION
//The Lord preserveth all them that love him//(Psalm 145:20). The lives of the saints confirm this as clearly as the sun. Certain envious priests complained to Patriarch Anatolius about St. Daniel, slandering him and saying that he was a magician. In essence, they were envious of the exceedingly young ascetic, who surpassed them in all the virtues and attracted many people to himself by his way of life. The patriarch summoned Daniel and examined him regarding his faith and his way of life. When Daniel told him everything, the patriarch rose from his seat, embraced him, praised him, and dismissed him in peace. Several days later, Patriarch Anatolius became ill, summoned Daniel and asked him to pray to God for his recovery. Daniel prayed to God, and the patriarch was immediately restored to health. Since the patriarch wanted to reward Daniel somehow, the young saint begged him to forgive his slanderers as his reward. To this the patriarch replied: "How can I not forgive them when they are the authors of so much good, namely, that I now know you and have received healing through you?" //Truly, the Lord preserves all who love Him//, and He turns to their good the evil that men conceive against them.
While St. Nicon the Dry was a slave among the Tartars, his master became sick and was at the point of death. Seeing that he would soon die, he ordered his sons to crucify Nicon at the head of his grave after his death. St. Nicon, discerning the future, saw that his cruel master would be baptized and prayed to God for his restoration to health. Contrary to all expectations, the Tartar recovered. Thus, by prayer, Nicon saved himself from physical death and his master from spiritual death.
! CONTEMPLATION
Contemplate the covenant that God made with the righteous Noah (Genesis 9):
# How God blessed Noah and his sons after the flood;
# How He promised that there would never again be a universal flood;
# How He established the rainbow as a sign of that covenant.
! HOMILY
! on Lot
And Lot … said, I pray you, brethren, do not so wickedly (Genesis 19:7).
Lot, a righteous man among the unrighteous, lived in Sodom with his wife and two daughters. The faithful Abraham asked God: //Wilt thou also destroy the righteous with the wicked?//(Genesis 18:23). God answered the faithful Abraham that not only would He not destroy the righteous, but if there were to be found ten righteous in that city, he would spare the entire city because of those ten. However, only one righteous man was found in Sodom--Lot--and he was a stranger. Just as before the flood there was only one righteous man in the world, Noah, so before the destruction of Sodom there was only one righteous man in that city, Lot. Lot was similar to his uncle Abraham in every virtue, notably in his obedience to God and his hospitality. The Sodomites hated him as a stranger and even more as a righteous man. //Brethren, do not so wickedly//, Lot exhorted them. He called the corrupt people his brethren in order to calm them and to remind them not to commit evil, in order to save them. But his brotherly words provoked them to even greater wrath. Lot was found worthy to have the angels of God visit him and deliver him from that corrupt city whose sins cried out to God. And the reprobates attacked the home of Lot to defile the sanctity of hospitality. //Brethren, do not so wickedly//, Lot implored them. But why would these brutes listen to a man if they did not fear God? That is why the angels of God punished them with blindness: //And they smote the men that were at the door of the house with blindness, both small and great// (Genesis 19:11). Then the angels led Lot from the city of the unrighteous and let loose a storm of brimstone and fire upon the city. Thus, the evil city perished, and the one righteous man in the city was saved. //Better is one righteous man than a thousand sinners// (Sirach 16:3).
O righteous God, Who never abandonest the righteous man, correct our unrighteousness and save us.
To Thee be glory and praise forever. Amen.
! SAINT SPYRIDON THE WONDERWORKER, BISHOP OF TREMITHUS
The island of Cyprus was both the birthplace and the place where this glorious saint served the Church. Spyridon was born of simple parents, farmers, and he remained simple and humble until his death. He married in his youth and had children, but when his wife died he devoted himself completely to the service of God. Because of his exceptional piety, he was chosen as bishop of the city of Tremithus. Yet even as a bishop he did not change his simple way of living, handling his livestock and cultivating his land himself. He used very little of the fruits of his labor for himself; instead, he distributed a greater share to the needy. He manifested great miracles by God's power: he brought down rain in time of drought, stopped the flow of a river, raised several people from the dead, healed Emperor Constantius of a grave illness, saw and heard angels of God, foresaw future events, discerned the secrets of men's hearts, converted many to the true Faith, and did much else. He took part in the First Ecumenical Council in Nicaea [325 A.D.], and he brought many heretics back to Orthodoxy by his simple and clear expositions of the Faith as well as by his mighty miracles. He was so simply dressed that once, when he wanted to enter the imperial court at the invitation of the emperor, a soldier, thinking that he was a beggar, struck him on the face. Meek and guileless, Spyridon turned the other cheek to him. He glorified God through many miracles, and was of benefit, not only to many individuals but also to the whole Church of God. He entered into rest in the Lord in the year 348 A.D. His miracle-working relics rest on the island of Corfu, and even today they glorify God with many miracles.
! THE HOLY HIEROMARTYR ALEXANDER, PATRIARCH OF JERUSALEM
At first Alexander was the Bishop of Cappadocia, but during the persecution under Severus in the year 203 A.D. he was cast into prison and then exiled. Afterward he accepted the patriarchal throne of Jerusalem. He founded the famous Jerusalem Library, which Eusebius used when he wrote his Ecclesiastical History. He was tortured in various ways during the reign of Decius and thrown to wild beasts. Remaining alive and untouched by the beasts, he was cast into prison, where he ended his earthly life and went to the Lord in the year 251 A.D.
! THE HOLY MARTYR SYNESIUS
As a young reader in Rome, he boldly preached the truth of Christ and denounced idolaters. For this, he was tortured and beheaded during the reign of Emperor Aurelian.
! HYMN OF PRAISE
! SAINT SPYRIDON THE WONDERWORKER, BISHOP OF TREMITHUS
Star of Cyprus and luminary of the Church,
Holy Spyridon, defender of the Faith,
Simple as a child, innocent as a child--
By his simplicity, he shines on the world.
What need is there for many words when speaking the truth?
Utterly simple is God's truth:
The Creator is One, in the Holy Trinity,
In the Trinity, Father, Son and Spirit.
The Son descended to the sinful earth
And received flesh from the Pure Virgin
In order to save men, because He is the Lover of Mankind.
He performed many miracles
By divine power, for He is Almighty.
To mankind He gave a new rule,
The rule of love and the rule of faith.
Glorified, He now sits in heaven,
And gathers the fruit of His labor.
The sweet fruits of His labor
Are holy men and holy women.
He is the Rock of mankind's salvation;
Outside this Rock there is no salvation.
O Spyridon, O illuminator,
O soldier of Christ, pray for us.
! REFLECTION
Absolutely nothing will help us if we are not lenient toward the weaknesses of men and forgive them. For how can we hope that God will forgive us if we do not forgive others? St. Spyridon once sold a hundred goats to a merchant at an agreed price, and the saint told the buyer to lay down the money. The buyer, knowing that Spyridon himself never counted money, handed over enough money for ninety-nine goats and hid the money for one. Spyridon then counted out a hundred goats for him. But when the merchant and his servants drove off the goats, one of them returned bleating. He drove it off, but it returned again. And so the goat continually returned to the enclosure, not wanting to go with the other goats. The saint then whispered into the merchant's ear: "Observe, my son: this animal is not doing this in vain. Did you perhaps withhold her price?" The merchant became ashamed and acknowledged his sin. As soon as he paid the amount he had concealed, the goat immediately joined the other goats.
On another occasion, some thieves entered Spyridon's sheepfold. When they had seized as many sheep as they wanted, they tried to leave the sheepfold, but an invisible force nailed them to the ground, and they were unable to move. At dawn, the bishop came to his sheepfold. Seeing the thieves, he reproached them mildly and instructed them to strive in the future to live by their own labors and not by thievery. He then took a sheep and gave it to them, saying, "Take this for your trouble, so that your all-night vigil not be in vain," and he dismissed them in peace.
! CONTEMPLATION
Contemplate Noah's blessing upon two of his children [Japheth and Shem] and a curse upon the third [Ham] (Genesis 9):
# How Ham disclosed his father's nakedness, but Shem and Japheth covered it;
# How Noah pronounced a blessing upon Shem and Japheth, but a curse upon the descendants of Ham.
! HOMILY
! on Melchisedek
Thou art a priest forever after the order of Melchisedek (Psalm 110:4, Hebrews 7:17, 21).
Oh, how many hidden and faithful servants does the Lord have who serve Him day and night! Oh, how many shining comets are seen by men to cross the starry heavens, which appear unexpectedly, glistening, and then are lost in the vastness of the universe, leaving only tales about them! The righteous Abraham, with his descendants, is known to us like the starry heavens over our heads, but Melchisedek is known to us like a shining comet, which suddenly appeared, was bowed down to us by the starry heavens, and was again hidden in the unknown. Who is this Melchisedek? //The King of Salem … the priest of the Most-high God//(Genesis 14:18). He brought bread and wine to Abraham; he blessed Abraham, and Abraham gave him one-tenth of all that was his. When Abraham was so greatly blessed by God, how much more blessed was he who blessed Abraham? Oh, how unfathomable are the depths of God's providence! A man's thought extends from today until tomorrow, but the thought of God extends to the very end of time. According to the words of the Holy Apostle Paul, Melchisedek prefigures the Lord Jesus Christ Himself (Hebrews 7:10). For while the forefather Abraham was a wonderful and God-pleasing peasant, this Melchisedek was both a king and priest, as our Lord is King and Priest. Melchisedek offered Abraham bread and wine, and our Lord offered His Body and Blood to the entire human race. Abraham bowed down to Melchisedek and gave him a willing tribute. Abraham's true descendants, the Christians, bow down to the Lord Jesus and offer Him their willing sacrifice, a gift in return for a gift, the gift of His Body and Blood on the Cross. //And who shall declare His generation?// (Isaiah 53:8). This refers to both Christ and Melchisedek. //Your father Abraham rejoiced to see My day; and he saw it and was glad// (John 8:56). Thus spoke the Lord to the Jews. How did Abraham see it? He saw it in the spirit. God revealed it to him, and he also saw the prefiguration of Christ in this glorious and wonderful Melchisedek, king, priest and servant of the Most-high God.
O Lord Jesus, bless us also as Thou didst bless Thy faithful servants, Melchisedek and Abraham.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS EUSTRATIUS, AUXENTIUS, EUGENE, MARDARIUS AND ORESTES
These five courageous men shone like five shining stars in the dark days of the Christ-persecuting Emperors Diocletian and Maximian. St. Eustratius was a Roman commander in the city of Satalionus; Eugene was his companion in the army; Orestes was likewise a distinguished soldier; Auxentius was a priest; and Mardarius was an ordinary citizen who came, like Eustratius, from the town of Arabrak. The imperial deputies Lysias and Agricolus tortured Auxentius first since he was a priest. Seeing the innocent suffering of Christians, Eustratius appeared in front of Lysias and declared that he was also a Christian. While Eustratius was being tortured, Eugene appeared before the judge and cried out: "Lysias, I too am a Christian." When Eustratius was led through the town of Arabrak with the other martyrs, Mardarius saw them from the roof of his house. He took leave of his wife and two young children and rushed after the martyrs, shouting into the faces of the tormentors: "I too am a Christian, like my lord Eustratius." When St. Orestes was target-practicing in the presence of Lysias, the cross he was wearing fell from his chest and Lysias realized that he was a Christian, after which Orestes openly confessed his faith. Orestes was a young and handsome soldier and towered above all the other soldiers in stature. Auxentius was beheaded, Eugene and Mardarius died while being tortured, Orestes expired on a red-hot iron grid, and Eustratius died in a fiery furnace. St. Blaise (February 11) administered Holy Communion to St. Eustratius in prison before his death. Their relics were later taken to Constantinople and buried in the church dedicated to them: The Holy Five Companions. They were seen alive in that church, and St. Orestes appeared to St. Dimitri of Rostov (October 28). A beautiful prayer by St. Eustratius is extant, which is read at the Midnight Service on Saturday: "Most highly do I magnify Thee, O Lord."
! THE HOLY MARTYR LUCY THE VIRGIN
With her mother, Lucy visited the grave of St. Agatha in Catania, where St. Agatha appeared to her. Her mother, who had dropsy, was then miraculously healed in the church. Lucy distributed all her goods to the poor, and this embittered her betrothed, who accused her of being a Christian before Paschasius the judge. The wicked judge ordered that she be taken to a brothel in order to defile her. However, by the power of God she remained immovable, as if rooted to the earth, and not even a multitude of people was able to move her from that spot. Then an enraged pagan pierced her throat with a sword and she gave up her soul to God and took up her habitation in the Kingdom of Eternity. Lucy suffered in the year 304 A.D.
! THE HIEROMARTYR GAVRILO, PATRIARCH OF SERBIA
During the terrible period of Turkish rule over Serbia, this great hierarch traveled to Russia, where he participated in the Moscow Synod of 1655 A.D. Upon returning, he was accused of high treason. Certain evil Jews also accused him of having converted several Jews to the Christian Faith. In their accusation, the Jews cited that he was attempting to convert the Turks. The Jews did this to enrage the Turkish authorities even more. Brought before the tribunal, he was condemned and sentenced to embrace Islam. Since Gavrilo would not even hear of this, he was, after a period of imprisonment, sentenced to death and hanged in Brusa in the year 1659 A.D. Thus, he departed for his beloved Christ to receive from Him a double crown, that of a hierarch and that of a martyr.
! HYMN OF PRAISE
! THE HOLY MARTYRS EUSTRATIUS, AUXENTIUS, EUGENE, MARDARIUS AND ORESTES
O Five Companions, soldiers of Christ,
Fearless heroes, honorable martyrs--
Mockery and tortures, fire and scaffolds
Were merely childish games for you.
None of you consented to the wantonness of Rome.
With joyful hearts you suffered for Christ.
Eustratius, the wonderful and heroic commander,
Despised imperial clemency and this weeping world.
With him, as with a living fire that burns leaves,
The other companions went to torture.
Auxentius the priest, a faithful servant of Christ,
Endured much mockery for the sake of Christ.
Eugene the soldier and wondrous Orestes
Ridiculed death, being conscious of the Resurrection.
Mardarius left his wife and children,
So that both they and he would be forever glorified.
O heroic clan, children of grace,
Only the Church can give such men as you;
Only the Spirit of God creates such hearts as yours--
He that transforms the dark abyss into flame!
Glorious martyrs, remember us also;
And by your prayers, strengthen the Church.
! REFLECTION
To give alms out of that which one needs: this is true almsgiving. Not to sin when one is most exposed to sinning: this has value before God. When St. Lucy saw her sick mother miraculously healed, she suggested to her that she use her possessions as alms for the needy. To this her mother replied that she did not want to part from her possessions until her death, but she agreed that after her death her possessions could be used for the good that Lucy wished. "First, cover my eyes with earth," her mother said, "and then do what you wish with my possessions." Lucy said: "It is not very pleasing to God for a person to give to Him that which he cannot take with him to the grave or which he himself does not need. But if you want to do a God-pleasing deed, give to Him that which you yourself need. Otherwise, after death, when you need nothing, you will be offering Him that which you could not take with you. But while you are still alive and healthy, give to Christ what you possess, and all of that which you intended for me begin even now to give to Him." The good mother of the wise daughter agreed to this. When the torturer Paschasius was attempting to force this holy virgin to carnal sin, Lucy did not, even in thought, assent to this. And when the torturer threatened that his men would defile her by force, saying with a smirk, "When you become defiled, the Holy Spirit will flee from you," Lucy, full of grace, replied: "The body cannot be defiled without the consent of the mind." Thus St. Lucy went to her death, having distributed all her goods beforehand and guarded her young and pure body from defilement.
! CONTEMPLATION
Contemplate the fulfillment of Noah's words upon his descendants (Genesis 9):
# How the sons of Japheth spread throughout the whole world;
# How they settled in the tents of Shem, that is, in the Church, in the spiritual tent of Christ, which began with the Semites, the Jews.
! HOMILY
! on Isaac
And the Lord appeared unto him the same night, and said, I am the God of Abraham thy father: fear not, for I am with thee, and will bless thee (Genesis 26:24).
Brethren, from time immemorial, the path upon which the righteous walk has always been difficult. From time immemorial, they have been hard pressed either by those who do not believe in God or by those who maintain an incorrect belief. Abel was hard pressed by his brother Cain; Noah and Lot, by a completely corrupt generation; and Abraham, Isaac and Jacob, by the pagans. However, God does not forsake the righteous to walk the difficult path alone. This we also see with Isaac: //I am the God of Abraham thy father; fear not.//Isaac understood these very meaningful words. By these words, God encouraged and reminded him. He was saying: "Because of Abraham, I will bless thee also; and, as I protected Abraham among the pagans, so in a like manner will I protect thee." And further: "Be faithful to Me as was Abraham thy father." Isaac followed the example of his father and did not turn away from God at any time in his life. Isaac was a farmer and a cattle-breeder as was his father; he was righteous and meek, avoiding strife with men and doing good for people. //We saw certainly that the Lord was with thee// (Genesis 26:28), as his haters and persecutors finally had to admit. And Isaac was made worthy that God be called His God: just as God was called the God of Abraham, so later He was called the God of Isaac.
O Lord, wondrous in Thy saints, remember our names also along with the names of Thy righteous ones and saints in Thy Kingdom.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS THYRSUS, LEUCIUS AND CALLINICUS
Saints Thyrsus and Leucius were honorable citizens of Caesarea of Bithynia, the former being baptized and the latter being a Christian catechumen. Callinicus, however, was a pagan priest. When Emperor Decius's heir, Cumbricius, began to mercilessly torture and murder Christians, the fearless Leucius appeared before him and, reproaching him, said: "Why have you waged war against your own soul, O Cumbricius?" The enraged judge ordered that he be flogged, tortured and finally beheaded. The tortured Leucius went to his beheading as joyfully as if he were going to a wedding. Witnessing the death of the courageous Leucius, blessed Thyrsus, inflamed with divine zeal like that of Leucius, also appeared before the judge and reproached him for his evil crimes and for his unbelief in the One True God. He also was flogged and cast into prison. The invisible hand of God healed him of his wounds, opened the prison door and led him out. Thyrsus immediately went to Phileas, the Bishop of Caesarea, to be baptized by him. After his baptism, he was again seized and tortured, but he endured the tortures, bearing them as though in a dream and not in reality. By the power of his prayer, many idols fell down. The pagan priest Callinicus, upon seeing this, converted to the Christian Faith, and both he and Thyrsus were condemned to death. Callinicus was beheaded, and they placed Thyrsus in a wooden coffin to be sawn in half. However, the power of God would not permit this, and the saw was unable to cut into the wood. Then St. Thyrsus arose from the coffin and prayed to God, rendering Him thanks for the tortures, and he peacefully gave up his soul to his Lord. At the end of the fourth century, the Emperor Flavian built a church to St. Thyrsus near Constantinople and placed his holy relics in it. The saint appeared in a vision to Empress Pulcheria and counseled her to bury the relics of the Forty Martyrs alongside his.
! THE HOLY MARTYRS PHILEMON, APOLLONIUS, ARIANUS AND OTHERS
During the reign of Diocletian, a certain judge Arianus cruelly persecuted the Christians of Egypt. He seized Apollonius and threatened him with tortures. Apollonius, afraid of the tortures, bribed a certain well-known pagan musician, Philemon, to offer sacrifices to the idols in his place, disguised in his clothes. When Philemon appeared before the idols, the light of the Christian Faith suddenly shone in his heart, and he made the sign of the Cross. After he came out of the temple, he began to shout: "I am a Christian! A servant of Christ the Living God!" Hearing this, the judge laughed, thinking that Philemon was mocking the Christians. Later, Philemon endured horrible tortures. Rain fell from heaven and baptized him. Finally, Philemon and Apollonius were beheaded by Arianus the judge. Then, because his blind eye was healed in a miraculous manner at Philemon's grave, Arianus himself became a Christian. Arianus was condemned to death by Emperor Diocletian and was slain with four soldiers who likewise declared themselves Christians.
! HYMN OF PRAISE
! THE HOLY MARTYRS THYRSUS, LEUCIUS, AND CALLINICUS
You knew the Faith, you acknowledged Christ,
You gave your bodies to save your souls:
For this your names shine in the heavens,
And an unquenchable fire glows in the Church.
Immortal heroes, pray for us,
That sinful clouds be turned away from us.
Blessed Leucius and noble Thyrsus,
Glorious Callinicus and worthy Philemon,
And the others in order, who endured grievous torments--
Now you are citizens of a better universe.
O beautiful beacons, pray for us;
Martyrs of God, pray for the Church.
You knew love, a heavenly possession,
The earth knew it not, not even its true name;
You saw it wholly in the Son of God,
In the sign of the Crucifixion and in His bloody brow.
Now, you are near to God and behold His face.
You cover our sins by your prayers.
! REFLECTION
There are three types of praiseworthy zeal: zeal in cleansing oneself of sinful desires and thoughts, zeal for the truth of the Faith, and zeal for God's justice among men. All three of these filled the soul of St. Nicholas the Wonderworker to perfection. He showed zeal in purifying himself throughout his life, vigilantly guarding over his heart. He especially showed zeal for the truth of the Faith at the First Ecumenical Council in Nicaea [325] when he entered into a fearful confrontation with Arius. His zeal for God's justice among men was seen particularly in two notable events, when on each occasion he saved three innocent men from the punishment of death. Once, in his absence from the city of Myra, the avaricious commander Eustathius condemned three men to be beheaded, receiving a bribe for this from some of their enemies. Informed of this, St. Nicholas returned to Myra with the greatest haste. The condemned men had already been brought to the place of execution, and the executioner had already raised the sword over the innocent men. At that moment, Nicholas grabbed the sword, pulled it out of the executioner's hand, and freed the condemned men. Afterward, he rebuked the commander Eustathius and brought him to shame and repentance. In a similar way, three imperial commanders--Nepotian, Ursus and Herpylion--were slandered before Eulavius the Eparch of Constantinople and before the emperor himself. The emperor signed their death sentence. On the eve of their execution, the three commanders prayed to God, saying: "O God of Nicholas, deliver us innocent ones from death!" That night, St. Nicholas appeared to both the emperor and the eparch in a dream, rebuked them for this injustice, and ordered them to free the three commanders from prison immediately. The next day, the emperor and eparch each related to the other the same dream and they immediately freed the commanders, both from the death sentence and from prison.
! CONTEMPLATION
Contemplate Abraham's obedience:
# How Abraham obeyed God when He ordered him to go out from his country, his kindred and his father's house (Genesis 12);
# How He obeyed God when He commanded him to offer his only son as a sacrifice (Genesis 22).
! HOMILY
! on Jacob
For I have seen God face to face and my life is preserved (Genesis 32:30).
The God of Abraham and Isaac is also the God of Jacob the faithful, the obedient, the merciful and the meek. The meek beholder of God, Jacob, can be called the "one who saw God." For in truth he was meek, and he saw God and spoke with God, and he saw the angels of God and the ladder from earth to heaven. By his meekness he defeated Laban his father-in-law, and Esau his brother; by his meekness he made peace between his wives, Leah and Rachel; for his meekness he was even dear to pharaoh. Jacob's meekness is a prefiguration of the meekness of Christ. //Blessed are the meek,//said the Lord, //for they shall inherit the earth// (Matthew 5:5). These words were also realized in Jacob. He inherited the land of his fathers; his descendants were delivered from Egypt and inherited the Promised Land; through Christ the Lord, his descendant according to the flesh, he inherited the whole earth, that is, the Church of God which spread over the entire world. //I have seen God face to face.// Jacob saw God in the form of man but not as true man. And even this vision was only a prefiguring of the true Incarnation of God as man. //And my life is preserved.// His soul was preserved from fear and from every unrighteousness. If Jacob was preserved by only seeing a vision of God, how much easier is it for us to be preserved who know God as true man and as the God-man.
O meek Lord, the strength and glory of the meek, as Thou didst preserve Jacob by Thy vision, preserve us also by Thy true Body and Blood.
To Thee be glory and praise forever. Amen.
! THE HOLY HIEROMARTYR ELEUTHERIUS
From a good tree comes good fruit. This wonderful saint had noble and greatly eminent parents. Eleutherius was born in Rome, where his father was an imperial proconsul. His mother Anthia heard the Gospel from the great Apostle Paul and was baptized by him. Having been left a widow early, she entrusted her only son for study and service to Anicetus the Bishop of Rome. Seeing how Eleutherius was gifted by God and illumined by the grace of God, the bishop ordained him a deacon at the age of fifteen, a priest at the age of eighteen, and a bishop at the age of twenty. Eleutherius's God-given wisdom made up for what he lacked in years, and this chosen one of God was appointed Bishop of Illyria with his seat in Valona (Avlona), Albania. The good shepherd guarded his flock well and increased their number day by day. Emperor Hadrian, a persecutor of Christians, sent the commander Felix with soldiers to seize Eleutherius and bring him to Rome. When the raging Felix arrived in Valona and entered the church, he saw and heard the holy hierarch of God; suddenly his heart changed, and he became a Christian. Eleutherius baptized Felix and departed for Rome with him, returning joyfully as if he were going to a feast and not to trial and torture. The emperor subjected the noble Eleutherius to harsh torture: flogging, roasting on an iron bed, boiling in pitch, and burning in a fiery furnace. But Eleutherius was delivered from all these deadly tortures by God's power. Seeing all this, Caribus the Roman eparch declared that he also was a Christian. Caribus was tortured and then beheaded, and so was Blessed Felix. Finally, the imperial executioners cut off the honorable head of St. Eleutherius. When his mother, the holy Anthia, came and stood over the dead body of her son, she also was beheaded. Their bodies were translated to Valona, where even today St. Eleutherius glorifies the name of Christ by his many miracles. He suffered during the reign of Hadrian in the year 120 A.D.
! SAINT STEPHEN THE CONFESSOR OF SOUROZH
Stephen was born in Cappadocia and educated in Constantinople under the Patriarch, St. Germanus. He withdrew into solitude and lived hidden from the world. An angel appeared to St. Germanus and ordered him to appoint Stephen bishop of the town of Sourozh (now Sudak in the Crimea), and the patriarch did so. The zealous Stephen converted many to Christianity. He suffered bitterly under Emperor Leo the Isaurian for the sake of icons. He prophesied to the emperor his impending death. Following this wicked emperor's evil death, Stephen was returned to his diocese, where he fed his God-pleasing flock and died peacefully at the end of the eighth century.
! THE VENERABLE PAUL OF LATROS
Paul was born in Pergamum. He lived a life of asceticism on a mountain called Latros in Asia Minor. Glorified because of his asceticism and many miracles, he entered peacefully into rest in old age and took up his habitation with the Lord in the year 950 A.D.
! THE VENERABLE PARDUS THE HERMIT
In his youth Pardus was a cart-driver, but because of an unintentional sin, he left the world and withdrew to the desert to live in asceticism. He lived in Palestine in the sixth century.
! HYMN OF PRAISE
! THE HOLY HIEROMARTYR ELEUTHERIUS
Eleutherius, saint of God,
You did not conceal God's truth from men,
But with God's truth you enlightened men
And offered salvation to each and all.
Let the Church of God rejoice;
Let all of Illyria rejoice.
Behold, God sent to her a wonderful man:
Eleutherius, a true saint.
His very name means "freedom":
Eleutherius bears freedom,
True freedom from the slavery of sin.
True freedom does not exist without Christ.
Let the town of Valona also rejoice.
In her the relics of the saint repose:
Miraculous relics that heal the sick,
A flame from which the demons flee.
Blessed is the mother who gives birth to a saint.
St. Anthia, thrice blessed,
Now is comforted in the garden of Paradise,
And gazes upon her son, Eleutherius.
O Eleutherius, pray for us,
That the gracious God may have mercy on us also.
! REFLECTION
For unintentional murder, the earthly court frees the murderer. The Church, however, imposes a penance on someone who commits murder unintentionally: a penance much lighter than that for a voluntary murder, but does not leave him without a penance. If a priest kills unintentionally, the Church places him under a lifelong suspension of priestly functions. Christians with sensitive souls and keen consciences impose upon themselves a more difficult penance than the Church would impose. St. Pardus once came to Jericho as a cart-driver. Leaving his mules in front of an inn, he entered it. At that moment, a child fell under the mule, and the mule trampled the child with its hooves and killed it. When Pardus saw the bloody and dead child killed by his mule, he was so crushed in heart that he felt himself intentionally responsible for the child's death. And this man of conscience imposed the harshest penance upon himself. He abandoned his trade, left the world and, even though he was relatively young, withdrew to the harsh wilderness, where he undertook a life of difficult asceticism consisting of physical and spiritual labor and repentance. With many tears, he offered repentance to God for the murder of the child. He desired to pay for the life of the child with his own life, and he prayed to God that He would somehow make this possible. He teased a lion so that the lion would tear him apart, but the lion fled from him. He lay on the narrow path on which the lion walked so that he would be killed by the beast, but the lion leapt over him and would not touch him. Seeing, therefore, that it was God's will for him to live and not perish, he was at peace with himself but remained a contrite penitent until his death. Is not this a sensitive, man-loving and God-fearing soul? Is not this the refined and sharpened conscience of a true Christian?
! CONTEMPLATION
Contemplate the powerful faith of Abraham (Genesis 15):
# How God promised the childless and aged Abraham many descendants;
# How God promised him as many descendants as the stars in the heavens;
# How Abraham believed God, despite everything, and how God counted this for righteousness.
! HOMILY
! on Joseph
And Joseph left his garment in her hand, and fled outdoors (Genesis 39:12).
The innocent and chaste Joseph endured two great and difficult temptations and overcame them: the temptation of wicked envy on the part of his blood brothers, and the temptation of adulterous passion from the Egyptian temptress. Jealousy sold him as a slave, and the passion of adultery drove the innocent one to prison. In both cases he returned good for evil: he gave food to his hungry brothers and preserved the life, throne and people of frightened Pharaoh. His brothers thought to slay him, but God saved him; the adulterous woman thought to destroy him, but God saved him. Out of slavery and imprisonment, God crowned him with glory and unlimited authority. And him whom his evil brothers could have killed with one stroke and whom Potiphar's powerful wife could have crushed in an instant, God made the unlimited master over the lives of millions of people and the only nourisher of his starving brothers. Such is the wondrous mercy of God toward the righteous. Thus does the Lord know how to save and glorify the innocent and the chaste. In the greatness of the destiny of Joseph, we see the greatness of God's mercy. There is one eye that never sleeps, my brethren. Let us cling to God and not fear anyone. Let us be innocent and chaste and not fear evil, or slander, or prison, or ridicule, or misfortune. On the contrary, let us rejoice when all of this befalls us because of our innocence and chastity; let us rejoice and await with faith the revelation of God's wonders toward us. Let us, in every storm, await the thunder of God's justice--and afterward the calm.
O mysterious Lord, Who secretly but vigilantly accompanies the righteous in slavery and in prison, and manifests Thy mercy in Thine own time, help us to be innocent and chaste.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET HAGGAI
Haggai was born in Babylon during the time of the captivity of Israel. He was of the tribe of Levi and prophesied about 470 years before Christ. As a youth, he visited Jerusalem. He urged Zerubbabel and Joshua the priest to restore the Temple of the Lord in Jerusalem, prophesying for this Temple greater glory than the former Temple of Solomon, //The glory of this latter house shall be greater than of the former, saith the Lord of Hosts// (Haggai 2:9), for the Lord and Savior was to appear in this new temple. He lived long enough to see one part of the temple built by Zerubbabel. He died in old age and joined his ancestors.
! SAINT NICHOLAS CHRYSOVERGES, PATRIARCH OF CONSTANTINOPLE
Nicholas governed the Church from 980 until 995 A.D. He ordained the great Simeon the New Theologian a presbyter when this spiritual giant was elected abbot of the Monastery of the Holy Martyr Mamas in Constantinople. During his times, a miraculous appearance of the Archangel Gabriel took place at Karyes [Mount Athos]. On this occasion, the archangel taught the monks to praise the Most-holy Theotokos with the hymn "It Is Truly Meet," writing this hymn on a stone in a chapel of one of the kellia, which from that time has been called "It Is Truly Meet" (June 13). As an eminent and great hierarch, he peacefully entered into rest and took up his habitation in the Kingdom of God.
! SAINT THEOPHANO THE EMPRESS
Theophano was born of eminent parents, Constantine and Anna, who were kin to several emperors. Her parents were childless for a long time and prayed to the Most-holy Theotokos to give them an offspring. And God gave them this daughter, Theophano. Imbued with the Christian spirit from her childhood, Theophano surpassed all her companions in all the Christian virtues. When she grew up, she entered into marriage with Leo, the son of Emperor Basil the Macedonian. She endured great hardships alongside her husband. Responding to slander--that Leo carried a knife in his boot and planned to kill his father at an opportune time--the gullible father, Basil, locked his son and daughter-in-law in prison. Thus, two innocent souls languished in prison for three years. Once, during the Feast of the Prophet Elias, the emperor summoned all his noblemen to his court for a banquet. Suddenly the emperor's parrot unexpectedly spoke these words, "Alas, alas, my Lord Leo!" and repeated these words a number of times. This brought great anxiety to all of the imperial noblemen, and they all begged the emperor to release his son and daughter-in-law. The grieved emperor did so. After his father's death, Leo became emperor and was called "the Wise." Theophano did not consider her imperial dignity as anything, but, completely devoted to God, she cared only about the salvation of her soul, fasting and praying, distributing many alms, and restoring many monasteries and churches. Neither an untrue word nor an excessive word nor, least of all, slander proceeded from her lips. Before her death she called all her closest friends, took leave of them and gave up her soul to her God in the year 892 A.D. The Emperor Leo wanted to build a church over her grave in her name, but since the patriarch objected to this, he built a church to All Saints, saying that if Theophano became a saint, she would be glorified together with the other saints. The Feast of All Saints was then instituted to be celebrated on the Sunday after the Feast of the Holy Trinity.
! HYMN OF PRAISE
! SAINT THEOPHANO THE EMPRESS
From a royal throne, it is better seen:
The vanity of the world, clever vanity,
And the imperial throne is mercilessly struck
By the tumultuous waves of this world.
Theophano clearly examines
The insane, open sea of this world,
And her heart, her troubled heart,
Is firmly anchored to the Living God.
The kings of this world--are they kings?
They are but many sentries on a quick rotation!
Death counts and carries out the change of these sentries--
Kings of the world: passing shadows!
Theophano, like the wise virgins,
The lamp of her heart lit by the spirit,
Illumined the path with a wonderful light,
Happily avoiding the pits of sin.
Now blessed in the Eternal Kingdom,
Among the stars, and shining like one,
Where there is no pain or change,
Theophano now reigns.
! REFLECTION
The saints exerted great effort to subdue pride and selfishness in themselves and to accustom themselves to complete obedience and devotion, be it to their superiors when they had them, or to God Himself. The Monastery of St. Sava the Sanctified was distinguished by exceptional discipline, order and unmurmuring obedience. When St. John Damascene entered this monastery, not one of the eminent spiritual fathers would venture to take such a famous nobleman and writer as his novice. Then the abbot handed him over to a simple but strict elder. The elder ordered John not to do anything without his knowledge or approval. In the meantime it happened that a monk died who had a brother in this same monastery. The monk was in unspeakable grief over the death of his brother. For the sake of comforting the inconsolable brother, John wrote stichera for the departed monk--famous hymns that the Church uses even today at the funeral service. After composing them, John began to chant the hymns. When the elder heard the chanting, he became enraged and drove John away. Some of the brethren, hearing of John's banishment, dared to go to the elder to beg him to forgive John and receive him back, but the elder remained unwavering. John wept bitterly and lamented because he had transgressed his elder's command. Once again the brethren, on John's behalf, begged the elder to impose a penance on him and after that forgive him. The elder then imposed the following penance upon his disciple: to clean and wash all the lavatories of every cell in the monastery with his own hands if he desired forgiveness. The sorrowful brethren reported this to John, thinking that he would leave the monastery rather than do this. But when John heard the elder's message, he rejoiced greatly and with much joy carried out the elder's command. Upon seeing this, the elder wept, embraced John and said through his tears: "Oh, what a sufferer for Christ have I given birth to! Oh, what a true son of holy obedience this man is!"
! CONTEMPLATION
Contemplate the generosity of Abraham (Genesis 13, 14):
# How Abraham did not want to quarrel with Lot because of the strife between their herdsmen but rather suggested that they separate;
# How, before parting, he left it to Lot to choose which direction, be it to the left or the right;
# How Abraham, defeating the King of Sodom, refused the offered goods and would not take even a thread or sandal strap.
! HOMILY
! on Moses
Now the man Moses was very meek, above all the men which were upon the face of the earth (Numbers 12:3).
A chosen man, a great wonderworker, a type of the Lord Jesus Christ in his miracles, a victor in Egypt, a victor in the wilderness, the leader of a people--how could he not be proud? But if he had become proud, Moses would not have been all that he was. They become proud who think that they do their own works and not God's in this world, and who think that they work by their own power and not by God's power. But the great Moses knew that he was the doer of God's works, and that the power with which He did them was God's power and not his. That is why he did not become proud because of the awesome miracles he performed, or the great victories he obtained, or the wise laws that he gave to the people. //The Lord is my strength and my song// (Exodus 15:2), said Moses. Of the entire assembly of the Israelites in the wilderness, no one felt his own particular weakness as much as he, the greatest one of that assembly. In every task, in every place and in every moment, he expected help only from God. "What shall I do?" he cried to God, and he ceaselessly listened for God's reply and sought God's power. "Meek above all men on earth." For all the others considered themselves as being something, trusted themselves as being something, but he--nothing. He was completely absorbed in God, completely humbled before God. If the people needed to be fed and given drink, he turned to God; if it was necessary to do battle with his enemies, he raised his hands to heaven; if it was necessary to calm an uprising among the people, he cried to God. The meek, the all-meek Moses! And God rewarded his faithful servant with great glory and made him worthy to appear on Mount Tabor with Elias alongside the Lord Savior.
O Lord, the God of the meek, the Good Shepherd, make us also meek like Moses and the apostles.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET DANIEL AND THE THREE CHILDREN: ANANIAS, AZARIAS AND MISAEL
All four were of the royal tribe of Judah. When Nebuchadnezzar destroyed and plundered Jerusalem, Daniel, as a boy, was carried away into slavery together with the Jewish King Jehoiachim and countless other Israelites. An account of his life, sufferings and prophecies can be found in detail in his book. Completely devoted to God, St. Daniel from his early youth received from God the gift of great discernment. His fame among the Jews in Babylon began when he denounced two lecherous and unrighteous elders, Jewish judges, and saved the chaste Susanna from an unjust death. But his fame among the Babylonians began from the day he deciphered and interpreted the dream of King Nebuchadnezzar. For this, the king made him a prince at his court. When the king made a golden idol on the Plain of Dura, the Three Children refused to worship it, and for this they were cast into a fiery furnace. But an angel of God appeared in the furnace and cooled the fire so that the children walked around the furnace unharmed by the fire, singing: //Blessed art Thou, Lord God of our fathers// (Daniel 3:26). The king saw this miracle and was amazed. He then brought the children out of the furnace and bestowed upon them great honors.
In the time of King Belshazzar, when the king was eating and drinking with his guests at a banquet from consecrated vessels taken from the Temple in Jerusalem, an invisible hand wrote three words on the wall: //Mene, Tekel, Upharsin// (Daniel 5:25-28). No one was able to interpret these words except Daniel. That night, King Belshazzar was killed. Daniel was twice thrown into the lions' den because of his faith in the One, Living God, and both times the Lord saved him and he remained alive. Daniel beheld God on a throne with the heavenly hosts; saw angels; discerned the future of certain people, of kingdoms, and of the whole human race; and prophesied the time of the coming of the Savior on earth. According to St. Cyril of Alexandria, Daniel and the three children lived to old age in Babylon and were beheaded for the true Faith. When they beheaded Ananias, Azarias stretched out his cloak and caught his head; following this, Misael caught Azarias's head and Daniel caught Misael's head. An angel of the God translated their bodies to Judea, to Mount Gebal, and placed them under a rock. According to tradition, these four God-pleasers arose at the time of the death of the Lord Christ, appeared to many and again fell asleep. Daniel is numbered among the four great prophets (Isaiah, Jeremiah, Ezekiel and Daniel). He lived and prophesied five hundred years before Christ.
! THE VENERABLE DANIEL (DUNALE)
Daniel was a nobleman and governor of the island of Nivertum near Cadiz in Spain. Realizing the vanity of this world, he renounced both honors and riches and went to Rome, where he was tonsured a monk. After this, he went to Constantinople, where he spoke with the Emperors Constantine and Romanus Porphyrogenitus, and then he set off for Jerusalem. In Jerusalem, he received the great schema at the hands of Patriarch Christodoulus, who gave him the name Stephen. Mistreated by the Saracens, who forced him to shave off his beard, he withdrew to Egypt, where he endured much suffering and finally died for the name of Christ. He took up his habitation in the Kingdom of Christ toward the end of the tenth century.
! THE VENERABLE NEW MARTYRS PAISIUS AND HABAKKUK
Paisius was abbot of the Travna Monastery near Čačak in Serbia, and Habakkuk was his companion and deacon. As Christians, both were impaled on stakes by the Turks on Kalemegdan in Belgrade on December 17, 1814 A.D. Carrying his stake through the streets of Belgrade, the courageous Habakkuk sang. When his mother begged him with tears to embrace Islam in order to save his life, this wonderful soldier of Christ replied to her:
My mother, thank you for your milk,
But for your counsel I thank you not:
A Serb is Christ's; he rejoices in death.
! HYMN OF PRAISE
! THE HOLY PROPHET DANIEL AND THE THREE CHILDREN
Whoever fears the true God
Is not afraid of men or demons.
The Lord rewards faithful servants
And guards them from every evil.
Among the lions,
Holy Daniel remained unharmed;
In the fiery furnace,
The Three Children remained alive;
In the midst of the fire, they glorified God,
With an angel, God's messenger.
Like Noah in the evil world,
Like holy Lot in wild Sodom,
And like Joseph in decadent Egypt,
So Daniel in the middle of Babylon
Remained faithful and righteous
With three of his young friends:
Ananias and Azarias
And the faithful young Misael.
The tortures came and the tortures passed.
The martyred were gloriously glorified
In the Immortal Kingdom of Christ.
! REFLECTION
Bodily purity is primarily attained by fasting, and, through bodily purity, spiritual purity is also attained. Abstinence from food, according to the words of that son of grace, St. Ephraim the Syrian, means: "Not to desire or ask for various foods, either sweet or costly; not to eat anything outside the designated time; not to succumb to the spirit of gluttony; not to excite hunger in oneself by looking at good food; and not to desire at one moment one kind of food and at another moment another kind of food." Great is the fallacy that fasting and Lenten food harm the health of the body. It is a known fact that the ascetics lived the longest and were the least prone to illness. St. Daniel and the Three Children in Babylon offer us an example of this. When the king ordered his eunuch to feed these young men food from the royal table and to give them good wine to drink, Daniel told the eunuch that they did not want to accept the royal food and wine but wanted only vegetables for food (for Daniel did not want to eat the food sprinkled with the blood of the idolatrous sacrifices). The eunuch, fearing that the youths would be weakened by the fasting foods, related his fear to Daniel. Then the prophet suggested that he make a test and convince himself that the fasting food would not weaken them: to nourish the other youths at the royal court with food from the king's table, and to feed the four of them only on pulse for the course of ten days, and then make a comparison. The eunuch heeded Daniel and did what he suggested. After ten days, the faces of the four ascetic youths were more radiant and their bodies were stronger than the bodies of the Babylonian youths who ate and drank from the king's table.
! CONTEMPLATION
Contemplate the hospitality and confession of Abraham (Genesis 18):
# How Abraham saw three men (angels) approaching and ran out to meet them, invited them to his home and entertained them;
# How he prayed to God to spare Sodom for the sake of the righteous who were in that city.
! HOMILY
! on Joshua the son of Nun
Turn not from it to the right hand or to the left … be not afraid, neither be thou dismayed: for the Lord thy God is with thee whithersoever thou goest (Joshua 1:7, 9).
Joshua the son of Nun obeyed the Lord in everything to the end, not turning either to the right or to the left of the Lord's commandments. He was surrounded by great horrors and fears while leading the people through an unknown land and through thick ranks of enemies, but he was neither afraid nor dismayed. He considered himself the weapon of God, and knew that his battles were God's battles. As a faithful soldier obeys the commands of his commander, so Joshua listened for and hearkened to the will of the Living God. He did not ascribe any good thing, any power, any merit to himself, but he ascribed all to God and only to God. He did not depend in the least on his own army, his own weapons and his own wisdom, but he depended on God and only on God, the Almighty and All-wise. See, brethren, with what sort of men God walks. Oh, if only Christian rulers and commanders could see this and learn from God's servant Joshua how to serve God! Oh, if they would understand, once and for all, that the people are best served when God is served; and that the people cannot be served if God is not served! The Lord God fulfilled His promise and was with Joshua the son of Nun to the end of his labors and life. And that the Lord was with him is shown by the great and awesome miracles that He manifested through His faithful servant. God divided the river Jordan so that the people crossed over on dry land without a bridge; God made the walls of Jericho fall at the sound of the trumpet; God delivered powerful enemies into the hands of the Israelites; God caused the sun to stand still over Gibeon and the moon to stand still over the valley of Ajalon. Truly, never and nowhere did God forsake His servant Joshua, for Joshua did not leave unfulfilled a single commandment of God. A witness of the Living God and a type of the Savior of the world, when he was old and stricken in years, he instructed his people as God had taught him in the beginning: //Turn not aside therefrom to the right hand or to the left … but cleave unto the Lord your God// (Joshua 23:6, 8).
O Lord Jesus, Son of God, Who showed most glorious wonders through Joshua, the son of Nun, Thy faithful servant, strengthen and encourage us that we not turn away from Thee, either to the right or to the left, for the sake of Thy glory and our salvation.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR SEBASTIAN AND THOSE WITH HIM
This glorious saint was born in Italy and brought up in the city of Milan. While still young, he dedicated himself to military service. Being educated, handsome and courageous, he received the favor of Emperor Diocletian, who appointed him captain of his imperial guard. Secretly he confessed the Christian Faith and prayed to the Living God. As an honorable, just and merciful man, Sebastian was greatly beloved by his soldiers. Whenever he could, he saved Christians from torture and death, and, when he was unable to do so, he exhorted them to die for Christ the Living God without turning back. Two brothers, Marcus and Marcellinus, who had been imprisoned for Christ and were already on the verge of denouncing Him and worshiping idols, were confirmed in the Faith by Sebastian, who strengthened them for martyrdom. As he spoke with them, encouraging them not to fear death for Christ, his face was illumined. Everyone saw his shining face, like that of an angel of God. Sebastian also confirmed his words by miracles: he healed Zoe, the jailer Nicostratus's wife, who had been mute for six years; he brought her, Nicostratus and his entire household to baptism; he healed the two ailing sons of Claudius the commander and brought him and his household to baptism; he healed Tranquillinus, the father of Marcus and Marcellinus, of gout and pains in his legs which had troubled him for eleven years, and brought him to baptism together with his entire household; he healed the Roman eparch Chromatius of the same illness and brought him and his son Tiburtius to baptism. The first of them to suffer was St. Zoe, whom they seized at the tomb of the Apostle Peter, where she was praying to God. After torturing her, they threw her into the Tiber River. They then seized Tiburtius, and the judge placed live coals before him, telling him to choose between life and death, that is, either to cast incense on the coals and to cense the idols or to stand barefoot on the hot coals. St. Tiburtius made the sign of the Cross, stood barefoot on the hot coals, and remained unharmed. After this, he was beheaded. Nicostratus was killed with a stake, Tranquillinus was drowned, and Marcus and Marcellinus were tortured and pierced with spears. Then Sebastian was brought before Emperor Diocletian. The emperor rebuked him for his betrayal, but Sebastian said: "I have always prayed to my Christ for your health and for the peace of the Roman Empire." The emperor ordered that he be stripped naked and shot through with arrows. The soldiers shot him through with arrows until the martyr was so completely covered with arrows that his body was not seen because of them. When all thought that he was dead, he appeared alive and completely healthy. Then the pagans killed him with staves. He suffered gloriously for Christ his Lord and took up his habitation in the Kingdom of Christ in the year 287 A.D. at the time of Diocletian the Emperor and Gaius the Bishop of Rome.
! SAINT FLORUS, BISHOP OF AMISUS
Florus lived at the time of the Emperors Justin II and Maurice (565-602). He was the son of nobles. He renounced the commotion and vanity of the world and withdrew to a monastery in order to live a life of asceticism for the salvation of his soul. Later he was chosen bishop of the town of Amisus in the province of Cappadocia. And as an ascetic and a hierarch, Florus pleased God, and he peacefully took up his habitation in the Kingdom of God.
! SAINT MODESTUS, PATRIARCH OF JERUSALEM
Modestus was only five months old when his parents died, but by God's providence he was brought up in the spirit of Christianity. When he became an adult, he was sold as a slave to a pagan in Egypt. However, he succeeded in converting his master to the Christian Faith, and his master granted him freedom. Modestus withdrew to Mount Sinai, where he lived a life of asceticism until the age of fifty-nine. He was then chosen as Patriarch of Jerusalem and fed the flock of Christ as a true shepherd. He entered peacefully into rest in the year 633 A.D., at the age of ninety-seven.
! HYMN OF PRAISE
!
! THE HOLY MARTYR SEBASTIAN
Holy Sebastian was covered with arrows--
With a hair shirt of arrows his body was clothed.
But, beneath the arrows, his soul was unscathed;
His heart was raised to the heavens in prayer.
Sebastian endured suffering for Christ.
What are mighty kingdoms, what are great riches,
Compared with this honor, compared with this illumination--
To be struck by arrows for the sake of the Living God?
Wonderful Sebastian desired this:
To be crucified for the crucified Savior,
To confirm the truth by suffering and blood,
To witness the Faith before heaven and earth.
The All-seeing Lord, Who sees all creation,
Measured and counted every drop of blood,
And rewarded Sebastian in the Eternal Kingdom,
Showering him with blessings without measure.
O Martyr most-glorious, who suffered for Christ,
And by your suffering enlarged the Church:
Pray to God for the Church on earth,
That it become ever more beautiful, and all the more great.
! REFLECTION
In this life, man is given a choice: either the earthly kingdom or the Kingdom of Heaven. God imposes no pressure on this choice, but each one freely decides. When the brothers Marcus and Marcellinus were condemned to death, the pagan judge allowed them a month to contemplate either renouncing Christ and His Kingdom or being put to death. Then their kinsmen came to the prison with one kind of advice, and St. Sebastian with another. The kinsmen wept and implored them to do as the judge willed and to spare their youth. Their tearful father showed them his gray hairs and his infirmity; their mother swore by the food of her breasts by which she nourished them; their children wept around them. In essence, all of them proposed that they should renounce the Heavenly Kingdom for the sake of the earthly kingdom, but St. Sebastian counseled them to the contrary, saying: "O courageous soldiers of Christ, do you want to lose the eternal wreath for the sake of the flattery of your kinsmen? Do you want to relinquish the victorious banner for the sake of women's tears? This life is transient; it is so unstable and unfaithful that it can never save even those who love it. What is this life worth even if one lives for a hundred years? When the last day arrives, do not all our past years and all earthly delights seem as though they had never existed? It is indeed unreasonable to fear to lose this quickly passing life, when one will receive that eternal life in which delights, riches and rejoicing begin and never end, remaining eternal to the ages of ages. Remember the Lord's words: //A man's foes shall be they of his own household//." With these and many other words, St. Sebastian prevailed. The holy martyrs loved the Kingdom of Heaven more than the earthly kingdom, and they joyfully went to their deaths for Christ.
! CONTEMPLATION
Contemplate Joseph's chastity (Genesis 39):
# How Potiphar's lustful wife urged Joseph to sin;
# How Joseph rejected her out of fear of God and respect for his master;
# How the woman grabbed his garment, but he left the garment and fled naked with his holy soul.
! HOMILY
! on Ruth
Thy people shall be my people, and thy God my God … naught but death shall part thee and me (Ruth 1:16,17).
These are wonderful words, whether they are spoken by a son to a father, a daughter to a mother, or a wife to a husband. But they are three times more wonderful when a daughter-in-law says them to her mother-in-law. Blessed Ruth spoke these words to Naomi, her sorrowful mother-in-law. When both of Naomi's sons died in the land of Moab, where they lived as immigrants, the aged mother wanted to return to Bethlehem, her native land, and there to lay her bones to rest. And Naomi, noble in her grief, counseled her young daughters-in-law to remain in their own land and to remarry. Orpah remained, but Ruth said: //Naught but death shall part thee and me//. Behold a most beautiful example of how a mother-in-law can tenderly love her daughters-in-law, and again how a daughter-in-law can be wholeheartedly devoted to her mother-in-law. But in Bethlehem someone had to feed these two souls. Who would feed them? God and the diligent hands of Ruth. //Let me now go to the field, and glean ears of corn//(Ruth 2:2), said the daughter-in-law to the mother-in-law. And Naomi replied: //Go, my daughter// (Ruth 2:3). In a strange field, with strange reapers, she had to glean the ears of grain. That was not only toil but also shame. However, Ruth took upon herself both toil and shame out of love for her aged mother-in-law. The All-seeing God saw these two sweet souls and rejoiced. Their Creator rejoiced and rewarded and glorified them, as only He knows how to reward and glorify those who fear Him. And God, in His providence, provided that Ruth should enter the field of the wealthy Boaz to gather the gleaned ears of grain, and Boaz saw Ruth and asked Naomi for her hand in marriage. Of this marriage was born Obed, the father of Jesse and grandfather of David the King. So it was that Ruth had humbled herself to being a beggar but God made her the ancestress of the great king (David), from whom came many kings and finally the King of kings, our Lord Jesus Christ.
O All-seeing and Gracious Lord, how wonderful art Thou in Thy providence toward the righteous and the merciful. Do Thou guide us also and have mercy on us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR BONIFACE
Martyrdom for Christ makes a saint out of a sinner. The example of St. Boniface shows this. At first, he was a servant in Rome to a wealthy and immoral woman, Aglaida, and had impure and unlawful relations with her. They were both pagans. Once, Aglaida desired to have the relics of a martyr in her house as an amulet to protect against evil, so she sent her servant to Asia to find and purchase what she desired. Boniface took several slaves with him and a large amount of money. Before parting with Aglaida, he said to her: "If I cannot find a martyr, but instead they bring you back my body martyred for Christ, will you receive it with honor, my lady?" Aglaida laughed and called him a drunkard and a sinner, and then they parted. Coming to the city of Tarsus, Boniface saw many Christians undergoing torture: some with their legs cut off, others with their hands severed, others with their eyes plucked out, still others on the gallows, and so forth. Boniface's heart was changed, and he repented of his sinful life and wept. He cried out among the Christian martyrs: "I too am a Christian!" The judge took him for interrogation and ordered that he be harshly flogged, then that boiling lead be poured into his mouth, and--since this did him no harm--that he be beheaded. The slaves then took his body and carried it to Rome. An angel of God appeared to Aglaida and said: "Receive the one who was once your slave but now is our brother and fellow servant; he is the guardian of your soul and the protector of your life." The awestruck Aglaida came out to meet them, received the body of Boniface, built a church for him, and placed the relics of the martyr in it. She then repented, gave away her goods to the poor, withdrew from the world, and lived for fifteen more years in bitter repentance. St. Boniface suffered in the year 290 A.D.
! SAINT GREGORY (GRIGENTIUS), BISHOP OF OMIR
At first, Gregory was a deacon in a church in Mediolanum [Milan] and had many visions. By God's providence he was taken to Alexandria. There Patriarch Proterius, according to a heavenly revelation, consecrated him bishop of the land of Omir in southern Arabia, which St. Elesbaan the King (October 24) had just freed from the tyranny of Dunaan the Jew. He was a good shepherd and great miracle-worker. He organized the Church in Omir with the help of the Christ-loving King Abramius, built many churches, and baptized many Jews. By his prayers he performed great and awesome miracles, even bringing about a revelation of Christ the Lord before the unbelieving Jews, which led to their baptism. He governed the Church for thirty years and entered peacefully into life eternal in the year 552 A.D.
! SAINT BONIFACE THE MERCIFUL, BISHOP OF FERENTINO
From his childhood, Boniface was unusually kind, so much so that his mother scolded him for this. However, aided by prayer, Boniface received a hundredfold from the Lord. He died peacefully in Italy in the sixth century.
! THE VENERABLE ELIAS OF MUROM
Elias was a monk of the Monastery of the Kiev Caves. He died in the year 1188 A.D., and his incorrupt relics are miracle-working. Even until now, three fingers on his right hand remain placed together for prayer, showing that he died at prayer. This is a reproach to those who do not make the sign of the Cross with three fingers.
! HYMN OF PRAISE
!
! THE HOLY MARTYR BONIFACE
A sinful soul was in Boniface,
A sinful soul oppressed by sin.
He repented and, through Christ, began to shine,
And a hundred times he sighed.
He beheld the suffering of the holy martyrs;
He beheld the sufferings, and melted like wax.
He wept, and by his tears he was sanctified,
Repenting for all his sins.
What is life? It is intended for sacrifice:
Either to the devil or to the Creator.
The first sacrifice stinks like a dead corpse,
The second ascends to the Savior.
Repentance means restoration to life,
And it was restoration for Boniface.
For the salvation of his soul, he sacrificed his body;
He purchased the Kingdom with a sack of bones.
The distance from a sinner to a penitent,
And from a penitent to a martyr,
Is no further than one finger is from another,
Is no further than the earth is from the Cross.
! REFLECTION
Can faith move mountains? (Matthew 17:20). Without a doubt it can, and it can do even more than that: by faith, God Himself can be moved to mercy toward us sinners. In the Omirian town of Safar, the majority of the inhabitants were Jews. St. Gregory endeavored to convert them to Christianity. Then the Jews suggested to St. Gregory and to King Abramis that they should have a debate about faith with the assurance that if they [the Jews] were defeated then all of them would enter the Christian Faith. This debate lasted several days in the presence of several thousand people, both Jews and Christians. The Jews, seeing that they would be defeated by Gregory's irrefutable reasons and proofs, sought from Gregory that, in some way, he show them Christ alive so that they might see Him with their own eyes and then they would believe. Having great boldness before the Lord because of the purity of his heart, St. Gregory knelt facing east and, before everyone, began to pray to God. When he had finished his prayer, the earth quaked, thunder clapped, and the heavens opened in the east. A cloud, glowing with a flaming fire and shining rays, moved from the east and then slowly descended to the earth toward that place where the assembly of people had gathered. In the midst of the cloud there stood a man of inexpressible beauty, with a face of extraordinary brightness and in a vesture that appeared to be woven of lightning. He moved upon the cloud until He came over Bishop Gregory himself. Everyone saw Him in unsurpassable glory and beauty, and in fear fell to the ground on their faces. Gregory cried out: "One is Holy, One is the Lord, Jesus Christ, to the glory of God the Father. Amen." At this, there came a voice to the Jews from the Lord's glory: "For the sake of the bishop's prayers, He Who was crucified by your fathers heals you." And the shining cloud moved away as slowly as it came. After that, the Jews were baptized.
! CONTEMPLATION
Contemplate the humility of Moses before God:
# How Moses always emphasized God and never himself;
# How he looked for all strength, for all good, and for all help from God only, and not from anyone else;
# How, in all labor, he humbly turned to God for help and leadership.
! HOMILY
! on Samuel
For this child I prayed; and the Lord hath given me my petition which I asked of Him. Therefore also I have lent him to the Lord; as long as he liveth he shall be lent to the Lord (I Samuel 1:27-28).
Besought of God and dedicated to God, Samuel was a prophet and leader of the people of Israel. The blessed Hannah, his childless mother, besought him from God with tears and sacrifices. And she gave him, her one and only greatest blessing, to the service of the Lord from his infancy. A wise mother does not consider her children as her own, but rather as God's. They are God's both when God gives them and when He takes them, but they are mostly God's when a mother herself dedicates them to Him. God's gift is returned to Him as a reciprocal gift, for we have nothing of our own to give to Him but only that which we receive from Him. The young Samuel lived in the Temple among the iniquitous sons of Eli the high priest, and he did not become corrupt. The Lord would not reveal Himself to the sinful elders, but He appeared to this pure child: for Samuel did the will of God, //and did let none of his words fall to the ground//(I Samuel 3:19). Samuel was a judge of the people of Israel from his youth to old age and committed nothing wrong either before God or before the people. God gave him the power to prophesy and work miracles. He defeated all of God's enemies and the enemies of the people, and he anointed two kings, Saul and David. When he grew old, he called the people together and asked them if he had ever committed any violence against anyone or accepted a bribe from anyone. And the people replied with one voice: //Thou hast not defrauded us, nor oppressed us, neither hast thou taken ought of any man's hand// (I Samuel 12:4). Behold, such a man was he, who was given by God and given to God as a reciprocal gift, and who grew up with the blessing of God and the blessing of his mother. Let mothers benefit from the example of the blessed Hannah; let judges and rulers of the people benefit from the example of the righteous Samuel.
O Holy and Most-holy Lord, gracious and most gracious, open our souls to see Thy holiness and Thy goodness, that we may repent of our evils.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET HABAKKUK
Habakkuk was the son of Asaphat from the tribe of Simeon. He prophesied six hundred years before Christ, during the time of King Manasseh, and foretold the destruction of Jerusalem. When Nebuchadnezzar, King of Babylon, attacked Jerusalem, Habakkuk sought refuge in the land of the Ishmaelites. From there he returned to Judea, where he lived as a farmer. One day he was carrying lunch to the workers in the fields, when suddenly an angel of the Lord appeared to him and said: //Go carry the dinner that thou hast into Babylon unto Daniel, who is in the lion's den//(Daniel 14:34//). But Habakkuk responded: //Lord, I never saw Babylon; neither do I know where the den is// (Daniel 14:34-35). Then the angel took him by the hair and instantly brought him to Babylon, over an immense distance, to the lion's den, where Daniel had been cast by King Cyrus as a punishment for not worshiping the idols. //O Daniel, Daniel,// cried Habakkuk, //take the dinner which God hath sent thee// (Daniel 14:37), and Daniel took it and ate. Then the angel of God again took Habakkuk and carried him back to his field in Judea. Habakkuk also prophesied the liberation of Jerusalem and the time of the coming of Christ. He entered into rest in ripe old age and was buried at Kela. His relics were discovered during the reign of Theodosius the Great.
--------------------
//(//Editor's Note: Daniel 14 is from the Greek text [the Septuagint] of the Apocrypha of the Old Testament, and is also known as Bel and the Dragon.)//
! THE HOLY FEMALE MARTYR MYROPE
Myrope was born in Ephesus of Christian parents. After the death of her father, she moved with her mother to the island of Chios, where she suffered for Christ. The suffering of this holy virgin took place soon after the suffering and death of the glorious Martyr Isidore the soldier (May 14). When the torturers had beheaded Isidore, the courageous Myrope secretly took his body, censed it, and honorably buried it in a special place. The villainous prince Numerian heard that the martyr's body had been stolen and wanted to kill the guards. Learning that innocent men would suffer for her good deed, blessed Myrope appeared before the authorities and acknowledged that she had taken the martyr's body and buried it. By order of the prince, the entire body of Christ's holy virgin was severely whipped, and finally she was cast into prison covered with wounds. But the Lord did not leave His martyr comfortless. At midnight a heavenly light illumined the prison, and many angels, with St. Isidore in their midst, appeared to her. "Peace be to you, Myrope," St. Isidore said to her. "Your prayer has reached God, and soon you will be with us and will receive the wreath prepared for you." The holy martyr rejoiced and at that moment surrendered her soul to her God. A sweet fragrance issued from her body, filling the entire prison. One of the guards, seeing all of this and sensing the fragrance, believed in Christ, was baptized, and soon received a martyr's death. St. Myrope took up her habitation in eternity in the year 251 A.D.
! SAINT UROŠ, KING OF SERBIA
Uroš was the son of Tsar Dušan. He reigned during the difficult time of the collapse of the Serbian kingdom. Meek, devout and gentle, he did not want to subjugate the unrestrained nobles by force, among whom the most violent was Vukašin, who ended the good king's life. The good Uroš suffered a martyr's death on December 2, 1367 A.D., at the age of thirty-one. Slain by men, he was glorified by God. His miracle-working relics rested in the Jazak Monastery in Fruška Gora, whence they were translated to Belgrade during the Second World War. They were placed in the Cathedral Church alongside the relics of Prince Lazar and the Despot Stefan Štiljanović. During the reign of this good king, the Monastery of St. Nahum beside Lake Ohrid was built by Grgur, one of Uroš's nobles.
! THE VENERABLE ATHANASIUS, RECLUSE OF THE MONASTERY OF THE KIEV CAVES
This holy man died after a long life of asceticism and was bathed, clothed and prepared for burial by his brethren. Athanasius lay dead for two days and suddenly came to life. When they came to bury him, they found him sitting up and crying. After that, he closed himself in his cell and lived for twelve more years on bread and water, not speaking a word to anyone. He entered into rest in the Lord in the year 1176 A.D.
! SAINT ISE [JESSE], BISHOP OF TSILKANI
Ise is one of the Thirteen Syrian Fathers (May 7). He was a great miracle-worker. By his prayers, he re-routed a distant river to flow close to the city of Tsilkani. His relics rest in a church dedicated to him in Tsilkani in Georgia.
! HYMN OF PRAISE
! SAINT UROŠ, KING OF SERBIA
Like the wind, Dušan's power passed away,
But Uroš's holiness forever remains.
Weak in tyranny, powerful in virtue;
Powerful in virtue, righteousness and truth;
Uroš, with all his heart, fell in love with Christ God,
Gaining heaven and losing the world.
No sin tainted his soul.
Defeated, he conquered; slain, he lives.
All the Serbian nobles, proud and hot-tempered,
While living could not do
That which now the relics of St. Uroš do--
Uroš the Powerful, the God-pleaser.
Rich men, turned to dust, no longer reign,
But the crowned Uroš, rich in justice and God's truth,
Even now reigns,
And eases the pains of his people,
Offering up prayers before Christ in Paradise,
Imploring mercy for his people from the Lord.
O King Uroš, holy and noble one,
Help us to fulfill God's law!
! REFLECTION
"Who has ever returned from the other world to inform us of it?" Thus the unbelievers ask. One should reply to them: "Repent of your sins if you wish to find out; make yourselves worthy and you will see." St. Habakkuk traveled with an angel. St. Myrope saw a host of angels and among them the martyr, St. Isidore. St. Athanasius of the Kiev Caves was dead to this world for two days and alive only in the other world. Upon the return of his soul to his body, they gathered around him and asked him: "How did you return to life? What did you see? What did you hear?" He would say nothing about it, being totally in horror at that which he had seen in the other world, and would only say: "Save yourselves!" When they pressured him to tell a little more of what he had seen in the other world after death, he replied: "Even if I should tell you, you would not believe me or listen to me." When they urged him yet further, however, he said among other things: "Repent every moment and pray to the Lord Jesus Christ and to His Most-pure Mother." Even in our own time, there are cases of those who have temporarily died, and the visions and accounts of those who have returned to life in the body do not contradict but rather complement one another. For example, every person who dies sees one part of that other world that is vast and incomparably larger than this world. Many people, at death, see their long-dead relatives and speak with them. This is almost a common occurrence. In 1926 A.D., in the village of Vevčani, Meletije P. was on his deathbed. He spoke with his children, who had died twenty years earlier. When his living relatives said to him, "You're rambling!'' he replied, "I am not rambling, but rather I am speaking with them as I am speaking with you, and I see them as I see you."
! CONTEMPLATION
Contemplate the sinful fall of Adam and Eve (Genesis 3):
# How Adam and Eve, before their sin, were clothed in innocence and did not see themselves naked;
# How, after sinning, Adam and Eve saw themselves naked and hid themselves from God;
# How every virtue is clothing, and every sin is nakedness.
! HOMILY
! on the joyful revelations in the first sentence of the Bible
In the beginning God created the heaven and the earth (Genesis 1:1).
How compact and full is God's every word! It is like folded linen, which can be carried under the arm and spread upon the grass over a large area. How many, many priceless good things does this word of God reveal to us: //In the beginning God created the heaven and the earth.// First of all, it shows us that God is the only eternal and uncreated One. And this first revelation brings about in us the first inexpressible joy. In this whirlpool of change and transience, we are inexpressibly happy that our Creator is beyond change and transience. It further tells us that the one and only good God is the Creator of the world, and since He is the Creator, He is also both the Almighty and the Provider. And this second revelation brings about in us a second inexpressible joy. The world did not proceed out of chaos or chance, without thought and purpose, rather it proceeded from the All-wise God, omniscient and most-merciful, Who is in control of it and is guiding it toward its intended goal. It further reveals to us that this world had a beginning, and consequently it will have an end. And this third revelation brings about in us inexpressible joy. For it would be sad if this world were eternal, and if all its goals, immediate and distant, were to be found only within itself. This would indeed cause a whirlpool in the mind of the intelligent, and sadness in the heart of the righteous. It finally points out to us that God created two worlds, the heavenly and the earthly, or the incorporeal and the corporeal. And this fourth revelation brings us a fourth inexpressible joy. As we now raise our gaze to the heights and rejoice in the sun, moon and stars above our heads, so we can raise our spirit to the spiritual world, toward the angelic world, which is akin to us but purer and brighter than us. We rejoice, for we know that there is a world better than ours, which we will also enter and, like weary travelers, return home and find rest. Oh, how sadly would men's gaze wander around the world if this were the only world and there were no starry heavens! And how sorrowfully would the spirit of man wander in the material world if there were not a spiritual world, the heavenly!
O Most-gracious Lord, glory to Thee and praise.
! To Thee alone be glory and praise forever. Amen.!
! THE HIEROMARTYR IGNATIUS THE GOD-BEARER
This holy man is called "the God-bearer'' because he constantly bore the name of the Living God in his heart and on his lips. According to tradition, he was thus named because he was held in the arms of God Incarnate, Jesus Christ. On a day when the Lord was teaching His disciples humility, He took a child and placed him among them, saying: //Whosoever therefore shall humble himself as this little child, the same is greatest in the Kingdom of Heaven// (Matthew 18:4). This child was Ignatius. Later, Ignatius was a disciple of St. John the Theologian, together with Polycarp, Bishop of Smyrna. As Bishop of Antioch, Ignatius governed the Church of God as a good shepherd and was the first to introduce antiphonal chanting in the Church, in which two choirs alternate the chanting. This manner of chanting was revealed to St. Ignatius by the angels in heaven. When Emperor Trajan was passing through Antioch on his way to do battle with the Persians, he heard of Ignatius, summoned him and counseled him to offer sacrifice to the idols. If Ignatius would do so, Trajan would bestow upon him the rank of senator. As the counsels and threats of the emperor were in vain, St. Ignatius was shackled in irons and sent to Rome in the company of ten merciless soldiers, to be thrown to the wild beasts. Ignatius rejoiced in suffering for his Lord, only praying to God that the wild beasts would become the tomb for his body and that no one would prevent him from this death. After a long and difficult journey from Asia through Thrace, Macedonia and Epirus, Ignatius arrived in Rome, where he was thrown to the lions in the circus. The lions tore him to pieces and devoured him, leaving only several of the larger bones and his heart. This glorious lover of the Lord Christ suffered in the year 106 A.D. in Rome at the time of the Christ-hating Emperor Trajan. Ignatius has appeared many times from the other world and worked miracles, even to this day helping all who call upon him for help.
! SAINT DANILO, ARCHBISHOP OF SERBIA
Danilo was the son of wealthy and God-loving parents. In his youth he was given a good upbringing. King Milutin took him to his court, but out of great love for God he fled and was tonsured a monk in the Monastery of Končulsk near the Ibar. Later, he was the abbot of the Monastery of Hilandar [Mount Athos] and suffered much from the plundering Latin Crusaders. He was the Bishop of Banja, then of Hum, and finally the Archbishop of Serbia. From beginning to end, he was a strict ascetic and had the special gift of tears. He made peace between Kings Dragutin and Milutin, and later between Milutin and Stefan of Dečani. He fought fervently against the Latins as well as the Bogomils. Under his supervision, the Monasteries of Banja and Dečani were built, and he restored and built many other churches. He wrote the genealogy of the Serbian kings and saints. Untiring in his service to God to the end of his life, he entered peacefully into rest on the night between the nineteenth and twentieth of December, 1338 A.D., during the reign of Tsar Dušan. Danilo was a great hierarch, a great ascetic, a great laborer and a great patriot.
! HYMN OF PRAISE
! THE HIEROMARTYR IGNATIUS THE GOD-BEARER
O Hierarch of Christ, wonderful and exemplary,
O gracious Hierarch, not an adversary of God,
Not from among the opponents of God, who killed Christ,
But from among the God-bearers, who loved Christ--
Holy Ignatius, God-bearing man,
You do we glorify; of you we are proud.
Emperor Trajan offered you titles and honors,
If only you would bow down before the idols.
You amazed the emperor, for you did not consent
To betray the Lord, not for the entire kingdom.
Instead, you went joyfully to death, O God-bearing Father;
For that we glorify you; of you we are proud.
Thrown before wild beasts, quietly you wait.
Rome seeks amusement; they toy with you!
"I am God's wheat!" you exclaimed there.
"The beasts shall grind me, to become good bread!"
And now, where is Trajan? But you are an inhabitant of heaven.
You are a hymn to the angels, and to us a teacher.
Holy Ignatius, you who bore God,
Entreat God to grant us the Bread of Life!
! REFLECTION
The holy martyrs, seized with the love of Christ, were like unquenchable flames. This love eased their sufferings and made their deaths sweet. St. Chrysostom says of St. Ignatius: "He put off his body with as much ease as one takes off his clothes." Traveling to Rome to his death, Ignatius feared only one thing: that Christians would somehow prevent his martyrdom for Christ, by their prayers to God or in some outward manner. Therefore he continually implored them, in writing and in speech, not to do this. "Forgive me," he said. "I know what is for my benefit. I but begin to be a disciple of Christ when I desire nothing, either visible or invisible, save to attain Christ. May every diabolical torture come upon me: fire, crucifixion, wild beasts, the sword, tearing asunder, the crushing of my bones, and the dismemberment of my whole body--only that I may receive Jesus Christ. It is better for me to die for Christ than to reign to the ends of the earth…. My love is nailed to the Cross, and there is no fire of love in me for any earthly thing." When he was brought to the circus, he turned to the people with these words: "Citizens of Rome, know that I am not being punished for any crime, neither have I been condemned to death for any transgression, but rather for the sake of my God, by Whose love I am overcome and Whom I insatiably desire. I am His wheat, and the teeth of the wild beasts will grind me to be His pure bread." When he had been devoured by the wild beasts, by God's providence his heart remained among the bones. When the unbelievers cut open the saint's heart, they saw inside, inscribed in golden letters, the name Jesus Christ.
! CONTEMPLATION
Contemplate the courage of Joshua the son of Nun:
# How Joshua held unswervingly to all the Lord's commandments;
# How, with faith in God's help, he courageously entered into every battle against the enemies of his people;
# How he was victorious everywhere and ascribed all his victories to God.
! HOMILY
! on David
And David said to Nathan: I have sinned against the Lord (II Samuel 12:13).
My tears have been my food day and night (Psalm 42:3).
King David sinned against God and repented, and God forgave him. The king's sin was great, but greater still was his repentance. He was guilty before God of two grave sins: adultery and murder. But when Nathan the prophet of God denounced him, he cried out in anguish: //I have sinned against the Lord!//Thus he confessed his sin and repented bitterly, most bitterly. Grief-stricken, he prayed to God, weeping, fasting, lying on the ground, and enduring meekly the terrible blows that God sent upon him, his house and his people because of his sins. In his penitential Psalms he says: //I am a worm and not a man// (Psalm 22:6); //Because of the sound of my groaning, my bones cling to my flesh// (Psalm 102:5); //I lie awake … for I have eaten ashes like bread and mingled my drink with weeping// (Psalm 102:7, 9); //My knees are grown weak through fasting// (Psalm 109:24). Here is true repentance; here is a true penitent! He did not become hardened in sin nor did he fall into despair, but, hoping in the mercy of God, he repented unceasingly. And God, Who loves the penitent, showed mercy upon this model of penitence. God forgave him and glorified him above all the kings of Israel; He gave him the great grace to compose the most beautiful penitential prayers and to prophesy the coming into the world of the Holy Savior, Who would be of his seed. Brethren, do you see how wonderful is God's mercy toward penitents? So much mercy did God have on this repentant David that He was not ashamed to take upon Himself flesh from David's seed. Blessed are they who do not become hardened in sin and who do not fall into despair because of sin. Repentance saves both the one and the other from evil.
O Merciful Lord, soften our hearts with tears of repentance.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR JULIANA AND THE 630 MARTYRS WITH HER
This glorious virgin and martyr was born in Nicomedia of pagan parents. Hearing the Gospel preached, she turned to Christ with all her heart and began to live in exact observance of the Lord's commandments. Eleusius, a senator, was her betrothed. In order to turn him away, Juliana told him that she would marry him only if he became the eparch of that city. She suggested this to him, thinking that this young man would never attain such a high position. Nevertheless, Eleusius tried and, by flattery and bribery, attained the post of Eparch of Nicomedia. Juliana then revealed to him that she was a Christian and could not enter into marriage with him until he embraced her Faith, saying: "What does it benefit us to be united physically but divided spiritually?" Embittered by this, Eleusius denounced her to her father. The enraged father scorned her, beat her, and then handed her over to the eparch for torture. The eparch ordered that they severely beat her, then she was cast into prison, all wounded and bloody. However, the Lord healed her in prison, and she appeared before the eparch completely well. He then threw her into a glowing furnace but the fire did not burn her. Seeing this miracle, many believed in Christ God. Five hundred men and one hundred and thirty women were converted. The eparch condemned them all to death and ordered them all to be beheaded. Thus their souls entered Paradise. Then the wicked judge condemned holy Juliana to be beheaded. With a joyful spirit, Juliana went out to the place of execution, prayed to God on her knees, and placed her head on the block. Her head was severed and her soul went to the Kingdom of Christ's eternal light in the year 304 A.D. God's punishment quickly befell Eleusius: as he was sailing on the sea, his ship broke up and he fell into the water. He did not find death in the water, but swam to an island, where dogs tore him to pieces and devoured him.
! SAINT PETER THE WONDERWORKER, METROPOLITAN OF RUSSIA
Peter was born in the province of Volhynia and embraced the monastic life at the age of twelve. He was a wonderful ascetic and iconographer. He founded a monastery on the river Rata and became its abbot. Against his will, he was appointed Metropolitan of Kiev and consecrated in Constantinople by Patriarch Athanasius. As metropolitan, he endured much at the hands of the envious and the heretics. He governed the Church for eighteen years as a good and zealous shepherd. During his lifetime he built a crypt for himself in the Church of the Dormition, where his holy and miracle-working relics repose even today. He entered into rest in the year 1326 A.D. and went to his true homeland.
! THE HOLY MARTYR THEMISTOCLES
As a shepherd, the young Themistocles tended sheep in a field near the city of Myra in Lycia. At that time the persecutors of Christians were pursuing St. Dioscorides, and they came upon Themistocles in the field. They asked him if he saw the one being pursued and if he knew where he was hiding. Themistocles, although he knew, refused to say, but instead declared himself a Christian. He was tortured and beheaded at the time of Decius in the year 251 A.D.
! HYMN OF PRAISE
! THE MOTHER OF SAINT PETER, METROPOLITAN OF RUSSIA
The glorious mother of Peter the Saint,
When she was pregnant with Peter,
Dreamed a dream, and saw in that dream
That, in her hands, she held a lamb:
With slender horns, a lamb all white.
Between the lamb's horns was a most beautiful tree,
And on the tree were fragrant flowers,
And fragrant fruits around the flowers.
The tree's branches were adorned with candles,
Glowing candles like shining stars,
Redolent with a heavenly scent.
The dream of the mother was wonderfully realized:
The meek lamb prefigured Peter,
The horns--Peter's bravery,
The beautiful tree--the soul of the saint,
The multicolored flowers--his multitude of virtues,
The fruits--his works of mercy,
The glowing candles--his faith and prayer.
That which was revealed in an image to the mother
Was shown in truth in Peter.
! REFLECTION
Whoever climbs to the Kingdom of Christ must encounter obstacles, and these obstacles are numerous and varied. Especially dangerous are the evils of the demons. Therefore, every man zealous for the spiritual life must be especially cautious and not accept every shining vision from the other world as a divine revelation. That even the devil is able to appear as an angel of light is shown in the life of the Holy Martyr Juliana. When this holy virgin lay in prison, the devil appeared to her in angelic light, and he counseled her to offer sacrifice to the idols so as to end her tortures. The frightened Juliana asked: "Who are you?" The devil replied: "I am an angel of God! God is greatly concerned about you. Therefore, He sent me with the message that you should submit to the eparch, so that your body will not be destroyed by pain; the Lord is gracious and will forgive you because of the weakness of your wounded body." The martyr was horrified at these words. Confused, she fell down in tears in prayer to God, asking Him to reveal who had spoken with her. Then a voice from heaven came to her: "Be brave, Juliana, I am with you; I give you authority and power over him who came to you, and from him alone will you discover who he is." And the devil was bound and forced to acknowledge that he was the same one who had deceived Eve in Paradise, who had told Cain to murder Abel, Herod to slaughter the children of Bethlehem, the Jews to stone Stephen, Nero to crucify Peter upside down and to behead Paul, and so forth. Thus, this holy virgin, girded with the power of God, did not allow herself to be deluded by the evil spirit, but she defeated him by her vigilant and ardent prayers to God.
! CONTEMPLATION
Contemplate David's repentance:
# How King David did not sin while he was a shepherd and a simple subject;
# How, as king, he sinned against God;
# How he immediately recognized his sin, confessed it and repented bitterly.
! HOMILY
! on Elias the Prophet
As the Lord God of Israel liveth, before whom I stand, there shall not be dew nor rain these years but according to my word (I Kings 17:1).
These words are terrible sounding to every mortal ear, for a man spoke them, a man //subject to like passions as we are//(James 5:17). You ask yourselves, brethren, how can a mortal man shut up the heavens and stop the rain? But ask yourselves: how can a mortal man open the heavens and bring down rain upon the parched ground? We know that even now God opens the heavens and gives rain at the prayers of men: //And all things, whatsoever ye shall ask in prayer, believing, ye shall receive// (Matthew 21:22), says our Savior. As Moses, by living faith and prayer, worked awesome miracles in Egypt and in the wilderness, as Joshua the son of Nun held back the course of the sun, so also God's prophet Elias shut and opened the heavens, brought down fire from heaven, and worked other mighty and awesome miracles all through faith and prayer. God gave Elias the power to work such miracles, for Elias was zealous for the glory of God and not for his own glory: //I have been very jealous for the Lord God of hosts// (I Kings 19:14). This man of God sought nothing for himself but sought everything for God. God was everything to him: all glory, all strength, all good. Therefore, God crowned him with immortal glory, awesome might, and treasure which does not decay and which moths do not corrupt. God did not permit Elias to die but took him to heaven as he did Enoch. St. Elias had a soul as pure as the morning dew, a body as chaste as a child's, and a heart and mind as blameless as that of an angel of God. Therefore, he was and remains a vessel of God's power. He worked wonders then and works them today.
O Living Lord, the God of Thy Prophet Elias, Who hast adopted us through baptism by Thy holy grace: enkindle also in us the faith and zeal of Thy holy prophet.
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT-MARTYR ANASTASIA THE DELIVERER FROM BONDS, AND OTHERS WITH HER
This glorious heroine of the Christian Faith was born in Rome into a wealthy senatorial family of a pagan father and a Christian mother. From her early youth, she clung in love to the Lord Jesus, guided in the teaching of Christ by a devout teacher, Chrysogonus. Anastasia was forced by her father to enter into marriage with a pagan landowner, Publius. Excusing herself on the basis of a female illness, she in no way wished to enter into physical relations with him. For this, her husband tortured her harshly by confinement and starvation. He inflicted even more tortures upon her when he learned of her secret visits to the prisons of the Christian martyrs: bringing them provisions, ministering to them, bathing their wounds and loosening their bonds. But by God's providence she was freed from her wicked husband. Publius was sent to Persia by the emperor, and while sailing on the sea he was drowned. St. Anastasia then began to minister freely to the tortured Christian martyrs and to comfort the poor, giving them alms from her great inheritance. At one time the Emperor Diocletian was in the town of Aquileia and ordered that Chrysogonus, the confessor of Christ, be brought to him. St. Anastasia accompanied him on the way. Holy Chrysogonus was beheaded by order of the emperor, and then three sisters--Agape, Chionia and Irene--also suffered (April 16): the first two were cast into fire and the third was shot through with arrows. St. Anastasia took their bodies, wrapped them in white linen, anointed them with many aromatic spices, and honorably buried them. Following this, Anastasia went to Macedonia, where she helped the sufferers for Christ. There she became well known as a Christian, for which she was seized and brought before various judges for interrogation and torture. Desiring to die for her beloved Christ, Anastasia constantly longed for Him in her heart. A certain chief of the pagan priests, Ulpianus, lustfully tried to touch St. Anastasia's body, but he was suddenly blinded and breathed his last. Condemned to death by starvation, St. Anastasia lingered in prison for thirty days without food, nourishing herself only on tears and prayer. Then she was placed in a boat with several other Christians to be drowned, but God delivered her even from this death. She was finally tied by the feet and hands to four wheels over a fire, and she gave up her holy soul to God. She suffered and took up her habitation in the Kingdom of Christ in the year 304 A.D.
! THE HOLY MARTYR THEODOTA WITH HER THREE CHILDREN
Being left a young widow with three children, Theodota gave herself completely to the service of God and the rearing of her children in devout faith. St. Anastasia lived with her when she was in Macedonia, and together they visited the Christian prisoners in the jails. Brought to trial, Theodota boldly confessed Christ the Lord. Then she was sent to Nicetas, the proconsul of Bithynia. When a shameless pagan tried to touch her body, he immediately saw an angel of God beside her and was struck by the angel. Condemned to death and cast into a fiery furnace together with her three children, St. Theodota honorably ended her earthly life and entered into the Kingdom of Eternal Glory.
! HYMN OF PRAISE
! THE HOLY GREAT-MARTYR ANASTASIA, THE DELIVERER FROM BONDS
The holy maiden Anastasia serves God;
She shines before God by faith, hope and deeds.
The maiden leaves husband, honor and riches,
And gladly serves the captives, glorifying God.
She looses the bonds, and washes the wounds of the martyrs;
She looses their bonds, giving gifts and not fetters.
She seeks payment neither from men nor from the earth.
Christ God eases her soul and heart.
Her pains have passed, and Anastasia remains in glory;
She now rejoices with the angels in heaven.
! REFLECTION
The merciful God often sends comfort to those pleasing to Him on earth from the other world through his saints. St. Theodota suffered for Christ before St. Anastasia. Anastasia was then cast into a confined and dark prison to die of hunger, according to the judgment of the torturers. During the thirty days of her imprisonment, St. Theodota appeared to Anastasia every night from the other world and strengthened her in her suffering. Anastasia spoke of many things with St. Theodota and asked numerous questions. One night she asked her how she was able to come to her after her death. Theodota replied that the souls of the martyrs are given special grace from God, so that after departing this world they may return to speak to whomever they desire for the imparting of instruction and comfort. When thirty days had passed, the torturer brought St. Anastasia out of prison and was amazed to see her still alive. He then condemned her, along with several others, to be drowned in the sea. The Christians were put into a small boat by the soldiers, who set sail in another. When the Christians were brought out into the deep, the soldiers upset the boat, so that the water would enter and drown the condemned. Then a miraculous vision took place: St. Theodota appeared on the water and guided the boat to shore. Thus, all who were condemned to death were saved with Anastasia. Seeing this miracle of God, one hundred and twenty pagans immediately believed in Christ and were baptized.
! CONTEMPLATION
Contemplate David's sufferings because of sin:
# How misfortune arose in David's house: one of his sons rose up against the other, and a brother against his sister;
# How Absalom initiated a war against his father David;
# How misfortune befell the entire people because of the king's sin.
! HOMILY
! on long-suffering Job
The Lord gave and the Lord hath taken away (Job 1:21).
Brethren, let the righteous one fear nothing; all shall be well with him. The whole of Sacred Scripture shows us that God will never forsake the righteous. The example of Job shows us this as clearly as the sun. Job had seven sons and three daughters; he had riches, respect among the people, and friends. And he lost all of this in one day. He did not grumble against God but //fell down upon the ground and worshiped and said, Naked came I out of my mother's womb and naked shall I return thither//(Job 1:20-21). Then Job lost his health, the last of what he had, and his entire body, from the top of his head to the heels of his feet, was covered with sores and pus. And Job sat in ashes and lifted up praise to God. His wife tried to persuade him to renounce his God, but righteous Job said to her: //Shall we receive good at the hand of God, and shall we not receive evil?// (Job 2:10). His friends reproached him, saying that he was sinful and proud in his understanding and righteousness before them, but Job humbly prayed to God and patiently endured all his wounds and misfortunes.
It happens today, as it did then, that when some misfortune befalls us, our neighbors consider themselves to be more intelligent and more righteous than we are. But the most wise God permitted all these misfortunes to fall on Job in order to test not only Job His servant but also his kinsmen and his friends. When each of them had shown what kind of person he was, when each of them had been tested before God, then God, with His almighty right hand, restored Job to health, returned twice as much wealth as He had taken away, and gave him again seven sons and three daughters.
He who has strong faith, brethren, has clear spiritual sight, so that he can see the finger of God in his prosperity as well as in his suffering. He who has strong faith also has great patience in suffering. When God gives to him, he gives thanks, and when God takes away, he blesses: //Blessed be the name of the Lord// (Job 1:21).
O Lord, the God of the long-suffering and patient Job, teach us to bless Thy name in our sufferings.
To Thee be glory and praise forever. Amen.
! THE TEN HOLY MARTYRS OF CRETE
They suffered for Christ the Lord during the persecution of Decius in the year 250 A.D. Their names were Theodulus, Saturnicus, Euporus, Gelasius, Eunician, Zoticus, Pompeius, Agathopous, Basilides and Evaristus. They were all eminent and honored citizens, the best among the best. When they were brought to the place of execution they were elated, and they discussed among themselves which of them would be the first to be beheaded, for each one of them wanted to be the first to go to his beloved Christ. Then they prayed: "O Lord, forgive Thy servants and accept our blood, which is about to be shed, as an offering on our behalf and for our kinsmen and friends and for all of our fatherland, that all may be freed from the darkness of ignorance and may know Thee, the True Light, O Eternal King!" They were beheaded and entered into the Kingdom of Glory to rejoice eternally.
! SAINT NIPHON THE WONDERWORKER
Niphon was born in Paphlagonia and brought up in Constantinople at the court of a commander [Sabbatius]. Falling into evil company, the young Niphon became dissolute and gave himself over to many sins and vices. Because of his sin, he could not even pray to God. By the mercy of the Most-holy Theotokos, he was brought back to the path of righteousness and was tonsured a monk. He had numerous visions of the heavenly world, and for four years he endured a difficult struggle with a demon, who constantly whispered to him: "There is no God! There is no God!" But, when the Lord Jesus Himself appeared to him alive on an icon, Niphon received great power over evil spirits and was freed from these grievous temptations. He was such a great seer that he saw angels and demons around men just as clearly as he saw men themselves, and he knew the thoughts of men. He often spoke with angels and disputed with demons. He built a church to the Most-holy Theotokos in Constantinople, gathered monks together, and saved many souls. Alexander, the Archbishop of Alexandria, according to a revelation from heaven, consecrated him bishop of the town of Constantia on Cyprus. At that time St. Niphon was already old. He governed well the Church of God for a short time and took up his habitation in Christ's Eternal Kingdom. Before his death he was visited by St. Athanasius the Great, then the archdeacon of the Church in Alexandria, and after his death he was seen by Athanasius, his face shining as the sun.
! THE VENERABLE NAHUM, WONDERWORKER OF OHRID
Nahum was a disciple of Saints Cyril and Methodius and one of the Five Companions who most zealously labored with these Apostles to the Slavs. St. Nahum traveled to Rome, where he became well known for his miracle-working power as well as his great learning. He was knowledgeable in many languages. After his return from Rome, he and his companions settled on the shores of Lake Ohrid with the help of King Boris Michael. While St. Clement labored as bishop in Ohrid, St. Nahum founded a monastery on the southern shore of the lake. The monastery even today adorns that shore, just as the name of St. Nahum adorns the history of Slavic Christianity and has been a source of miraculous power and a refuge for the sick and the unfortunate through the ages. Many monks from throughout the Balkans gathered around St. Nahum. St. Nahum was a wise teacher, a unique leader of monks, a resolute ascetic, a miracle-working intercessor, and a spiritual father. A tireless worker, St. Nahum labored especially on the translation of the Sacred Scriptures and other ecclesiastical books from the Greek language into the Slavonic. He worked miracles both during his life and after his death. His miracle-working relics, to this day, amaze many with numerous miracles, healing grave illnesses, especially insanity. Nahum entered into rest in the first half of the tenth century and took up his habitation in the joy of his beloved Christ.//)
--------------------
//) In the Greek Synaxarion, Saints Clement and Nahum are called the new Moses and Aaron, and this miracle is told of them: The heretics in Germany chained them and threw them into prison. By God's providence, however, the prison shook, the chains fell from them, the doors of the prison opened and they walked out freely.
! HYMN OF PRAISE
! THE VENERABLE NAHUM, WONDERWORKER OF OHRID
Venerable Nahum, Apostle to the Slavs,
Was completely illumined with the Light of Christ.
Unshakable in spirit, like a firm rock,
By grace he subjugated the flesh to the spirit.
Fasting and prayers and all-night vigils
Cleansed his soul of evil passions,
And he became like unto the mighty angels.
God granted him heavenly powers.
The Lord subjected to him all the powers of nature,
And also the evil demons and the darkened passions.
He won over people and nations to Christ,
Healing infirmities by words and miracles.
He died, but died not; he is a citizen of the heavens.
St. Nahum even now gazes upon this world;
In body and spirit, he performs miracles,
And even now preaches Christ to all peoples.
O Holy Nahum, the pride of the Balkans,
God-pleaser and friend of the angels:
Great is your power, given by God.
O help us all to serve the Lord.
! REFLECTION
While still living in the flesh, the saints had great revelations from God and visions of both heavenly and infernal powers. All of their revelations and visions confirm the Orthodox Faith in all of her teachings. The saints are a joy, a great joy to the faithful. St. Niphon saw the Theotokos and the Lord Christ alive in glory; he saw men's souls leaving the body; and he saw the guardian angels of certain men! He spoke openly with angels and disputed with demons. The Church teaches that the sincere repentance of a sinner, even in the last hour, saves the soul of the penitent. St. Niphon saw the soul of one such repentant sinner in the last moment; he saw how the angels defended that soul from the aggressive demons and carried it to Paradise. The Church teaches that suicide is a mortal sin. St. Niphon saw the soul of a suicide as the devils were dragging it to hell. The guardian angel of that soul went off and wept bitterly for that soul. This was the soul of a servant who had committed suicide because his master was merciless, and who did not want to endure to the end in order to be saved.
! CONTEMPLATION
Contemplate God's reward to the penitent David:
# How God glorified the penitent David and gave him the gift of His Holy Spirit to compile the wondrous Psalter;
# How God made the penitent David the ancestor of many good kings and righteous seers;
# How God made him the ancestor, according to the flesh, of the Lord Jesus Christ Himself.
! HOMILY
! on Daniel the Prophet
… And the stone that smote the image became a great mountain, and filled the whole earth (Daniel 2:35).
Suffering, brethren, can weaken a man's character; however, luxury can weaken it even more. Daniel, the man of God, could not be weakened either by suffering or by luxury. In both instances he remained the same, and in both instances he was equally the messenger of the one Living God and a clairvoyant revealer of God's mysteries. He lived in royal luxury and then in a lions' den. In both instances, he remained unchanged: in royal luxury he fasted, and in the lions' den he did not hunger. The Most-high God rewarded his faithful servant with the great gift of prophecy. The main subject of his prophecies is Christ the Lord. Christ will come and will destroy idol worship throughout the whole earth. He will fill the earth with Himself like no man clothed in the flesh has ever done. He is the One to Whom will be given //dominion and glory and a Kingdom, that all people, nations and languages should serve Him// (Daniel 7:14). Daniel, the great prophet of God, prophesied the time, the exact time, of the coming of the Lord Jesus into the world.
How we Christians must be ashamed before this Daniel! We see all the promises fulfilled in Christ, and yet we are lax in our faith and in our love for Christ. All was not revealed to Daniel as it is revealed to us who are baptized; nevertheless, he did not turn away from God, not once. O Lord God of Daniel, strengthen us, give us repentance, and have mercy on us.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MARTYR EUGENIA AND OTHERS WITH HER
Eugenia was the daughter of Philip the Eparch of all Egypt and was born in Rome. At that time the Christians had been driven out of Alexandria and lived outside the city. The virgin Eugenia visited the Christians and accepted their Faith with her whole heart. Fleeing from her parents with two of her faithful eunuchs, she was baptized by Bishop Elias. Disguised in men's clothing, she entered a men's monastery where she received the monastic habit. So much did she cleanse her heart by voluntary asceticism that she received from God the grace of healing the sick. Thus, she healed a wealthy woman, Melanthia. After this, however, Melanthia wanted to lure Eugenia into bodily sin, not suspecting that Eugenia was a woman. Since she was adamantly rejected by Eugenia, out of revenge this evil woman went to the eparch and slandered Eugenia in the same manner as Potiphar's wife had once slandered the chaste Joseph. The eparch ordered that all the monks be bound and cast into prison together with Eugenia. But when St. Eugenia was brought before the tribunal, she revealed herself to her father as his daughter. The overjoyed Philip was then baptized with his entire household, and he was chosen as Bishop of Alexandria. Hearing of this, the Roman emperor sent a wicked commander, Terentius, who came to Alexandria and secretly had Philip killed. St. Eugenia moved to Rome with her mother and brothers. In Rome she fearlessly and zealously converted pagans, especially maidens, to the true Faith, and thus she converted a beautiful maiden Basilla to the Faith. Shortly afterward, Basilla was beheaded for Christ as Eugenia had foretold to her. Then both eunuchs, Protus and Hyacinth, were beheaded. Finally, a martyr's end came to St. Eugenia, whose presence had caused the collapse and destruction of the Temple of Diana. The torturers threw her first into water and then into fire, but God saved her. The Lord Jesus Himself appeared to her in prison and told her that she would suffer on the day of His Nativity. And so it was. She was beheaded by the sword on December 25, 262 A.D., in Rome. After her death, St. Eugenia appeared in great glory to her mother and comforted her.
! THE VENERABLE NICHOLAS THE COMMANDER
Some think this great saint was a Slav of Balkan ancestry. At the time of Emperor Nicephorus, Nicholas was a commander and had authority over a division of the army that went to war against the Bulgarians. Along the way, Nicholas spent the night in an inn, where he experienced a great temptation and had a strange dream. This dream fully came to pass in the war, where the Greeks were utterly defeated by the Bulgarians in the year 811 A.D. Nicholas was spared, and out of gratitude for God's providence he left his military rank and became a monk. He lived a long life of asceticism and became so perfect that he became a great clairvoyant and God-pleaser. He died peacefully in the ninth century and took up his habitation in the Blessed Kingdom of Christ the Lord.//)
--------------------
//) In the Greek Synaxarion, the Venerable Antiochus, a monk of Palestine, is also commemorated. He was an eye-witness of the suffering of the Holy Fathers of St. Sava's (May 16) and, as an eyewitness, described their suffering under the Saracens. He also compiled another book entitled //Pandect.// He wrote many prayers, of which the best-known is the one recited daily at Compline: "And grant us, O Master, as we go to sleep, rest of body and soul."
The Holy New Martyr Ahmed, a Turk by birth and a stonecutter by profession, is also commemorated. He embraced the Christian Faith and laid down his life for it. He suffered at the hands of the Turks in Constantinople in the year 1682 A.D.
! HYMN OF PRAISE
! THE VENERABLE MARTYR EUGENIA
Eugenia, a glorious maiden, recognized God
And dedicated herself completely to His service.
She sacrificed this temporary life for the eternal and endless one;
To Christ the Eternal she betrothed her heart.
With patience she conquered the vice of evil
And gained the wondrous grace of God.
With the angels in heaven she now rejoices;
With the saints she gloriously celebrates the eternal feast.
Eugenia, beautiful virgin, God sanctified you.
Remember us sinners before God even now.
! REFLECTION
Victory over temptation is victory over death. This is shown by a wondrous experience of St. Nicholas the Commander. When this commander went off with King Nicephorus's army against the Bulgarians, it happened that he spent the night in a wayside inn. The innkeeper had a daughter, a young girl, who, attracted by the imperial commander's outward beauty, began to entice him into sin. Nicholas refused her once, saying to her that this was enticing him into a satanic act. Nevertheless, the shameless girl came a second and a third time to the commander's room and again tempted him to an impure act. The commander refused both the second and third propositions even more decisively, counseling her to preserve her virginity and not to give her body and soul over to the devil. Finally, he said to her that he was a soldier and was going to war, and that it was unworthy and dangerous for a soldier to soil himself with such a misdeed, which would anger God and lead him to certain death. Thus, this God-loving man conquered temptation. The following day, he moved farther on with the army. The next night, he saw the following vision: He was standing in a spacious field and saw near him a powerful man sitting with his right leg crossed over his left. Before them stood two armies in the field, one facing the other, the Greeks and the Bulgarians. This powerful man told him to watch carefully what was about to happen. Nicholas looked and saw the following: As long as the powerful man kept his right leg crossed over the left, the Greek army overcame the Bulgarian army, and when he changed his position and placed his left leg over the right leg, the Bulgarians charged and ferociously cut down the Greeks. Then this powerful man brought the commander closer to the slaughtered Greek army. The entire field was covered with corpses, body beside body. Only in the middle of these corpses was there an empty space, large enough for the body of a man. Then the man said to Nicholas: "This place was appointed for your body, but since you defeated the devil's temptations three times last night, you saved your body and soul from death." That which Nicholas saw in his dream, he saw precisely in reality at the time of the battle. The entire Greek army perished on the battlefield, but Nicholas returned home alive, not to the barracks anymore, but to a monastery.
! CONTEMPLATION
Contemplate the assembly of the forefathers, prophets and righteous ones in the heavens:
# How, before Christ, they fulfilled God's law;
# How they foretold Christ the Lord both in word and in the image of their lives;
# How they now rejoice in the Kingdom of Christ.
! HOMILY
! on the righteous Joseph
Then Joseph her husband, being a just man … did as the angel of the Lord had bidden him (Matthew 1:19, 24).
One must fear God more than men, and one must obey God more than men. This is the lesson from the life of the Righteous Joseph, the kinsman and guardian of the Holy Virgin Mary. He lived at the time of the juncture between the Law and grace, and was faithful to the Law until grace appeared; then, when the new grace of God appeared, he became faithful to grace. Obedient to the letter of the Law, he wanted to put the Holy Virgin away when she conceived the Savior of the world in her most pure body. But when an angel of God announced to him that Mary had conceived //of the Holy Spirit//(Matthew 1:20), he abandoned his intention and did not put her away, but //did as the angel of the Lord had bidden him//. He did not reason for himself, but obeyed the will of God. Therefore, God made him worthy of great glory, both on earth and in heaven. Quietly and secretly he served God, and God glorified him openly. Not only was he made worthy of the Kingdom of God but also his sons and daughters were. What father would want anything more than that his son would be an apostle of Christ? And Joseph had two sons who were apostles. Thus, God glorifies those who fear Him and obey Him.
O great Lord, God of the righteous Joseph, help us sinners also to love Thy righteousness and to fear only Thee.
To Thee be glory and praise forever. Amen.
! THE NATIVITY OF OUR LORD, GOD AND SAVIOR JESUS CHRIST
//But when the fullness of the time had come, God sent forth His Son//(Galatians 4:4) to save the human race. And when nine months were fulfilled from the Annunciation, when the Archangel Gabriel had appeared to the Most-holy Virgin in Nazareth, saying, //Rejoice, thou that art highly favored … behold, thou shalt conceive in thy womb, and bring forth a Son// (Luke 1:28, 31), at that time there went forth a decree from Caesar Augustus that all the people of the Roman Empire should be taxed. In accordance with this decree, everyone had to go to his own town and be registered. That is why the righteous Joseph came with the Most-holy Virgin to Bethlehem, the city of David, for they were both of the royal lineage of David. Since many people descended on this small town for the census, Joseph and Mary were unable to find lodging in any house, and they sought shelter in a cave which shepherds used as a sheepfold. In this cave--on the night between Saturday and Sunday, on the 25th of December--the Most-holy Virgin gave birth to the Savior of the world, the Lord Jesus Christ. Giving birth to Him without pain just as He was conceived without sin by the Holy Spirit and not by man, she herself wrapped Him in swaddling clothes, worshiped Him as God, and laid Him in a manger. Then the righteous Joseph drew near and worshiped Him as the Divine Fruit of the Virgin's womb. Then the shepherds came in from the fields, directed by an angel of God, and worshiped Him as the Messiah and Savior. The shepherds heard a multitude of God's angels singing: //Glory to God in the highest, and on earth peace, good will toward men// (Luke 2:14). At that time three wise men arrived from the east, led by a wondrous star, bearing their gifts: gold, frankincense and myrrh. They worshiped Him as the King of kings, and offered Him their gifts (Matthew 2). Thus entered the world He Whose coming was foretold by the prophets, and Who was born in the same manner in which it had been prophesied: of a Most-holy Virgin, in the town of Bethlehem, of the lineage of David according to the flesh, at the time when there was no king in Jerusalem of the lineage of Judah, but rather when Herod, a foreigner, was reigning. After many types and prefigurings, messengers and heralds, prophets and righteous men, wise men and kings, finally He appeared, the Lord of the world and King of kings, to perform the work of the salvation of mankind, which could not be performed by His servants. To Him be eternal glory and praise! Amen.
! HYMN OF PRAISE
! THE NATIVITY OF OUR LORD, GOD AND SAVIOR JESUS CHRIST
Out of burning love, Thou didst come down from heaven;
From eternal beauty, Thou didst descend into monstrous pain;
From eternal light, Thou didst descend into the thick darkness of evil.
Thou didst extend Thy holy hand to those choked in sin.
Heaven was amazed, the earth quaked.
Welcome, O Christ! O ye peoples, rejoice!
Out of burning love, by which Thou didst create the world,
As a slave Thou didst debase Thyself to loose the enslaved,
To restore the house that Adam destroyed,
To enlighten the darkened, to unloose sinners.
Love that knows not fear or humiliation--
Welcome, O Christ! The Master of Salvation!
Out of burning love, O King of all beauty,
Thou didst leave the radiance of the beautiful Cherubim,
Thou didst descend into the cave of human life,
To despairing men, with a torch and peace.
How to contain Thee?--The earth became frightened.
Welcome, O Christ! Heaven bears Thee up!
The most beautiful Virgin for a long time hoped in Thee.
The earth raises her to Thee, that through her Thou wilt descend
From the lofty throne, from the heavenly city,
To bring health, to release man from sin.
O Holy Virgin, Golden Censer--
To thee be glory and praise, O Mother full of grace!
! REFLECTION
The Lord Jesus, born in Bethlehem, was first worshiped by shepherds and wise men (astrologers) from the east--the simplest and the wisest of this world. Even today, those who most sincerely worship the Lord Jesus as God and Savior are the simplest and the wisest of this world. Perverted simplicity and half-learned wisdom were always the enemies of Christ's divinity and His Gospel. But who were these wise men from the east? This question was especially studied by St. Dimitri of Rostov. He claims that they were kings of certain smaller regions or individual towns in Persia, Arabia and Egypt. At the same time, they were erudite in the knowledge of astronomy. This wondrous star appeared to them, which announced the birth of the New King. According to St. Dimitri, this star appeared to them nine months before the birth of the Lord Jesus, i.e., at the time of His conception by the Most-holy Theotokos. They spent nine months in studying this star, in preparing for the journey and in traveling. They arrived in Bethlehem shortly after the birth of the Savior of the world. One of them was called Melchior. He was old, with long white hair and beard. He offered the Lord the gift of gold. The second was called Caspar, of ruddy face, young and beardless. He offered the Lord the gift of frankincense. The third was called Balthasar, of dark complexion and a very heavy beard. He offered the Lord the gift of myrrh. After their deaths, their bodies were taken to Constantinople, from Constantinople to Milan, and from Milan to Cologne. It can be added that these three wise men were representatives of the three main races of men that descended from Noah's three sons: Shem, Ham and Japheth. The Persian represented the Japhethites, the Arabian represented the Semites, and the Egyptian represented the Hamites. Thus it can be said that, through these three, the whole human race worshiped the Incarnate Lord and God.
! CONTEMPLATION
Contemplate the beauty of the soul of the Most-holy Theotokos:
# How her soul was radiant and immaculate;
# How her soul was filled with peace from faith and hope in God;
# How her soul was filled with the sweet-smelling fragrance of prayer.
! HOMILY
! on the birth of the Lord, the Son of God
I came forth from the Father, and am come into the world (John 16:28).
The only-begotten Son of God, brethren, begotten in eternity of the Father without a mother, was born in time of a mother without a father. That first begetting is an unfathomable mystery of the Holy Trinity in eternity, and the second is the unfathomable mystery of God's power and love for mankind in time. The greatest mystery in time corresponds to the greatest mystery in eternity. Without entering into this greatest mystery with the small taper of our understanding, let us be content, brethren, with the knowledge that our salvation had its origin not from man or from earth, but from the greatest heights of the divine invisible world. So great is God's mercy, and so great is the dignity of man, that the Son of God Himself came down from eternity into time, from heaven to earth, from the throne of glory to the shepherd's cave, solely to save mankind, to cleanse men from sin and to return them to Paradise. //I came forth from the Father//, where I had everything, //and am come into the world//, which cannot give Me anything. The Lord was born in a cave to show that the whole world is one dark cave, which He alone can illumine. The Lord was born in Bethlehem--and Bethlehem means "the House of Bread''--to show that He is the only Bread of Life worthy of true men.
O Lord Jesus, the Pre-eternal Son of the Living God and the Son of the Virgin Mary, enlighten us and nourish us with Thyself.
To Thee be glory and praise forever. Amen.
! THE SYNAXIS OF THE MOST-HOLY THEOTOKOS
On the second day of the Nativity, the Christian Church gives glory and thanksgiving to the Most-holy Theotokos, who gave birth to our Lord, God and Savior Jesus Christ. This feast is called "the Synaxis" because on this day all of the faithful gather to glorify her, the Most-holy Theotokos, and to solemnly and universally celebrate a feast in her honor. In Ohrid, it has been the tradition from ancient times that, on the eve of the second day of Nativity, Vespers has been celebrated only in the Church of the Most-holy Theotokos called the Chieftain [Čelnica]. All the clergy with the people gather together to glorify the Most-pure Mother of God.
! THE COMMEMORATION OF THE FLIGHT INTO EGYPT
The wise men (astrologers) from the East, having worshiped the Lord in Bethlehem, were directed to return to their home another way by command of an angel. Herod, that wicked king, planned to slaughter all the children in Bethlehem, but God saw Herod's intention and sent His angel to Joseph. The angel of God appeared to Joseph in a dream and commanded him to take the young Child and His Mother and flee to Egypt. Joseph did this. Taking the Divine Child and His Most-holy Mother, he traveled first to Nazareth (Luke 2:39), where he arranged his household matters, and then, taking his son James with them, went off to Egypt (Matthew 2:14). Thus the words of the prophet were fulfilled: //Behold, the Lord rideth upon a swift cloud, and shall come into Egypt//(Isaiah 19:1). In old Cairo today, the cave where the holy family lived can be seen. Likewise, in the village of Matarea near Cairo, the tree under which the Most-holy Theotokos rested with the Lord Jesus, as well as a miraculous spring of water under this tree, are visible. After having lived for several years in Egypt, the holy family returned to Palestine, again in response to a command of an angel of God. Thus another prophecy was fulfilled: //Out of Egypt have I called my Son// (Hosea 11:1). Herod was dead and his wicked son Archelaus--a worthy successor of him in evil--sat on his bloodstained throne. Hearing that Archelaus was reigning in Jerusalem, Joseph returned to Galilee, to his town of Nazareth, where he settled in his own home. Herod's second son, Herod the Younger, who was somewhat less evil than his brother Archelaus, then reigned in Galilee.
! THE VENERABLE EVARESTUS
Reading the works of St. Ephraim the Syrian, Evarestus left the diplomatic service and became a monk. He was very strict with himself: he wore chains over his body and ate dry bread only once a week. He lived for seventy-five years and took up his habitation with the Lord in about the year 825 A.D.
! SAINT EUTHYMIUS THE CONFESSOR, BISHOP OF SARDIS
Euthymius attended the Seventh Ecumenical Council in Nicaea in 787 A.D. and spent about thirty years in exile for his veneration of icons. During the reign of Emperor Theophilus the Iconoclast, he was flogged with bullwhips, at which time he died a martyr's death, in the year 840 A.D., and received a wreath of glory in heaven.
! THE VENERABLE CONSTANTINE OF SYNNADA
Constantine was a Jew who converted to Christianity. During his baptism he touched a Cross to his head, and a miraculous imprint of the Cross remained on his head until his death. He died in Constantinople in the seventh century. Famous for his asceticism and many miracles, he prophesied the day of his death seven years beforehand.
! HYMN OF PRAISE
! THE SYNAXIS OF THE MOST-HOLY THEOTOKOS
At the border between night and sunny day,
The dawn is rosy, pink and dewy.
The crimson dawn thou art, O Virgin given by God,
Precursor of the day, rosy and glorious.
Thou didst correct Eve and restore her to Paradise.
Do not withhold thy help from us sinners.
Israel crossed dry-shod over the Red Sea;
A cool spring flowed from the rock in the wilderness;
The bush burned but was not consumed--
As the dawn resembles the crimson eve,
So thou, O Virgin, dost resemble those foreshadowings.
O thou whom the Church calls the Mother of God,
Unknown to sin, not given to sin,
O Most-pure Mother of our Savior,
Because of thy purity thou wast chosen by God,
To bring down the Eternal Creator to earth.
That is why thou hast authority to pray for us,
And we have the joy of hymning and glorifying thee!
! REFLECTION
A story of the Divine Christ-child: When the holy family fled before Herod's sword to Egypt, robbers leapt out on the road with the intention of stealing something. The righteous Joseph was leading the donkey, on which were some belongings and on which the Most-holy Theotokos was riding with her Son at her breast. The robbers seized the donkey to lead it away. At that moment, one of the robbers approached the Mother of God to see what she was holding next to her breast. The robber, seeing the Christ-child, was astonished at His unusual beauty and said in his astonishment: "If God were to take upon Himself the flesh of man, He would not be more beautiful than this Child!" This robber then ordered his companions to take nothing from these travelers. Filled with gratitude toward this generous robber, the Most-holy Virgin said to him: "Know that this Child will repay you with a good reward because you protected Him today." Thirty-three years later, this same thief hung on the Cross for his crimes, crucified on the right side of Christ's Cross. His name was Dismas, and the name of the thief on the left side was Gestas. Beholding Christ the Lord innocently crucified, Dismas repented for all the evil of his life. While Gestas reviled the Lord, Dismas defended Him, saying: //This man hath done nothing amiss//. (Luke 23:41). Dismas, therefore, was the wise thief to whom our Lord said: //Verily I say unto thee, Today shalt thou be with Me in Paradise// (Luke 23:43). Thus the Lord granted Paradise to him who spared Him in childhood.
! CONTEMPLATION
Contemplate the purity of the Most-holy Mother of God:
# On the immaculate purity of her body: passionless and disciplined by fasting;
# On the immaculate purity of her heart, in which a sinful desire never dwelt;
# On the immaculate purity of her mind, in which a sinful thought never dwelt.
! HOMILY
! on the Most-holy Virgin, the Theotokos
And Mary said: Behold the handmaid of the Lord (Luke 1:38).
Here indeed, brethren, is a true handmaid of the Lord! If a handmaid is she who exchanges her will completely for the will of her Lord, then the Most-holy Virgin is the first among all of the Lord's handmaids. If a handmaid is she who, with intent and with complete attention, beholds her Lord, then again the Most-holy Virgin is the first among the handmaids of the Lord. If a handmaid is one who meekly and quietly endures all insults and trials, awaiting only the reward of her Lord, then again and again the Most-holy Virgin is the first and most excellent of all the handmaids of the Lord. She did not care to please the world, but only God; nor did she care to justify herself before the world, but only before God. She herself is obedience; she herself is service; she herself is meekness. The Most-holy Virgin could in truth say to the angel of God: //Behold the handmaid of the Lord//. The greatest perfection, and the greatest honor that a woman can attain on earth, is to be a handmaid of the Lord. Eve lost this perfection and honor in Paradise without effort, and the Virgin Mary achieved this perfection and this honor outside Paradise with her efforts.
Through the prayers of the Most-holy Virgin Theotokos, O Lord Jesus Christ, have mercy on us.
To Thee be glory and praise forever. Amen.
! THE HOLY PROTOMARTYR STEPHEN THE ARCHDEACON
Stephen was a kinsman of the Apostle Paul and one of those Jews who lived in the Hellenic provinces. Stephen was the first of the seven deacons whom the holy apostles ordained and appointed to the service of assisting the poor in Jerusalem. For this, he is called the archdeacon. By the power of his faith, Stephen worked great miracles among the people. The wicked Jews disputed with him, but they were always defeated by his wisdom and the power of the Spirit, Who acted through him. Then the shameful Jews, accustomed to calumnies and slander, incited the people and the elders of the people against the innocent Stephen, slandering him as though he had blasphemed against God and against Moses. False witnesses were quickly found who confirmed this. Stephen then stood before the people, and all //saw his face as it had been the face of an angel//(Acts 6:15), that is, his face was illumined with the light of grace as was once the face of Moses when he spoke with God. Stephen opened his mouth and enumerated the many good works and miracles that God had performed in the past for the people of Israel, as well as the many crimes and opposition to God on the part of this people. He especially rebuked them for the killing of Christ the Lord, calling them //betrayers and murderers// (Acts 7:52). And while they gnashed their teeth, Stephen beheld and saw the heavens open and the glory of God. That which he saw, he declared to the Jews: //Behold, I see the heavens opened and the Son of Man standing on the right hand of God!// (Acts 7:56). Then the malicious men took him outside the city and stoned him to death. Among his persecutors was his kinsman Saul, later the Apostle Paul. At that time, the Most-holy Theotokos, standing on a rock at a distance with St. John the Theologian, witnessed the martyrdom of this first martyr for the truth of her Son and God, and she prayed to God for Stephen. This occurred one year after the descent of the Holy Spirit upon the apostles. Gamaliel, a prince of the Jews and a secret Christian, clandestinely took St. Stephen's body and buried it on his own estate. Thus, this first among the Christian martyrs gloriously reposed and took up his habitation in the Kingdom of Christ God.
! THE VENERABLE MARTYRS THEODORE AND THEOPHANES THE BRANDED
Theodore and Theophanes were blood brothers, born in Palestine and well educated in both secular and spiritual wisdom. They were monks in the community of St. Sava the Sanctified and later were ordained presbyters. They suffered harshly for their defense of icons under three emperors: Leo the Armenian, Michael Balbus and Theophilus. The demented Theophilus beat them with his own hands and ordered that they be branded with iron on their faces with derisive verses, for which they were called "the Branded.'' They were cast into prison in the town of Apamea in Bithynia. Theodore died there from his pains and wounds. Theophanes, freed at the time of the Emperors Theodore and Michael, was consecrated Metropolitan of Nicaea by Patriarch Methodius. St. Theodore died in the year 833 A.D. These two wonderful brothers suffered for Christ and received a wonderful reward from Him in the Immortal Kingdom of Light.
! HYMN OF PRAISE
! THE HOLY PROTOMARTYR STEPHEN THE ARCHEACON
Upon Stephen, illumined by the Spirit,
The Jewish murderers rushed.
Bloody Stephen knelt
And in a loud voice cried out to God:
"O Lord, Who from the Cross forgave
The greatest sin to ever shake the earth,
The greatest sin that heaven ever beheld,
Thou forgavest Thy murderers.
Now, O Most-gracious One, forgive mine also!
This crime--what is it compared to that one?
And I, what am I, compared to my Lord?"
Saying this he gave his spirit to God.
The angry elders, ugly cowards,
Dispersed after they killed him.
Then from heaven angels flew down
Around the body of the Protomartyr.
They chanted a hymn in chorus to him
And carried his paradisal soul to Paradise.
! REFLECTION
A story of the Divine Christ-child: Both great prophets, Isaiah and Jeremiah, prophesied that the Lord would come to Egypt and that His presence would shake the pagan temples and destroy the idols. Isaiah wrote: //Behold, the Lord rideth upon a swift cloud and shall come into Egypt: and the idols of Egypt shall be moved at His presence// (Isaiah 19:1, cf. Jeremiah 43:12-13). When the divine refugees came to the city of Hermopolis (Cairo), they approached a pagan temple, and all the idols in that temple suddenly fell down and were shattered. St. Palladius writes of this in his Lausiac History: "We saw the pagan temple there, in which all the carved idols fell to the ground at the coming of the Savior." In a certain place called Sirin there were 365 idols. When the Most-holy Virgin entered that temple with the Divine Child in her arms, all these idols fell down and were shattered. All the idols throughout Egypt fell in the same manner. The Holy Prophet Jeremiah, living in Egypt in old age, had prophesied to the pagan priests of Egypt that all the idols would fall and all the graven images would be destroyed at the time when a Virgin Mother with a Child, born in a manger, would come to Egypt. The pagan priests remembered well this prophecy. In accordance with it, they carved out a representation of a Virgin as she lay on a bed and, next to her in a manger, her young Child wrapped in swaddling clothes; and they venerated this representation. King Ptolemy asked the pagan priests what this representation meant, and they replied that it was a mystery, foretold by a prophet to their fathers, and that they were awaiting the fulfillment of this mystery. And, indeed, this mystery was fulfilled, and revealed not only in Egypt but also in the entire world.
! CONTEMPLATION
Contemplate the wisdom of the Most-holy Virgin Mary:
# How she spoke wisely with the angel of God (Luke 1:28-38);
# How she pondered in her heart all that had happened at the birth of the Lord Jesus and all that was said of Him;
# How, at Cana, she wisely told the servants to do whatever He told them.
! HOMILY
! on the Most-holy Virgin, the Theotokos
My soul doth magnify the Lord (Luke 1:46).
Brethren, we have in total only a few words spoken by the Most-holy Theotokos recorded in the Gospels. All of her words pertain to the magnification of God. She was silent before men but her soul conversed unceasingly with God. Every day and every hour, she found a new reason and incentive to magnify God. If only we were able to know and to record all her magnifications of God throughout her whole life, oh, how many books would it take! But, even by this one magnification, which she spoke before her kinswoman Elizabeth, the mother of the great Prophet and Forerunner John, every Christian can evaluate what a fragrant and God-pleasing flower was her most holy soul. This is but one wonderful canticle of the soul of the Theotokos, which has come down to us through the Gospel. However, such canticles were without number in the course of the life of the Most-blessed One. Even before she heard the Gospel from the lips of her Son, she knew how to speak with God and to glorify Him in accordance with the teaching of the Gospel. This knowledge came to her from the Holy Spirit of God, whose grace constantly poured into her like clear water into a pure vessel. Her soul magnified God with canticles throughout her whole life, and therefore God magnified her above the Cherubim and the Seraphim. Likewise, small and sinful as we are, the same Lord will magnify in His Kingdom us who magnify her, if we exert ourselves to fill this brief life with the magnification of God in our deeds, words, thoughts and prayers.
O Most-holy, Most-pure and Most-blessed Theotokos, cover us with the wings of thy prayers.
! To thee and thy Son and our Lord be glory and praise forever. Amen.
! THE TWENTY THOUSAND HOLY MARTYRS OF NICOMEDIA
During the reign of the wicked Emperor Maximian Hercules, the Christian Faith flourished in Nicomedia and increased day by day. At one time the emperor, staying in this city, learned of the large number of Christians and the progress of the Christian Church, and he became greatly embittered and conceived a plan of how to kill them all. The Feast of the Nativity of Christ approached, and the emperor, knowing that all the Christians gathered in the church for this feast, ordered that on that day the church be surrounded by soldiers and set afire. When all the Christians had gathered in the church after midnight and began the solemn celebration, the soldiers surrounded the church and would not permit anyone to leave. The emperor's envoy entered the church and announced to the Christians the emperor's command that they immediately offer sacrifices to the idols or be burned alive. Then the archdeacon, a heroic soldier of Christ, inflamed with divine zeal began to encourage the people, reminding the faithful of the Three Children in the furnace in Babylon. "Behold, brethren," he said, "the table of oblation in the sanctuary of the Lord, and understand that our true Lord and God was just now sacrificed for us on it; should we not then lay down our lives for Him in this holy place?" The people were filled with zeal to die for Christ, and all the catechumens were baptized and chrismated. The soldiers then set fire to the church on all sides, and the Christians, twenty thousand of them in number, were burned in the flames while singing praises to God. The church burned for five days; and smoke with an intoxicating and wonderful fragrance rose from it. A certain marvelous, golden-rayed light manifested itself over this place. Thus, numerous men, women and children gloriously died and received the wreath of eternal glory in the Kingdom of Christ. They suffered and were glorified in the year 302 A.D.
! THE VENERABLE SIMON, THE MYRRH-GUSHER
Simon was the founder of the Simonospetra Monastery on the Holy Mountain. He was glorified because of his asceticism, visions and miracles. He entered peacefully into rest and went to Christ in the year 1257 A.D.
! THE HOLY MARTYR DOMNA
Domna was a virgin and priestess of the foul idols at the court of Emperor Maximian. Reading the Acts of the Apostles, which she had obtained from somewhere, she came to believe in Christ and was baptized by Bishop Cyril in Nicomedia, together with the eunuch Indes. St. Cyril directed her to a convent, where Blessed Agatha was the abbess. When the emperor began to search for her, Agatha dressed her in men's clothing and sent her to a men's monastery. This was at the time when twenty thousand Christians were burned in the church by Emperor Maximian. Immediately after this, by the emperor's command, Saints Indes, Gorgonius and Peter were thrown into the sea with millstones around their necks; Commander Zeno, who had openly denounced the emperor for his idolatry, was beheaded; St. Theophilus, the deacon of Bishop Anthimus, was slain by stoning and by arrows; Abbess Agatha, the nun Theophila and the nobles Dorotheus, Mardonius, Migdonius and Euthymius were also slain for the sake of Christ. One night, Domna was walking along the seashore and saw fishermen casting their nets into the sea. At that time she was especially grieving for St. Indes. Called by the fishermen to help them, she assisted them and by God's providence drew out three human bodies in the net. Domna recognized in them Saints Indes, Gorgonius and Peter, and she took their bodies and reverently buried them. When the emperor learned that a young man was caring for and censing the graves of the Christian martyrs, he ordered that the young man be beheaded. Thus, St. Domna was seized and beheaded, and she was crowned with the wreath of glory in the Heavenly Kingdom with the other martyrs.
! HYMN OF PRAISE
! THE TWENTY THOUSAND HOLY MARTYRS OF NICOMEDIA
Holy Martyrs, your sufferings have passed,
Your tears wiped away, your wounds healed.
But more suffering still comes, it has not all arrived
Upon God's Church and upon her faithful.
Holy Martyrs, to you we pray:
By your prayers, watch over the Church.
Holy Martyrs, wonderful conquerors,
Against you have risen all the diabolical legions.
As great soldiers, you were without fear;
Your adversaries fell into the abyss.
You now clearly behold the Holy Trinity;
In His light you rejoice.
Holy Martyrs, we praise you for your wounds,
And for your tears and for your pure blood.
You became a fortress of defense for the Church.
Pray for us to the Savior Christ,
To make us worthy to call you brothers,
O honorable knights, children of grace!
! REFLECTION
A story of the Divine Christ-child: When the Most-holy Virgin, with her Divine Child and the righteous Joseph, drew near to the city of Hermopolis [Cairo], they saw a tree before the gate of the city. The travelers from afar were weary from their journey and approached this tree to rest a while, even though the tree was very tall and did not offer adequate shade. The Egyptians called this tree "Persea" and worshiped it as a god, for they believed that some divinity was hidden in the tree. In reality, an evil spirit dwelt in this tree. As the holy family approached the tree, the tree shook fiercely, and the evil spirit, terrified by the approaching Christ-child, fled. Then the tree bent its top down to the ground and worshiped its Creator like a rational creature. Thus the bent tree cast a great shadow, under which the weary travelers rested. From that day, the tree received miraculous healing powers from Christ the Lord to heal every infirmity of men. Afterward, the holy sojourners went to the village of Matarea. Near the village they saw a fig tree, and, while Joseph went into the village on business, the Most-holy Virgin took refuge under the fig tree with the Lord. And, oh, what a miracle: the tree lowered its crown down to the ground to create a shadow for the travelers, and its lower half split open in such a way that the Mother with the Child could enter and rest. And what is even more miraculous: a living spring of water suddenly opened up near the fig tree. Joseph found a hut in the vicinity, where they settled. There they lived and drank water from that miraculous spring. This was the only spring of living water to be found in Egypt, for all the other water in Egypt comes from the Nile River, which branches off into innumerable canals. And thus, like brought forth like: the Lord Jesus, the Immortal and Heavenly Spring of living water, by His presence called forth this spring of living water from the earth.
! CONTEMPLATION
Contemplate the assembly of Christ's holy martyrs:
# How they endured sufferings and did not deny Christ;
# How, out of love for Christ the Lord, they went to their sufferings and death as if to a feast;
# How they now rejoice in the Kingdom of Christ and help us by their prayers.
! HOMILY
! on the Most-holy Virgin, the Theotokos
His mother saith unto the servants, Whatsoever He saith unto you, do it (John 2:5).
Here is joy for all the faithful: she who is closest to Christ the Savior in heaven, as she had been on earth, cares for the faithful, appears to them, helps them and advises them, //Whatsoever He//, my Son and my God, sa//ith unto you, do it//. Thus, she advised the servants at the marriage in Cana, and the servants obeyed her and saw a miracle. From those few words of the Most-holy Virgin, God's Bride, recorded in the Gospel, we receive a precious instruction, truly the one and only Gospel instruction that she gave to mankind during her life on earth. //Whatsoever He saith unto you, do it!//As though she wanted to say: "He knows all; He can do all; He loves you all; therefore, you should look neither here nor there, but hear Him and obey Him." She comprehended the responsibility in this world of living for Him and directing others to Him as the Source of life, and she voluntarily continues carrying out this responsibility even from heaven. Throughout the Church's entire history, she has taught the faithful to do whatsoever He said. And even today, from her heavenly glory, she mystically descends among the faithful to counsel them to do that which He has commanded. That is her Gospel--the Gospel of the Most-holy Virgin, the Theotokos. It consists not of the Four Gospels but of four words: //Do whatsoever He saith//. O my brethren, let us obey her! Let us obey her as a mother and more than our mother, for she desires the greatest good for us--to reign in the Eternal Kingdom of her Son.
O Most-holy Virgin, help us to fulfill His words.
! To Thee and to Him be glory and praise forever. Amen.
! THE FOURTEEN THOUSAND HOLY CHILDREN OF BETHLEHEM
When the Magi from the east did not return to Jerusalem from Bethlehem to inform Herod about the newborn King but rather, at the angel's command, returned to their homeland another way, Herod became as enraged as a wild beast and ordered all the children two years old and under in Bethlehem and its surroundings to be killed. This frightening command of the king was carried out to the letter. His soldiers beheaded some of the children with swords, smashed others against stones, trampled others underfoot, and strangled others with their hands. And the cries and wails of the mothers rose to heaven, //Lamentation, and bitter weeping; Rachel weeping for her children// (Jeremiah 31:15, Matthew 2:18), as had been prophesied. This crime against the multitude of innocent children was carried out a year after the birth of Christ, at the time when Herod was seeking to find the Divine Child. He asked Zacharias about his son John, so that he might kill him, since he naturally thought that John was the new king. As Zacharias did not turn John over, he was slain in the Temple by order of Herod. St. Simeon the God-receiver would also have been murdered soon after the Presentation in the Temple, had he not already reposed in God. After murdering the children of Bethlehem, Herod turned against the Jewish elders who had revealed to him where the Messiah would be born. He then killed Hyrcanes, the high priest, and the seventy elders of the Sanhedrin. Thus, they who had agreed with Herod that the new Child-king must be killed came to an evil end. After that, Herod murdered his brother, sister, wife and three sons. Finally, God's punishment came to him: he began to tremble, his legs became swollen, the lower part of his body became putrid, and worms came out of the sores; his nose became blocked and an unbearable stench emanated from him. Before his last breath, he remembered that there were many captive Jews in prison, and he ordered that they all be killed so that they would not rejoice in his death. Thus, this terrible ruler gave up his inhuman soul and handed it over to the devil for eternal possession.
! THE VENERABLE MARCELLUS
Marcellus was from Apamea in Syria. He was the abbot of the Community of the Sleepless Ones in Constantinople. He was clairvoyant, and was a healer and great miracle-worker. He spoke with angels and easily defeated demons and drove them out. After his death, Marcellus appeared to St. Lucian, a member of his community, and told Lucian that he had implored God to take him into the Heavenly Kingdom soon. This holy and glorious man entered into rest in the year 486 A.D.
! THE VENERABLE MARK THE GRAVE-DIGGER AND THEOPHILUS THE WEEPER
Mark and Theophilus were monks of the Monastery of the Kiev Caves. St. Mark possessed so much grace that he commanded the dead and they obeyed him: Mark sent word to inform a dead monk, who had already been washed and over whom the funeral service had been read, "Wait until tomorrow, Brother, for your grave is not yet ready," and the monk opened his eyes and remained alive until the following day. Theophilus wept constantly for his sins, pouring the tears he shed into a basin. Before his death, an angel appeared to him and showed him a larger basin filled with tears. These were Theophilus's tears, which had fallen to the ground, or had been wiped away with his hand, or had dried on his face. Thus, even in heaven they know and keep all our tears as well as our sufferings, labors and sighs for the sake of our salvation. These holy servants of God rested in the eleventh century and entered the Kingdom of Christ.
! HYMN OF PRAISE
! THE FOURTEEN THOUSAND HOLY CHILDREN OF BETHLEHEM
A voice in Rama was heard, and much weeping,
And sorrowful mothers crying out to God.
In blood lay the slaughtered children,
And, over them, sorrowful mothers lamented.
The city of David, with all the surrounding region, moans;
Heaven was horrified at the misdeed of men;
Heaven and earth were horrified and quaked,
When the screams of the innocent pierced the air.
The blow intended for the Son of God
Fell with its weight on the innocent children,
Upon young and helpless ones of the same age as Christ.
The servants of the wicked king attacked
Where the angels of God sang
And where Christ's shepherds humbly knelt.
There a torrent of blood flowed.
Why? In order that Herod would always be first!
As soon as the Eternal Physician appeared on earth,
The earth revealed its wounds and sins,
Showing how much mankind is infected,
And how necessary healing from heaven is.
Upon the young forerunners of His suffering,
Christ bestowed the eternal joy of Paradise.
! REFLECTION
A story about the Most-pure Virgin Mary: She conceived the Lord Jesus on a Friday, just as His passion was on a Friday, and she gave birth to Him on the first day of the week. On the first day of the week God said, //Let there be light// (Genesis 1:3); on the first day of the week, manna fell from heaven; on this day the Lord and Savior was born; and on this day He was baptized in the Jordan. At that time, there lived in Bethlehem the aged Salome, a kinswoman of Joseph and Mary. She was unable to receive her kinfolk at her house but visited them in the shepherd's cave. When the Most-holy Virgin immaculately gave birth to the Lord and Savior, Salome came to visit her. She was amazed that such a young girl could give birth without the aid of a midwife, swaddle the Child herself, and beside all of that still be on her feet. When it was explained to Salome that this birth was of God and not man, that it was immaculate and without pain, and that the Virgin Mother remained a Virgin after birth as she was before birth, Salome did not believe it, but rather she stretched out her hand to the body of the Most-holy Virgin to examine it, after the custom of a midwife, and to find out if this was indeed so. And because of her unbelief and insolence, a punishment befell her: her hand was seized and withered. The aged woman was greatly frightened by the miracle and lamented over her withered hand. However, when she touched the Divine Child later, her hand was restored to health like it was before. Thus, Salome believed in the virginity of the Most-pure Virgin Mary and in the Divinity of Christ. Thus after forty days, when according to custom the Most-pure Virgin came with the young Child to the Temple in Jerusalem, Zacharias the high priest placed her in the area reserved for virgins. The Pharisees and priests were disturbed by this and wanted to remove her to the place reserved for married women, but the discerning Zacharias did not allow this, claiming, that she was a virgin even though she had given birth. Because of this, the Jewish elders hated Zacharias and sought from Herod that he be killed. Immediately after she left the Temple, the Theotokos and Joseph left from Jerusalem to Nazareth and then to Egypt.
! CONTEMPLATION
Contemplate the assembly of the holy hierarchs and teachers of the Church:
# How they zealously preached the Gospel and shepherded the flock of Christ;
# How they confirmed the devout Faith and trampled heresies;
# How they now rejoice in the Kingdom of Christ and help us by their prayers.
! HOMILY
! on the Most-holy Virgin, the Theotokos
Yea, a sword shall pierce through thine own soul also (Luke 2:35).
Who on this earth could even closely compare with the Lord in patient endurance of suffering except His Most-holy Mother? The elder Simeon, adorned with snowy hair like a white swan, prophetically foresaw her future sufferings and likened those sufferings to a sword piercing her soul. One sword had pierced her soul when the righteous Joseph doubted her at the time of her pregnancy; the second, when she had to flee to Egypt before Herod's sword; and the third, fourth and many, many others when she saw the hatred and intrigues of the Jewish elders against her Son day in and day out during the whole time of His preaching and miracle-working among men. But the sharpest sword pierced her soul when she stood beneath the Cross of her Son and Lord. This sword was foreseen and prophesied to her by the holy, aged Simeon. Majestic and moving was her silence, beneath which she covered all her pains and all the wounds of her heart as with a veil. In the twilight, all these countless pains that had accumulated in her most pure heart shone as an inextinguishable flame of faith and hope in God and dedication to God. This handmaid of the Lord, unsurpassable in nobility! She saw herself clearly in God's plan for the salvation of mankind; she read about herself in the prophets; she spoke with the angels--God's messengers. Therefore, all that came upon her, joy or pain, she knew came from God. She was not jubilant in her joy nor did she murmur in her pain, but rather she remained silent and laid it all up in her heart.
O Most-holy Virgin Theotokos, help us that we may be, like thee, submissive to the will of God.
! To thy Son and Lord, through thee, be glory and praise forever. Amen.
! THE HOLY PROPHET ZEPHANIAH
Zephaniah was a native of Mount Sarabatha, from the tribe of Simeon. He lived and prophesied in the seventh century before Christ, at the time of Josiah the pious king of Judah. Zephaniah was a contemporary of the Prophet Jeremiah. Having great humility and a pure mind raised to God, he was found worthy of discerning the future. He prophesied the day of the wrath of God and the punishment of Gaza, Ashkalon, Ashdod, Ekron, Nineveh, Jerusalem and Egypt. He saw Jerusalem as //a filthy and polluted, … oppressing city…. Her princes within her are roaring lions; her judges are evening wolves; … her prophets are light and treacherous persons: her priests have polluted the sanctuary, they have done violence to the Law//(Zephaniah 3:1-4). Foreseeing the advent of the Messiah, he enthusiastically exclaimed: //Sing, O daughter of Zion; shout, O Israel; be glad and rejoice with all the heart, O daughter of Jerusalem// (Zephaniah 3:14). This seer of mysteries entered into rest at his birthplace to await the General Resurrection and his reward from God.
! SAINT JOHN THE SILENT [THE HESYCHAST]
John was a native of Nicopolis in Armenia and was the son of Encratius and Euphemia. He was tonsured a monk at the age of eighteen and lived a strict and resolute life of asceticism, cleansing his heart by his many tears, fasting and prayer. After ten years, he was appointed bishop of Colonia. By his example, he attracted his brother Pergamius and his uncle Theodore--both distinguished men at the imperial courts of Emperors Zeno and Justinian--to a God-pleasing life. Seeing the malice and intrigues of this world and his inability to put matters right, he abandoned his episcopal throne. He disguised himself as a simple monk and went to the Monastery of St. Sava the Sanctified near Jerusalem. There he remained unknown for many years, conscientiously and capably completing every task that the abbot ordered him to do. For this, St. Sava recommended to Patriarch Elias that he ordain him a presbyter. When the patriarch wanted to ordain John, he confessed that he already possessed the rank of bishop. Then St. John closed himself in a cell and spent years and years in silence and prayer. Afterward he spent nine years in the wilderness feeding himself only on wild vegetables, and then he returned to the monastery. He turned the faithful away from the heresy of Origen and contributed greatly to the condemnation and elimination of this heresy. He clearly discerned the spiritual world and healed people from sickness. Having conquered himself, he easily conquered demons. Great in humility, might and divine wisdom, this servant of God entered peacefully into rest in the year 558 A.D. at the age of 104.
! THE HIEROMARTYR THEODORE, ARCHBISHOP OF ALEXANDRIA
After functioning as patriarch for two years, Theodore was ridiculed and tortured by the pagans. They placed a crown of thorns on his head and finally beheaded him for his Faith in the year 606 A.D.
! THE VENERABLE THEODULUS
Theodulus was an eminent patrician at the court of Theodosius the Great. After the death of his wife, he renounced the vanity of the world and withdrew from Constantinople to a pillar near Ephesus, where he lived a life of asceticism for thirty years.
! THE VENERABLE SAVA OF ZVENIGOROD
Sava was a disciple of St. Sergius of Radonezh and a great miracle-worker. Following his death, he appeared to many as though he were alive, at times teaching them, at times reproaching them and at times healing them. He passed from this life to a better life in the year 1406 A.D.
! HYMN OF PRAISE
! SAINT JOHN THE SILENT
John the Silent, God's laborer,
Walked through the wilderness as a lonely hermit,
Until someone cried out: "The barbarians are coming!
Behold how the dust rises up on the road!
They are near, very near; rise up, rise!"
"Let them be near, but God is nearer!"
John said to him, and did not move.
And when misfortune sought to overtake him,
A lion appeared, sent by God,
And began to fiercely roar at the enemy.
The horde fled; John did not move.
He competed with the severe wilderness,
He competed with her in stillness,
And in dryness and solitude.
"Pascha is coming, how shall we greet it?
What shall we eat on the feast, Father?"
The disciple asked. And John said to him:
"To every creature, God gives food."
When the Radiant Feast of Christ dawned,
An angel suddenly appeared as a man before the saint;
Bread, wine and honey he brought.
The disciple, when he beheld the miracle,
Wept at his lack of faith,
And glorified God and God's saint.
! REFLECTION
God hears the prayers of the righteous and fulfills them, sometimes immediately and completely, and at other times only later, at the appropriate time and according to the needs of the Church. In other words, in fulfilling the prayers of the righteous man, God has in mind either the man's salvation or the good of the whole Church. St. John the Silent prayed to God to reveal to him how the soul separates from the body at death. While still at prayer, he was taken outside himself and had the following vision: A good man died in front of a church in Bethlehem, and angels took his soul from his body and carried it to heaven with sweet singing. Coming to himself out of his ecstasy, John immediately set out on the road from the Monastery of St. Sava the Sanctified to Bethlehem. When he reached Bethlehem, he saw the dead body of the man exactly as he had seen it in his vision.
When the great St. Sava the Sanctified died, John grieved and wept. Sava appeared to him in a vision and said: "Do not grieve, Father John, for even though I am separated from you in the body, nevertheless I am with you in the spirit." Then John begged him: "Father, pray to the Lord to take me with you." To this Sava replied: "For now, this cannot be. A great trial has yet to befall the Lavra, and God wants you to remain in the body to comfort and strengthen the faithful against the heretics." At first, John did not know what kind of heretics the holy father had spoken of, but he found out later, when the heresy of Origen began to shake the Church of God.
! CONTEMPLATION
Contemplate the sinful fall of Adam and Eve (Genesis 3):
# How, seeing themselves naked, they covered their nakedness with fig leaves;
# How, even now, all unrepentant sinners, when they lose a virtue, feel naked and cover their nakedness with some sort of lie or fantasy.
! HOMILY
! on the two worlds
In the beginning God created the heaven and the earth (Genesis 1:1).
Brethren, whatever God desires to reveal to men is revealed, and whatever He does not desire to reveal remains concealed. Moses, the one who beheld God, could say nothing more about heaven than that in the beginning God created it. Having said that, he continued to describe in detail the creation of the earth. Why does Moses not speak in detail about the creation of heaven? Because God did not want to reveal any more to him, since the men of his time were neither mature enough nor capable of understanding heavenly matters beyond their senses. Only when many centuries had passed and God's New Testament had come to men, did God reveal much more of the heavenly world to His faithful and chosen ones. Only Christians began to see the heavens opened. St. John the Theologian bears witness to this: //After this I looked, and, behold, a door was opened in heaven//(Revelation 4:1). St. Stephen the Protomartyr witnesses: //Behold, I see the heavens opened// (Acts 7:56). The Apostle Paul, who was //caught up to the third heaven … and heard unspeakable words// (II Corinthians 12:2, 4), speaks of the angelic choirs, about the thrones, dominions, principalities and powers, and says: //All things were created by Him, and for Him// (Colossians 1:16). His disciple, St. Dionysius, describes the celestial hierarchy in as great a detail as Moses describes the earthly world at its creation. This is how the unfathomable wisdom of God wanted it; that which God did not wish to reveal to Moses, He revealed to the apostles and their followers. What could not be told to children is told to mature men. The revelation of mysteries came through spiritual maturity.
Here is a beautiful lesson for us all. Let us be diligent in seeking the truth, still more diligent in purifying our hearts, patient in waiting, and unwavering in faith that God will give us everything in due time, in the way and to the measure necessary for our salvation.
O Lord most-wise and man-loving, Who teaches us and leads us to salvation without rushing and without delay, to Thee, O Gracious One, be glory and praise.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR ANYSIA
Anysia was born in Thessalonica of eminent and wealthy parents and was brought up in the Christian Faith. She was orphaned at an early age and gave herself completely to godly thoughts and prayer in her own home. Fervent in her love for Christ, she often said: "Oh, how false is the life of youth, for you either scandalize or are scandalized. Better is old age; but sorrow overcomes me because of the length of time that separates me from heaven." She sold all her possessions, distributed the proceeds to the poor, and lived from the labors of her own hands. She kept a strict fast, slept very little, and constantly shed tears at prayer. When sleep overcame her she would say to herself: "It is dangerous to sleep while my enemy keeps vigil." At that time, the wicked Emperor Maximian issued a decree that anyone could kill Christians when and where he encountered them, without trial or sentence. This holy virgin once went out into the streets to attend church. That day was a pagan feast of the sun. A soldier saw her beautiful countenance, and he approached her with an impure desire, asking for her name. She made the sign of the Cross and said to him: "I am Christ's handmaid, and I am going to church." When the impudent soldier came closer and began to speak to her insanely, she shoved him away and spat in his face. The soldier struck her with his sword below the ribs and ran her through. This holy virgin suffered in the year 298 A.D. She was honorably buried by Christians and was crowned with the wreath of glory by God in the Heavenly Kingdom. A church was built over her grave.
! THE VENERABLE THEODORA OF CONSTANTINOPLE
Theodora was a nun and servant of St. Basil the New (March 26). After her death, she appeared to St. Gregory, a disciple of Basil, and described for him all twenty toll-houses through which her soul had passed until, through the prayers of St. Basil, she had entered into eternal rest. Theodora presented herself to the Lord on December 30, 940 A.D.
! THE HOLY APOSTLE TIMON
Timon was one of the Seven Deacons and one of the Seventy Apostles (Acts 6:5). He was appointed Bishop of Bostra in Arabia. There he preached the Gospel and endured much ill-treatment at the hands of the pagans. He was thrown into fire but remained unharmed. He finally died, being crucified, and entered into the Kingdom of Christ.
! THE VENERABLE THEODORA OF CAESAREA
After many ascetic labors in the convent of St. Anna, she entered peacefully into rest in the year 755 A.D.
! THE VENERABLE MARTYR GIDEON
Gideon was a Greek by birth, of very poor parents. In his youth he was forced to embrace Islam. Repentant, he fled to the Holy Mountain, where he received the monastic tonsure in the Monastery of Karakallou. Desiring martyrdom for Christ, he received the blessing of his spiritual father and returned to the same place where he had become a Moslem. There, before the Turks, he openly confessed the Christian Faith and denounced Mohammed as a false prophet. The Turks shaved his head, placed him upside-down on a donkey, and led him through the town, but he rejoiced at this ridicule for the sake of Christ. They then chopped off all his fingers and toes with an axe, as they had once done to St. James the Persian (November 27). Finally they threw him into a place filled with excrement, where he gave up his holy soul to God in the year 1818 A.D., in Trnovo in Thrace. His miracle-working relics are preserved in the Church of the Holy Apostles in the village of Trnovo, and a part of his relics can be found in the Karakallou Monastery.
! HYMN OF PRAISE
! THE HOLY MARTYR ANYSIA
Holy Anysia prays to God,
Continually kneeling and shedding tears:
"O Jesus, God and Lord,
The Source of eternal life,
The Treasury of incorruptible goods:
Help me, O God, help me,
To remain a virgin until death,
As a virgin to enter into rest,
And to become worthy of Thy Kingdom.
Grant me, O Savior, Thy grace,
To be able to suffer for Thee,
To sacrifice myself for Thee.
I desire to be a sacrifice to my God--
Oh, help me to gain what I desire!"
God heard the virgin Anysia,
And gave her His grace
To be able to suffer for Him.
Holy Anysia, now in Paradise,
Shines as a star among the stars,
Shines as an angel among the angels,
Praying for us to the Immortal Christ.
! REFLECTION
Here are two more examples of how the Merciful God helps those in misfortune who hope in Him with faith. Blessed Theodora of Caesarea was born into a noble house and then entrusted to the Convent of St. Anna for her education. There Theodora was not only educated but also lived a life of asceticism, preparing herself to receive the monastic tonsure. Emperor Leo the Isaurian took her from the convent by force and betrothed her to one of his commanders. Theodora protested this marriage with all her soul, but was as powerless as a lamb in the paws of a wolf. She lamented and prayed constantly in her heart to God that He would not forsake her. On the day of the marriage, while the guests were feasting, news unexpectedly came to the emperor that the Scythians had attacked his empire. The emperor ordered his commander to go out immediately against the Scythians. The commander went and never returned, for he was killed in battle. Thus, by God's help, St. Theodora was freed. As a pure maiden she returned to her convent, where she received the monastic tonsure and, as a nun, became famous for her rare asceticism.
A second example: In the Monastery of the "Sleepless Ones," there was great want during a year of famine. St. Marcellus, the abbot, received some poor men one day, refreshed them, and then wanted to give them some money for their journey. Marcellus asked the steward of the monastery how much money they had altogether. The steward told him they had ten silver coins. The abbot ordered that all ten silver coins be given to these poor men. However, the steward did not give them all ten; instead he gave them nine and kept one for the needs of the monastery. The steward was very concerned about the monastery, for it was in extreme poverty. A rich man suddenly visited the monastery and brought the abbot ninety talents of gold. Then the discerning Marcellus summoned the steward and said to him: "Behold, God wanted to send us one hundred talents through this devout man, but because you disobeyed me and withheld one silver coin, the Provider of all deprived us of ten talents."
! CONTEMPLATION
Contemplate the assembly of ascetics and virgins, both male and female:
# How they, out of love for Christ, renounced everything and gave themselves up to voluntary suffering;
# How they conquered themselves, the world and the devil by their persevering endurance;
# How they now rejoice in the Kingdom of Christ and help us by their prayers.
! HOMILY
! on the Kingdom of the saints
But the saints of the most High shall take the Kingdom and possess the Kingdom for ever, even for ever and ever (Daniel 7:18).
Abased and oppressed in the kingdoms of the world, the saints will reign eternally in the Kingdom of Heaven. The last on earth, they will rejoice as the first in heaven. Hungry, thirsty, barefoot and naked in the transitory kingdoms, they will be like king's sons, satisfied and clothed in royal raiment in the enduring Kingdom. Strangers in the kingdoms of decay, they will be lords in their Kingdom, the Kingdom of Incorruption. This is the final Kingdom; in truth, the only kingdom that can be called a kingdom. All others are transitory, temporary schools of deceit and vanity. For the Eternal Kingdom, the saints were recruited on earth from the citizens of all earthly kingdoms through the ages. They are the sons and daughters of Christ the Savior, the children of the Living God. They are those who have passed from this life to the other life and who now reign. But all the splendor and all the majesty of their reign has not yet been revealed. This will be displayed after the Second Coming of Christ, the Judge of the living and the dead. Then will all the splendor and all the majesty of the Kingdom of the saints be shown. This is the Eternal Kingdom of Christ our God. Of this Kingdom there will be neither change nor end //for ever, even for ever and ever//.
O Lord Jesus, the Builder of the Kingdom of the saints, have mercy on us sinners and prepare us for the Eternal Kingdom of Thy saints.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MELANIA THE ROMAN
Melania was born in Rome of devout and very wealthy parents. She was forced by them to enter into marriage with a young nobleman, Apinianus. She became gravely ill in giving birth to her second child, and she told her husband that she would be healed only if he vowed before God to live with her in the future as a brother with a sister. Her husband vowed, and Melania, out of spiritual joy, was physically restored to health. When it was pleasing to God to take both of their children to Himself, they decided to sell all their possessions and distribute the proceeds to the poor, the churches and the monasteries. They traveled through many lands and cities, doing good works everywhere with their wealth. They visited famous spiritual fathers in Upper and Lower Egypt, learned much and were inspired by them. During that entire time, Melania lived an ascetic life of strict fasting, fervent prayer, and the reading of the Holy Scriptures. Melania had the custom of reading the entire book of the Holy Scriptures, both the Old and New Testaments, three times every year. She lived with her husband as with a brother and fellow-ascetic. Coming to Alexandria, they received the blessing of the Patriarch, St. Cyril. After that, they traveled to Jerusalem and settled on the Mount of Olives. There Melania closed herself off and devoted herself to divine contemplation, fasting and prayer. Thus, she lived for fourteen years, after which she came out to help others to salvation. She founded a monastery for men and a convent for women. At the invitation of her kinsman, Senator Volusian, a pagan, she went to Constantinople and converted him to the Christian Faith (which even Blessed Augustine himself was unable to do). She then returned to the Mount of Olives, where she presented herself to God in the year 439 A.D. at the age of fifty-seven.
! THE HOLY AND RIGHTEOUS JOSEPH, KING DAVID, AND JAMES THE BROTHER OF THE LORD
They are all commemorated on the Sunday after the Nativity of Christ. One can learn all about King David, the son of Jesse, in the Book of Kings, and for St. James see October 23. Joseph the Righteous is called in the Gospel //a righteous man// (Matthew 1:19), and because of this God designated him to protect the Most-holy Virgin and imparted to him great honor in the plan of the salvation of mankind. Although Joseph was of the royal lineage of David, he was a humble carpenter in Nazareth. At the age of eighty, he took to himself the Most-holy Virgin from the Temple in Jerusalem into his home. He entered into rest at the age of 110.
! THE VENERABLE MARTYR ZOTICUS, THE FEEDER OF ORPHANS (BENEFACTOR OF THE POOR)
Zoticus was eminent both in birth and in rank. He moved to Constantinople, rejected all worldly things, and received ordination to the priesthood. He founded a home for the poor, in which he housed those who had contagious diseases and ministered to them. He was a personal acquaintance of Emperor Constantine the Great. Because of the gold Zoticus had received from the emperor and had spent on the victims of disease, Constantine's son Constantius had him tied to a wild ass, which was driven until St. Zoticus died of his wounds. He suffered in the fourth century.
! THE BLESSED THEOPHYLACT, ARCHBISHOP OF OCHRID
Theophylact was born on the island of Euripos and educated in Constantinople by the most eminent teachers of that time. As a priest of the Great Church, he was chosen bishop and sent, against his will, to Ohrid, where he remained about twenty-five years (from about 1082 to 1108 A.D.). Chromatianus of Ohrid calls him "the wisest archbishop." A man of enormous learning, both secular and theological, of refined Byzantine tastes, melancholy and sensitive, Theophylact felt among the Slavs in Ohrid like an exile among barbarians. He wrote commentaries on the Four Gospels and other books of the New Testament. These are the best works of their kind after that of St. Chrysostom, and are read even today with great benefit. His other known works include his Letters and the Life of St. Clement of Ohrid. In old age, St. Theophylact withdrew from Ohrid to Thessalonica, where it is thought he finished his earthly life and took up his habitation in blessed eternity.
! HYMN OF PRAISE
! THE VENERABLE MELANIA THE ROMAN
The wealthy Melania possessed great gold.
She gave it to the poor, for the sake of Christ and her salvation.
He who trades wisely receives great value from his gold,
And with it quickly purchases the Heavenly Kingdom.
Melania, a devout woman, became poor;
She possessed nothing in the world except the Living God,
And without gold--but with the Living God--she became wealthy.
Melania said: "God alone is enough!"
Melania the physician healed pains,
Praising God until her last breath.
! REFLECTION
How wisely holy men and women knew how to handle their wealth! How skillfully they purchased the eternal goods of heaven with their earthly goods. Oh, how little they valued earthly goods in themselves--as dust and smoke! When St. Melania visited the holy desert fathers in Egypt with the intention of giving them some financial help, she was astonished at seeing their extreme abhorrence of goods and riches. Thus, she visited one hermit, Ephestion, and saw nothing in his cell but mats, a bowl for water, a little dry bread, and a salt pot. Knowing beforehand that the elder would not take any gold from her, she seized the opportunity and placed several gold pieces in the salt pot. However, when she was on her way back, she heard the elder running after her, and at the top of his voice he was calling to her to stop. She stopped. The elder held the gold pieces in the palm of his hand and, handing them to Melania, said: "I do not need this, take what is yours!" Melania said to him: "If you do not need it, give it to someone else." He replied: "No one in this place has any use for it." When Melania refused to accept the gold, the elder swung his arm and threw the gold pieces into the river and then returned to his cell.
During an outbreak of plague in Constantinople, Emperor Constantius ordered that everyone infected be immediately thrown into the sea. St. Zoticus ransomed those who were infected and brought them to his home, and there he cared for them. When his money ran out, he went to the emperor and asked for money to purchase precious pearls for him. The emperor gave him money, and with this money Zoticus continued his work of ransoming the contagious ones and caring for them. One day, the emperor asked Zoticus for the promised pearls, and Zoticus brought him and showed him the infected men in his home, saying: "These, O Emperor, are the living pearls that I acquired with labor and money for your salvation." The enraged emperor condemned Zoticus to death, but Zoticus entered into eternal life, and the emperor remained to atone and repent for his sins.
! CONTEMPLATION
Contemplate the assembly of penitents:
# How they sinned, unknowingly or knowingly, against the Law of Christ;
# How they repented, corrected their lives and fulfilled the Law of Christ;
# How they now rejoice in Christ's Kingdom and help us by their prayers.
! HOMILY
! on the victory of the Lamb
These shall make war with the Lamb, and the Lamb shall overcome them (Revelation 17:14).
Brethren, let us rejoice and be glad at the Lamb's victory over all the beasts. Lions and tigers, wolves and foxes, hyenas and snakes--the Lamb shall overcome them! Who has seen and heard this? Our ears have heard this and our eyes have seen this. The Lamb is Christ the Lord, and the beasts are all His adversaries, visible and invisible. In our day the Lamb carries the victories; in the future the Lamb shall conquer, even to the last day. The Lamb conquered and conquers and shall conquer all the kings and rulers of the world with their bestial natures, their armies and their mercenaries, their glorifiers and their followers. Such power is possessed by the meek Lamb of God. O my poor brethren, be not afraid; be not frightened; be not doubtful. The greatest Victor is your Leader, your Helper and your Friend. He is called "the Lamb" in order to teach us that we should be like lambs: quiet, meek, guileless, patient, ready for the victory-bearing sacrifice, and devoted to the will of our Shepherd. When God is with the lamb, then the lamb is stronger than the wolf, mightier than the lion, craftier than the snake and the fox. However, justice cannot be recognized or the final victory be seen until both worlds are taken into account. O my brethren, when we take into account both worlds, we recognize eternal justice and immortal victory. The Lamb conquers, and only the Lamb.
O Lord Jesus, King of kings, Victor in all conflicts and battles, the Lamb of God, meek and merciful, make us to be victory-bearing lambs.
To Thee be glory and praise forever. Amen.
! The end and glory be to God!
! Through the prayers of all Thy saints,
O Lord Jesus Christ our God, have mercy on us!
Amen.
! THE HOLY GREAT-MARTYR BARBARA
This glorious follower of Christ was betrothed to Christ from early childhood. Her father Dioscorus was a pagan and was renowned for his position and wealth in the city of Heliopolis in Egypt. Dioscorus locked up his only daughter Barbara, brilliant in mind and of beautiful countenance, in a high tower. He surrounded her with every comfort, gave her female servants, erected idols for worship, and built her a bathing room with two windows. Looking through the window at the earth below and the starry heavens above, Barbara's mind was opened by the grace of God. She recognized the One True God, the Creator, despite the fact that she did not have a human teacher to bring her to this knowledge. Once, while her father was away from the city, she came down from the tower and, according to God's providence, met some Christian women who revealed the true Faith of Christ to her. Barbara's heart became inflamed with love for Christ the Lord. She ordered that a third window be cut open in the bath so that the three windows would represent the Holy Trinity. On one wall she traced a Cross with her finger, and the Cross etched itself deep in the stone as if cut by a chisel. A pool of water sprang forth from her footprints on the floor of the bath, which later gave healing of diseases to many. Learning of his daughter's faith, Dioscorus beat her severely and drove her from the tower. He pursued her in order to kill her, but a cliff opened up and hid Barbara from her brutal father. When she appeared again, her father brought her to Martianus, the magistrate, who handed her over for torture. They stripped the innocent Barbara and flogged her until her entire body was covered with blood and wounds, but the Lord Himself appeared to her in prison with His angels and healed her. A certain woman, Juliana, upon seeing this, desired martyrdom for herself. Both women were severely tortured and with mockery were led through the city. Their breasts were cut off and much blood flowed from them. They were finally led to the place of execution, where Dioscorus himself slaughtered his daughter, and Juliana was slain by the soldiers. That same day, lightning struck the house of Dioscorus, killing him and Martianus. St. Barbara suffered in the year 306 A.D. Her miracle-working relics rest in Kiev. Glorified in the Kingdom of Christ, she has appeared many times even in our own day, sometimes alone and sometimes in the company of the Most-holy Theotokos.
! SAINT JOHN DAMASCENE
John was first the chief minister to Caliph Abdul-Malik and later a monk in the Monastery of St. Sava the Sanctified. Because of his ardent defense of the veneration of icons during the reign of the iconoclastic Emperor Leo the Isaurian, John was maligned by the emperor to the Caliph, who cut off his right hand. John fell down in prayer before the icon of the Most-holy Theotokos, and his hand was rejoined and miraculously healed. Seeing this miracle the Caliph repented, but John no longer desired to remain with him as a nobleman. Instead, he withdrew to a monastery, where, from the beginning, he was a model to the monks in humility, obedience and all the prescribed rules of monastic asceticism. John composed the Funeral Hymns and compiled the //Octoechos//(The Book of Eight Tones), the //Irmologion//, the //Menologion// and the Paschal Canon, and he wrote many theological works of inspiration and profundity. A great monk, hymnographer, theologian and soldier for the truth of Christ, Damascene is numbered among the great Fathers of the Church. He entered peacefully into rest in about the year 776 A.D. at the age of 104.
! SAINT GENNADIUS, ARCHBISHOP OF NOVGOROD
Gennadius was a distinguished writer, a champion of truth, and one who suffered for the truth of Christ. He gathered the various books of Sacred Scripture into one book and compiled the key for determining the date of Pascha (the Paschalion) for the next 532 years. He entered into rest in the Lord in the year 1505 A.D. His miracle-working relics rest in the Chudov Monastery in Moscow.
! HYMN OF PRAISE
! SAINT JOHN DAMASCENE
O wondrous trumpet of the Orthodox Faith,
O glorious monk of a glorious cenobium,
John the poet, champion of the Faith,
Holy sufferer for the holy icons,
Having glorified God you are now glorified;
Immortal trumpeter of eternal life,
You left the world for the sake of the Living Christ.
Having humbled yourself, you are glorified the more.
You took upon yourself the path of asceticism;
Through tears you beheld the heavenly mysteries;
By prayer and faith you performed miracles;
You conversed with the Mother of God.
The Faith--who could better expound it?
Who could glorify God with a sweeter hymn?
O harp of eternal truth, there is none like you,
No one like you, glorious Father Damascene.
Oh, raise even now your pure mouth,
And implore the Life-giving Christ for us,
That His mercy accompany us until death,
That we with you may glorify Him.
! REFLECTION
Obedience, coupled with humility, is the foundation of the spiritual life, the foundation of salvation and the foundation of the overall structure of the Church of God. The great John Damascene--great in every good thing--as a monk left a deep impression on the history of the Church by his exceptional example of obedience and humility. Testing him one day, his elder and spiritual father handed him woven baskets and ordered him to take them to Damascus and sell them there. The elder established a very high price for the baskets, thinking that John would not be able to sell them at that price but would have to return with them. John, therefore, firstly had to go on a long journey; secondly, he had to go as a poor monk to the city where he, at one time, had been the most powerful man after the Caliph; thirdly, he had to seek a ridiculously high price for the baskets; and fourthly, should he not sell the baskets, he would have made this enormous journey, there and back, for nothing. In this way, the elder wished to test the obedience, humility and patience of his famous disciple. John silently prostrated before the elder and, without a word, took the baskets and started on his journey. Arriving in Damascus, he stood in the market place and awaited a buyer. When he told the interested passers-by the price of his goods, they laughed at and mocked him as a lunatic. He stood there the whole day, and the whole day he was exposed to derision and ridicule. But God, Who sees all things, did not abandon His patient servant. A certain citizen passed by and looked at John. Even though John was clad in a poor monk's habit and his face was withered and pale from fasting, this citizen recognized in him the one-time lord and first minister of the Caliph, in whose service he had also been. John also recognized him, but they both began to deal as strangers. Even though John named the all-too-high price of the baskets, the citizen purchased and paid for them without a word, recalling the good that John Damascene had once done for him. As a victor, holy John returned to the monastery rejoicing, and brought joy to his elder.
! CONTEMPLATION
Contemplate the sinful fall of Adam and Eve (Genesis 3):
# How Adam and Eve, having sinned, hid themselves from God;
# How, hearing the voice of God, they fled and hid themselves among the trees;
# How, even now, every sin estranges us from God;
# How a sinner, hearing the voice of God through his conscience, hides himself in irrational nature.
! HOMILY
! on how everything is good that is of God
And God saw that it was good (Genesis 1:4, 10, 12, 18, 21, 25).
Brethren, only good works proceed from the good Creator. Therefore, let all those who say that both good and evil proceed from God be silent. After His every act, God Himself affirms that it is good. Six times He repeated that what He created was good, and finally, the seventh time, when He saw all in its entirety, He pronounced His judgment that all He had created //was very good// (Genesis 1:31). Therefore, in total He repeated seven times that everything was good that came into existence by His holy will. Is it not a great wonder that some people come up with the godless assertion that both good and evil equally proceed from God? God, as if He knew that such slanders would be cast against Him--or, better to say, that such slanders would be cast throughout the centuries--gave His defense in advance and repeated it seven times, for all times and for all generations. Evil comes from sin, and there is no sin in God. Therefore, God can do no evil. He is called the Almighty because He is powerful to do every good. Wicked and twisted are the commentators on God who claim that God is "Almighty" because He can do both good and evil. God is the source of good and is darkened by nothing, and nothing can proceed from Him that is contrary to good. It is obvious to every normal man that evil is contrary to good. Know, brethren, that those who speak of duality in God, in the eternal Source of good, are those in whom is found the duality of good and evil. However, all those who love good, follow the path of goodness, and yearn for good, have a clear revelation within themselves that God is good, and only good.
O our God, our Creator, Thou art the Creator of all good, and all Thy works are good.
To Thee be glory and praise forever. Amen.
! THE VENERABLE SAVA THE SANCTIFIED
The unknown village of Mutalaska, in the province of Cappadocia, became famous through this great luminary of the Orthodox Church. Sava was born there of his parents John and Sophia. At the age of eight, he left the home of his parents and was tonsured a monk in a nearby monastic community called Flavian's. After ten years, he moved to the monasteries of Palestine and remained longest in the Monastery of St. Euthymius the Great (January 20) and Theoctistus. The clairvoyant Euthymius prophesied of Sava that he would become a famous monk and a teacher of monks and that he would establish a lavra greater than all the lavras of that time. After the death of Euthymius, Sava withdrew to the desert, where he lived for five years as a hermit in a cave shown to him by an angel of God. Afterward, when he had been perfected in the monastic life, he began by divine providence to gather around him many who were desirous of the spiritual life. Soon, such a large number gathered that Sava had to build a church and many cells. Some Armenians also came to him, and for them he provided a cave where they would be able to celebrate services in the Armenian language. When his father died, his aged mother Sophia came to him, and he tonsured her a nun. He gave her a cell located at a distance from his monastery, where she lived a life of asceticism until her death. This holy father endured many assaults from all sides: from those who were close to him, from heretics, and from demons. But he triumphed over them all: those close to him, by kindness and indulgence; the heretics, by his unwavering confession of the Orthodox Faith; the demons, by the sign of the Cross and calling upon God for help. He had a particularly great struggle with demons on Mount Castellium, where he established his second monastery. In all, Sava established seven monasteries. He and Theodosius the Great, his neighbor, are considered to be the greatest lights and pillars of Orthodoxy in the East. They corrected emperors and patriarchs in matters of the Faith, and to everyone they served as an example of saintly humility and the miraculous power of God. After a toilsome and very fruitful life, St. Sava entered into rest in the year 532 A.D., at the age of ninety-four. Among his many wondrous and good works, let it at least be mentioned that he was the first to compile the Order of Services for use in monasteries, now known as the Jerusalem Typicon.
! THE VENERABLE MARTYRS OF KARYES
They suffered at the hands of the Papists at the time of the Union of Lyons [1274], which was the work of Emperor Michael Palaeologus (1260-1281) and the pope. The Protos of the Holy Mountain was hanged, and the others were beheaded. (For details about this, see October 10.)
! THE VENERABLE NECTARIUS OF BITOLA
Nectarius was born in Bitola and lived a life of asceticism in the Monastery of the Holy Unmercenary Physicians Cosmas and Damian, together with his father, Pachomius, who was also tonsured. After that he went to Karyes, where he continued his asceticism in the Cell of the Holy Archangels under the guidance of Elders Philotheus and Dionysius. After conquering human envy, demonic assaults and difficult illnesses, he entered into rest in the Kingdom of Christ on December 5, 1500 A.D. His incorrupt and fragrant relics rest in this same cell.
! THE VENERABLE KARION AND ZACHARIAS
Karion and Zacharias were father and son, and both were great Egyptian ascetics. Karion left his wife and two children and set off to become a monk. As a child, the young Zacharias was taken into the monastery, and in his ascetic labors he surpassed both his father and many other notable ascetics. When they asked Zacharias, "Who is a true monk?" he replied: "He who constantly applies himself to the fulfilling of God's commandments."
! HYMN OF PRAISE
! SAINT SAVA THE SANCTIFIED
Venerable Sava, chief of monks,
Spiritual commander of Christ's heroes,
Was glorified by fasting, vigils and meekness,
By prayer and faith and blessed mercy.
You taught the monks to not be concerned with bread;
You entrusted yourself to heaven, with labor and prayer.
You sought neither precedence nor rank of any kind.
Most rarely did you taste of oil and wine.
You kept all the services at the appointed time.
"Let the service be a joy and not a heavy burden,"
St. Sava told the monks,
And he showed this to all by his example.
Like a wise gardener, he enclosed the garden,
And carefully planted many young men.
The young men grew and brought forth fruit:
A regiment of monks, to the glory of Sava.
Fifteen hundred years have passed,
Yet Sava's spiritual garden still blooms:
One thousand monks, a hundred thousand,
Have been raised up by Sava's community up to now.
St. Sava, glorious recluse,
O God-pleaser, pray for us also.
! REFLECTION
A man may be great in some skill, as a statesman or a military leader, but no one among men is greater than a man who is great in faith, hope and love. How great St. Sava the Sanctified was in faith and hope in God is best shown by the following incident: One day, the steward of the monastery came to Sava and informed him that the following Saturday and Sunday he would be unable to strike the semantron, according to tradition, to summon the brethren to the communal service and meal because there was not a trace of flour in the monastery nor anything at all to eat or drink. For this same reason, even the Divine Liturgy was not possible. The saint replied without hesitation: "I shall not cancel the Divine Liturgy because of the lack of flour; faithful is He Who commanded us not to be concerned about bodily things, and mighty is He to feed us in time of hunger." And he placed all his hope in God. In this extremity, he was prepared to send some of the ecclesiastical vessels or vestments to be sold in the city so that neither the divine services nor the brother's customary meal would be omitted. However, before Saturday some men, moved by divine providence, brought thirty mules laden with wheat, wine and oil to the monastery. "What do you say now, Brother?" Sava asked the steward. "Shall we not strike the semantron and assemble the fathers?" The steward was ashamed because of his lack of faith and begged the abbot for forgiveness. Sava's biographer describes this saint as "severe with demons but mild toward men." Once, some monks rebelled against St. Sava, and for this they were driven from the monastery by order of Patriarch Elias. They built themselves huts by the river Thekoa, where they endured privation in all things. Hearing that they were starving, St. Sava loaded mules with flour and brought it to them personally. Seeing that they had no church, he built one for them. At first, the monks received him with hatred, but afterward they responded to his love with love and repented of their former misdeeds toward him.
! CONTEMPLATION
Contemplate the sinful fall of Adam and Eve (Genesis 3):
# How the All-gracious God called out to sinful Adam, //Where art thou?//
# How God showed Himself to be the Good Shepherd, Who, even in Paradise, called out for His lost sheep;
# How, even now, God calls out to every sinner, //Where art thou?// (desiring by these words to reproach him and to warn him).
! HOMILY
! on the absence of evil in God's works
And God saw that it was good (Genesis 1).
Brethren, the first revelation about this world that Holy Scripture communicates to us is that the world proceeded from good and not from evil, from God and not from some power contrary to God and not from some imagined primordial mixture of good and evil. The second revelation, brethren, about this world is that everything that the good God created is good. The light is good; the firmament of heaven is good; the land is good; the sea is good; the grass, the vegetation and the fruitful trees are good; the heavenly lights-- the sun, moon and stars--are good; the living creatures in the water and the birds in the air are good; all living beings according to their kind are good; the cattle, the small animals and the beasts of the earth are good. Finally, man--the master, under the lordship of God, over all created things--is also good. //And God saw that it was good.//The appraiser of the value of this world is not and cannot be someone who views this world superficially and partially, but can only be He who views all of creation together and each part individually, He who knows their number, name, composition and essence incomparably better than all men on earth. //And God saw that it was very good// (Genesis 1:31). But, nevertheless, there have been men who have slandered the work of God, saying that this world is evil in its essence, that each individual creation is evil, and that matter, from which all earthly beings are formed, is evil. However, evil is found in sin, and sin is from the evil spirit; therefore, evil dwells in the spirit of evil and not in matter. This spirit, fallen from God, is the sower of evil in the world, from whence come the tares in God's wheat. The spirit of evil strives to use both the human spirit and material things in general as his weapons of evil. He is also the one who instills in the human mind the thought that the whole created world is evil and that matter, from which creation was formed, is fundamentally evil. He slanders God's works in order to conceal his own works; he accuses God in order not to be accused. O my brethren, let us guard ourselves from the cunning of the evil spirit. Let us guard ourselves in particular from the evil thoughts that he sows in our minds.
O Lord Jesus Christ, our true Enlightener and Savior, into Thy hands we give over our minds and our hearts. Do Thou illumine us with Thy true light.
To Thee be glory and praise forever. Amen.
! SAINT NICHOLAS THE WONDERWORKER, ARCHBISHOP OF MYRA IN LYCIA
This glorious saint, celebrated even today throughout the entire world, was the only son of his eminent and wealthy parents, Theophanes and Nona, citizens of the city of Patara in Lycia. Since he was the only son bestowed on them by God, the parents returned the gift to God by dedicating their son to Him. St. Nicholas learned of the spiritual life from his uncle Nicholas, Bishop of Patara, and was tonsured a monk in the Monastery of New Zion founded by his uncle. Following the death of his parents, Nicholas distributed all his inherited goods to the poor, not keeping anything for himself. As a priest in Patara, he was known for his charity, even though he carefully concealed his charitable works, fulfilling the words of the Lord: //Let not thy left hand know what thy right hand doeth// (Matthew 6:3). When he gave himself over to solitude and silence, thinking to live that way until his death, a voice from on high came to him: "Nicholas, for your ascetic labor, work among the people, if thou desirest to be crowned by Me." Immediately after that, by God's wondrous providence, he was chosen archbishop of the city of Myra in Lycia. Merciful, wise and fearless, Nicholas was a true shepherd to his flock. During the persecution of Christians under Diocletian and Maximian, he was cast into prison, but even there he instructed the people in the Law of God. He was present at the First Ecumenical Council of Nicaea [325] and, out of great zeal for the truth, struck the heretic Arius with his hand. For this act he was removed from the Council and from his archiepiscopal duties, until the Lord Christ Himself and the Most-holy Theotokos appeared to several of the chief hierarchs and revealed their approval of Nicholas. A defender of God's truth, this wonderful saint was ever bold as a defender of justice among the people.
On two occasions, he saved three men from an undeserved sentence of death. Merciful, truthful, and a lover of justice, he walked among the people as an angel of God. Even during his lifetime, the people considered him a saint and invoked his aid in difficulties and in distress. He appeared both in dreams and in person to those who called upon him, and he helped them easily and speedily, whether close at hand or far away. A light shone from his face as it did from the face of Moses, and he, by his presence alone, brought comfort, peace and good will among men. In old age he became ill for a short time and entered into the rest of the Lord, after a life full of labor and very fruitful toil, to rejoice eternally in the Kingdom of Heaven, continuing to help the faithful on earth by his miracles and to glorify his God. He entered into rest on December 6, 343 A.D.
! SAINT NICHOLAS, BISHOP OF PATARA
Nicholas was the uncle of the great St. Nicholas, and it was he who guided him to the spiritual life and ordained him a priest.
! THE HOLY MARTYR NICHOLAS KARAMOS
Nicholas was cruelly tortured for the Christian Faith by the Turks and was hanged in Smyrna in the year 1657 A.D.
! SAINT THEOPHILUS, BISHOP OF ANTIOCH
A man well educated in Hellenic philosophy, Theophilus, after reading the Holy Scriptures, was baptized and became a great defender of the Christian Faith. His work "On the Faith" is preserved even today. He governed the Church of Antioch for thirteen years and entered into rest in the year 181 A.D.
! HYMN OF PRAISE
! SAINT NICHOLAS THE WONDERWORKER, ARCHBISHOP OF MYRA IN LYCIA
Holy Father Nicholas,
The four corners of the world glorify you
As a knight of the powerful Faith,
The Faith of God, the true Faith.
From the cradle he was devoted to God,
From the cradle until the end;
And God glorified him--
His faithful Nicholas.
Famous was he throughout his life,
And even more renowned after death;
Mighty on earth was he,
And even more mighty is he in heaven.
Glowing spirit, pure heart,
He was a temple of the Living God;
For this the people glorify him
As a wondrous saint.
Nicholas, rich in glory,
Loves those who honor him as their "Krsna Slava";//)
Before the throne of the eternal God,
He prays for their good.
O Nicholas, bless us,
Bless your people
Who, before God and before you,
Humbly stand in prayer.
! REFLECTION
In icons of St. Nicholas, the Lord Savior is usually depicted on one side with a Gospel in His hands, and the Most-holy Virgin Theotokos is depicted on the other side with an episcopal omophorion in her hands. This has a twofold historical significance: first, it signifies the calling of Nicholas to the hierarchical office, and second, it signifies his exoneration from the condemnation that followed his confrontation with Arius. St. Methodius, Patriarch of Constantinople, writes: "One night St. Nicholas saw our Savior in glory, standing by him and extending to him the Gospel, adorned with gold and pearls. On his other side, he saw the Theotokos, who was placing the episcopal pallium on his shoulders." Shortly after this vision, John the Archbishop of Myra died and St. Nicholas was appointed archbishop of that city. That was the first incident. The second incident occurred at the time of the First Ecumenical Council in Nicaea. Unable to stop Arius through reason from espousing the irrational blasphemy against the Son of God and His Most-holy Mother, St. Nicholas struck Arius on the face with his hand. The Holy Fathers at the Council, protesting such an action, banned Nicholas from the Council and deprived him of all emblems of the episcopal rank. That same night, several of the Holy Fathers saw an identical vision: how the Lord Savior and the Most-holy Theotokos were standing around St. Nicholas--on one side the Lord Savior with the Gospel, and on the other side the Most-holy Theotokos with a pallium, presenting the saint with the episcopal emblems that had been removed from him. Seeing this, the fathers were awestruck and quickly returned to Nicholas that which had been removed. They began to respect him as a great chosen one of God, and they interpreted his actions against Arius not as an act of unreasonable anger, but rather an expression of great zeal for God's truth.
! CONTEMPLATION
Contemplate the sinful fall of Adam and Eve (Genesis 3):
# How God cursed the serpent;
# How He imposed upon Eve the pain of child-bearing and on Adam the burden of toil;
# How He cursed the ground in the works of man;
# How He did not curse ground as ground but rather //in thy works//,//) i.e., in the works of man.
--------------------
//) According to the Greek and Slavonic texts.
! HOMILY
! on the absence of sin in the works of God
And God saw that it was good (Genesis 1).
Brethren, everything that was created, and the means by which the pure and sinless God created it, is pure and sinless. Every creature of God is pure and sinless as long as it is turned toward God, as long as it is neither separated from God nor hostile to God. Every creature of itself praises and glorifies God as long as it is pure and sinless. That is why the Psalmist sings: //Let everything that hath breath praise the Lord. Alleluia!// (Psalm 150:6). Every intelligent creature of God feels that its natural and primary purpose is to praise the Lord. Thus, brethren, people ask: "If this is so, from whence comes evil into the world?" It comes from sin, and only from sin. Sin changed a bright angel into a devil. The devil willingly made himself a vessel of sin and then hurried to make other creatures of God similar vessels. By their own free choice, other angels consented to sin with the devil, and afterward the first people, Eve and Adam, consented. From this proceeded the mixture of good and evil in the world. However, even today, that which is of God in creation is good, as it was in the first days of creation. Poison came from sin, for sin is indeed poison, the most bitter poison that exists. Sin was the cause of the curse. It brought about the darkening of minds and caused created things to become hostile toward their Creator. It distanced man from God, and man from man, and man from nature, and nature from man. O my brethren, all that comes from God is good, and all that comes from sin is evil. No evil exists that is bound to God, and there exists no kind of evil that is not bound to sin. Many philosophers have examined the essence of evil, and because of their crude minds they have asserted that evil is in matter and that matter is evil. However, only we Christians know that sin is the essence of evil and that evil has no essence other than sin. It is obvious from this that if we desire to protect ourselves from evil, we must protect ourselves from sin.
O sinless God, help us to protect ourselves from sin and the corruption of sin.
To Thee be glory and praise forever. Amen.
! SAINT AMBORSE, BISHOP OF MEDIOLANUM (MILAN)
This great holy father of the Orthodox Church was of eminent birth. His father was the imperial deputy of Gaul and Spain and was a pagan by faith, but his mother was a Christian. While he was still in the cradle, a swarm of bees settled on him, poured honey onto his lips, and flew away. And while still a child, he extended his hand and spoke prophetically: "Kiss it, for I will be a bishop." After his father's death, the emperor appointed him as his representative in the province of Liguria, of which Milan was the chief city. When the bishop of Milan died, a great dispute arose between the Orthodox Christians and the Arian heretics concerning the election of a new bishop. Ambrose entered the church to maintain order, this being his duty. At that moment, a child at its mother's bosom exclaimed: "Ambrose for bishop!" All the people took this as the voice of God, and unanimously elected Ambrose as their bishop, contrary to his will. Ambrose was baptized, passed through all the necessary ranks and was consecrated to the episcopacy, all within a week. As bishop, Ambrose strengthened the Orthodox Faith, suppressed the heretics, adorned churches, spread the Faith among the pagans, wrote many instructive books, and served as an example of a true Christian and a true Christian shepherd. He composed the famous hymn "We Praise Thee, O God." This glorious hierarch, whom men visited from distant lands for his wisdom and sweetness of words, was very restrained, diligent and vigilant. He slept very little, labored and prayed constantly, and fasted every day except Saturday and Sunday. Therefore, God allowed him to witness many of His miracles and to perform miracles himself. He discovered the relics of the Holy Martyrs Protasius, Gervasius, Nazarius and Celsus (October 14). Meek toward lesser men, he was fearless before the great. He reproached Empress Justina as a heretic, cursed Maximus the tyrant and murderer, and forbade Emperor Theodosius to enter a church until he had repented of his sin. He also refused to meet with Eugenius, the tyrannical and self-styled emperor. God granted this man, so pleasing to Him, such grace that he even raised the dead, drove out demons from men, healed the sick of every infirmity, and foresaw the future. Ambrose died peacefully on the morning of Pascha in the year 397 A.D.
! THE VENERABLE GREGORY THE HESYCHAST
Gregory was a Serb by birth. He was the founder of the Monastery of St. Nicholas on the Holy Mountain, known as "Gregoriou" after him. His cell, where he prayed in silence and repented, can be found about a quarter of an hour distance from the monastery. In the year 1761 A.D., there was a great fire in the monastery, and on this occasion some of the monks took his relics and translated them to Serbia. This man of God entered peacefully into rest in the year 1406 A.D.
! THE VENERABLE NILUS OF STOLBENSK
Nilus was a farmer and was born in Novgorod. Withdrawing into the wilderness, he fed on plants. At the instruction of a voice from on high, he settled on the island of Stolbensk. Once, some robbers entered his cell in order to plunder it, and they were immediately blinded. He dug a grave for himself close to his cell and wept over it every day. Nilus entered into rest peacefully and took up his habitation in the Kingdom of Christ in the year 1554 A.D. His miracle-working relics rest in the place where he fasted.
! HYMN OF PRAISE
! SAINT AMBROSE, BISHOP OF MILAN
Ambrose, converted late in life,
Ambrose, soon consecrated,
A pillar of truth, a light of piety,
A soldier of Christ, a persecutor of impiety,
He divinely served the Church of God,
And the Church repaid its shepherd.
In hymns and with love, the Church glorifies him,
And angels are among those who glorify him.
The Church glorifies him as a father,
As a shepherd, and as a miracle-worker;
And as a wise man equal to Solomon,
The whole universe recognizes him,
The invisible as well as the visible,
And to the Living God it renders praise.
Thee, O God, we also glorify,
And to Thy power we bow down--
To Thy might and Thy mercy,
Eternal justice, wondrous wisdom.
Most beautifully Thy glory shone
Through Thy wonderful St. Ambrose.
O how merciful art Thou, O God,
O how wondrous art Thou in Thy saints!
! REFLECTION
Brethren, God returns a loan a hundredfold, when it is lent to Him through the poor. At one time, there was a Christian woman married to a pagan, and they lived together in love and poverty. When the husband, with much difficulty, saved up fifty silver pieces, he told his wife that this money should be given to someone as a loan with interest. Otherwise, he stated, they would spend their savings coin by coin, and again they would be left with nothing. His wife replied: "If you want to loan it out, lend it to the Christian God." "And where is the Christian God?" the husband asked. His wife led him to the church and told him to distribute the money to the beggars in front of the church, saying to her husband: "The Christian God will accept this from them, since all of them are His." They distributed all fifty silver pieces to the poor and returned home. After a period of time, they were left without any bread in the house. Then the wife told her husband to go to the church, and he would receive the money that he loaned to God. The man went to the church and saw only beggars there, and in his perplexity as to who would give him money, he walked around the church. Suddenly he saw a silver coin in front of him. He took it, purchased a fish with it, and brought the fish home. He complained to his wife that he had not seen anyone and no one had given him anything, but that he accidentally had found a silver coin. His wife replied: "God is invisible and works in an unseen manner." When the wife cut open the fish, she found a glittering stone in it. She gave this stone to her husband and he took it to a merchant to see what he could get for it. The merchant offered him five silver pieces, and the man began to laugh, thinking that the merchant was joking by offering him such a high price. However, the merchant, thinking that the man was laughing because of the small price he had offered him, then offered him ten, then fifteen, then thirty, then fifty silver pieces. The man, realizing that it was a precious stone, began to hesitate. The merchant raised the price higher and higher until he reached the price of three hundred silver pieces. Then the man accepted the three hundred silver pieces and went home joyfully. "Do you see how good the Christian God is?" his wife said to him. The amazed husband was immediately baptized and, together with his wife, glorified God.
! CONTEMPLATION
Contemplate the sinful fall of Adam and Eve (Genesis 3):
# How God drove Adam and Eve out of Paradise;
# How He placed the Cherubim with a flaming sword before the gate of Paradise;
# How Paradise remained closed to men until the advent of Christ the Lord on earth.
! HOMILY
! on how all that God created was very good
And God saw every thing that He had made, and, behold, it was very good (Genesis 1:31).
Brethren, when all the parts of a building are good, then the building in its entirety is very good. Every single brick is good, and every stone, the mortar and the lime, and the beams and the pillars--but man is moved to admiration only when he views the entire structure. Oftentimes, a certain detail in the building seems unintelligible and inappropriate to him, but he forgets about this in a moment when he turns his gaze upon the whole. And, indeed, there are many details in this world, as well as in things and in events, that are unintelligible and inappropriate to us. Only when the entire thing as a whole is revealed to us do we understand and are reassured. We consider many of the sufferings and deprivations in our lives as truly ugly and senseless at the time they occur. However, when days and years pass, those very sufferings and deprivations shine as precious stones in our memory, illumining the later path of our life. Therefore, if something in God's creation offends you, look at the whole; if something in life embitters you, wait patiently with faith and hope for new days and years. And if this entire life seems painful and sorrowful to you, raise your spiritual eyes to the other world, and you will have peace and joy. For this entire visible world is not a perfect whole--the other world also exists. For it is said: //God created the heaven and the earth// (Genesis 1:1). Even an artist directs the viewer to look at his painting from a distance, so that he may see it in all its beauty.
O Lord, O Immortal Artist, how very good is everything that Thou hast created!
To Thee be glory and praise forever. Amen.
! THE VENERABLE PATAPIUS
Patapius was born and brought up in the Faith and in the fear of God by pious parents in the Egyptian city of Thebes. At an early age he perceived and abhorred the vanity of this world and withdrew into the wilderness of Egypt. There he devoted himself to a life of asceticism, cleansing his heart of all earthly desires and thoughts, for the sake of God's love. However, when his virtues became known among the people, they began to come to him and to seek solace from him in their sufferings. Fearing the praise of men, which darkens the minds of men and separates them from God, Patapius fled this wilderness to Constantinople, for this wonderful saint thought that he could hide himself more easily from people in the city than in the wilderness. Patapius built a hut for himself in the proximity of the Church of Blachernae in Constantinople. There, immured and unknown, he continued his interrupted life of eremetic asceticism. However, a light cannot be hidden. A child, blind from birth, was led by God's providence to St. Patapius. He besought the saint to pray to God that he be given his sight and be able to look upon God's creation--thus allowing him to praise God all the more. Patapius having compassion on the suffering child, prayed to God, and the child's sight was restored. This miracle revealed God's chosen one throughout the entire city, and people rushed to him for healing, comfort and instruction. Patapius healed an eminent man of dropsy by tracing the sign of the Cross over him and anointing him with oil. By making the sign of the Cross in the air with his hand, he freed a youth from an unclean spirit that had cruelly tormented him. The evil spirit, with a loud shriek, came out from God's creature like smoke. He made the sign of the Cross over a woman who had a sore on her breast all filled with worms, and made her healthy. Many other miracles did St. Patapius perform, all through prayer in the name of Christ and by the sign of the Cross. He entered into rest peacefully in great old age and took up his habitation in the Heavenly Kingdom in the seventh century.
! THE HOLY APOSTLES SOSTHENES, APOLLOS, TYCHICUS, EPAPHRODITUS, ONESIPHORUS, CEPHAS AND CAESAR
All of them are commemorated on January 4 with the other lesser apostles. St. Apollos is also commemorated separately on September 10; St. Onesiphorus, September 7; Saints Cephas and Caesar, March 30. St. Sosthenes was bishop in Caesarea, and St. Tychicus was his successor in the same city. Epaphroditus was bishop in Andriopolis in Pamphylia; Cephas, in Iconium; and Caesar, in the Colophon Peloponnese. They all preached the Gospel of Christ with burning love, endured suffering for His holy name and entered into the Kingdom of Eternal Joy.
! THE HOLY MARTYRS IN AFRICA
They suffered for the truth of the Orthodox Faith at the hands of the Arian heretics during the reign of the Vandal King Gunerik or Genzerik (477-484). Two priests were burned and sixty more had their tongues cut out. In addition, three hundred laymen were beheaded. All of them suffered, but they defeated falsehood and confirmed Orthodoxy through their deaths, handing the Faith down to us pure and untarnished. The Lord crowned them with wreaths of glory in His Immortal Kingdom.
! HYMN OF PRAISE
! THE VENERABLE PAPAPIUS
Patapius, like a mariner,
Fixes his gaze into the tempest,
Where he will see the light of the harbor
Beyond this vain and glorious world,
Agitated by the winds of passions,
Darkened by the gloom of vanity.
He casts a glance to the heavens--
Patapius, like a mariner.
The spirit is the eye for seeing heaven
And the wondrous heavenly world--
A true spirit in a pure heart.
Patapius, his soul directed to God,
Bathed his heart in tender tears.
Concentrated, he awaits the light,
The light of heaven, the calm harbor--
Patapius, like a mariner.
Whosoever seeks shall find;
Whosoever knocks, to him it shall be opened.
The Merciful God loves the saints,
The thirsty seekers of the Kingdom of God.
He captured Patapius's glance,
And revealed the heavenly light to him.
Patapius saw and he wept--
God's light inflamed by tears--
Until he sailed to the calm harbor.
His life has remained a wondrous sign
To voyagers on the open seas of the world.
! REFLECTION
He who surrenders himself completely to God is guided by God to salvation, and is used by Him for the benefit of many others. St. Nicholas, devoted to the will of God, fled from the glory of men, from his city of Patara, and came to the city of Myra in Lycia, where he knew no one and was known by no one. Without any means--for, although he had been wealthy by virtue of his family, he had abandoned everything--without acquaintances and without plans, he walked as an unknown one throughout the city, waiting for God to direct his steps. At that time John the Archbishop of Myra died, and the Synod gathered for the election of a new archbishop, but could not agree on any person who had been nominated. Finally, the members of the Synod decided to fast and pray to God that He would designate the one who was most worthy of this calling. God heeded the prayers of His servants and revealed to them the one most worthy. When the presiding bishop stood for prayer, a man appeared to him in light and told him to go out early, stand in front of the church, and await the first one who would enter for morning prayer. "Appoint him as archbishop; his name is Nicholas," he said. Seeing and hearing this, the bishop informed all of his companions. Early the next day, he went in front of the church and waited. At that moment St. Nicholas, who had the habit of rising early for prayer, appeared. Seeing him, the bishop asked him: "What is your name, son?" Nicholas remained silent. The bishop again asked him, and he replied: "I am called Nicholas, O Bishop, the servant of your holiness." Then the bishop took him by the hand, brought him before the Synod, and said: "Receive, brethren, your shepherd, who was anointed by the Holy Spirit and was elected not by the Synod of men but rather by the providence of God."
! CONTEMPLATION
Contemplate the first brotherhood of men upon earth (Genesis 4):
# How Cain and Abel were the first brothers on earth;
# How Abel was virtuous and God-fearing, and Cain was envious and self-willed;
# How the envious Cain slew the virtuous Abel.
! HOMILY
! on the curse of sinful works
Cursed is the ground in thy works (Genesis 3:17).
After Adam and Eve's sin, God pronounced a punishment. He did not pronounce the punishment immediately but after waiting a period of time for their repentance. This is shown in the conversation into which God entered with Adam after his sin. //Where art thou?//(Genesis 3:9), God asked Adam. And when Adam said that he hid because of his nakedness, God asked him again: //Who told thee that thou wast naked?// (Genesis 3:11). Instead of repenting, Adam then began to accuse his wife. After that, God pronounced the punishment. Upon the serpent, which served as the weapon of the devil, fell the infinite curse. The woman was condemned to bear children in pain and to have her will subject to the authority of her husband. This is not a curse but rather a punishment with hope. Man was condemned to work the land. But what do the words, //Cursed is the ground in thy works//, mean? Did God curse the ground as He cursed the serpent with an infinite curse? By no means! The ground is cursed only in the sinful works of man. Because of man's sin, the earth produces thorns; because of sin, there is infertility; because of sin, there are droughts, floods, earthquakes, plagues, and destructive insects such as grasshoppers and caterpillars. That the ground is not cursed in its entirety is clear from this: that the earth also produces good fruits. God, through the prayers of the righteous, has always blessed the fruits of the earth necessary for human life, and even the angels of God, as the guests of Abraham, tasted the earth's harvest (Genesis 18:1-8). For in what way is the earth and all the rest of God's creation (except the serpent) culpable for Adam's sin? Nevertheless, //the whole creation groaneth and travaileth in pain together until now //(Romans 8:22). All creation does not groan or travail because of a curse upon itself but rather because of man's sinful works, which are cursed. O my brethren, let us be ashamed of our sin, for which even God's innocent creation suffers.
O Gracious God, forgive us our past sins and protect us from future sins. O Merciful God, have mercy on all Thine innocent creatures, who suffer because of us, and ease their suffering.
To Thee be glory and praise forever. Amen.
! THE CONCEPTION OF THE MOST-HOLY THEOTOKOS BY SAINT ANNA
The righteous Joachim and Anna were childless for fifty years of their married life. In their old age the Archangel Gabriel appeared to each one of them separately, telling them that God had heard their prayers and that they would give birth to a daughter, Mary. Then St. Anna conceived by her husband and after nine months bore a daughter blessed by God and by all generations of men: the Most-holy Virgin Mary, the Theotokos. (For more details, see September 9.)
! SAINT HANNAH, MOTHER OF THE PROPHET SAMUEL
Hannah was the wife of Elkanah from Ramathaim Zophim or Arimathea (1 Samuel 1:1-2). Hannah had not given birth to any children because she was barren, and this caused her to weep and grieve bitterly. But the Merciful God showed pity on her and removed her barrenness because of her ceaseless sighs and prayers. Hannah bore a son, Samuel, and dedicated him to God from his childhood. Samuel was a great leader of the nation of Israel and a prophet, who anointed two kings, Saul and David. St. Hannah sang a hymn of thanksgiving to God, a hymn wonderful both in its wisdom and its beauty, which is used even to this day in the services of the Church (1 Samuel 2:1).
! THE VENERABLE STEPHEN THE NEW LIGHT
This God-pleaser was born and brought up in Constantinople in the home of his parents, Zacharias and Theophano. His father was a priest of the Great Church at the time of Patriarch Methodius. While carrying him in her womb, his mother fed only on bread and water, and when the child was born a cross of light shone on his chest. Because of this and because of his pure and God-pleasing life, he is called the "New Light." At the age of eighteen Stephen enclosed himself in a cell near the Church of St. Peter the Apostle, and there he gave himself up to the ascetic labor of fasting and prayer. Once St. Peter appeared to him and said: "Peace be to you, my child. You have made a good beginning. May the Lord strengthen you." Following this, he lived for many years in a cell by the Church of the Holy Martyr Antipas. This saint also appeared to him and encouraged him with the words: "Know that I will not abandon you." Stephen imposed even greater and greater hardships upon himself. He ate only twice a week and then only unsalted vegetables. This holy man lived a life of asceticism for fifty-five years for the sake of Christ's Kingdom and entered into rest in the Lord in the year 829 A.D., at the age of seventy-three.
! SAINT SOPHRONIUS, ARCHBISHOP OF CYPRUS
Sophronius was born and brought up in Cyprus. Because of his great spiritual learning and his many virtues, especially compassion, he was appointed archbishop following St. Damian. Having faithfully served the Church and pleased God, Sophronius died peacefully in the sixth century.
! HYMN OF PRAISE
! THE CONCEPTION OF THE MOST-HOLY THEOTOKOS BY SAINT ANNA
O Most-glorious God, wonderful and marvelous,
Kind and merciful toward all creation,
The proud dost Thou overturn, the humble dost Thou raise;
Thou Who dost extinguish, Thou Who makest to live,
According to Thy plan, O Creator, Thou canst do all,
According to Thy plan, eternal and divine.
With Thy blessing, the fertile earth brings forth fruit;
By Thy holy word, Thou settest a seal upon the barren.
From one who gives birth, Thou canst take away,
And for the barren one, Thou canst bring forth good fruit.
Thou madest fertile the barren Anna;
Thou didst grant her a holy and noble daughter.
That which was the subject of mockery, Thou didst crown with glory;
The dream of a childless woman Thou didst openly surpass.
The aged woman prayed; her prayer Thou didst accept.
The seal of barrenness Thou didst remove from her body;
Her dead body Thou didst fill with life;
Thou gavest her a Virgin, wondrous in beauty,
And a daughter was born, the Most-holy Virgin,
A Daughter, a Mother, and the Mother of God!
According to Thy plan, O Creator, Thou canst do all,
According to Thy plan, eternal and divine.
! REFLECTION
Fear of God drives all fear from the hearts of men. In every great hierarch of the Orthodox Church, we see meekness and fearlessness wonderfully united. St. Nicholas grabbed the sword of the executioner and pulled it away so that innocent men would not be beheaded. St. Chrysostom reproached the Empress Eudoxia for her misdeeds without consideration for the unpleasantness and danger to his own life, to which he was exposed as a result. And there are many, many other examples similar to this: Emperor Valentinian the Elder, upon hearing of Ambrose's stern criticism of him, said: "I knew of your fearlessness; that is why I helped you to be chosen as bishop. Correct our faults as the Law of God teaches, and heal our unrighteousness." When Valentinian the Younger, at the instigation of his mother Justina, an Arian, ordered that the cathedral church in Milan be yielded to the heretics, Ambrose shut himself in the church with the faithful and would not come out for three days. He sent a message to the emperor and empress that, if they desired his death, he was prepared at any moment "here in the church to be run through either by the sword or spear." Hearing this, the emperor and empress withdrew their decree. When a riot occurred in Thessalonica, at which time about seven thousand people were beheaded by the decree of Emperor Theodosius the Great, Ambrose became so enraged at the emperor that, when the emperor visited Milan and wished to enter the church, the saint forbade him. The emperor said to Ambrose: "Even David sinned and was not deprived of God's mercy." To this the bishop replied: "As you have imitated David in sin, imitate him also in repentance." The emperor was ashamed, turned back and repented bitterly of the sin he had committed.
! CONTEMPLATION
Contemplate the righteousness of the righteous Noah (Genesis 6):
# How all men were corrupt and wicked;
# How, amidst universal corruption, Noah alone remained righteous and lived according to the will of God.
! HOMILY
! on Noah
Noah was a just man and perfect in his generations, and Noah walked with God (Genesis 6:9).
To be righteous among the righteous is a great and praiseworthy deed, but how far greater and more praiseworthy a deed it is to be righteous among the unrighteous. Noah lived among men who were filled with unrighteousness and evil; he lived among them for five hundred years and remained righteous before God: //Noah found grace in the eyes of the Lord//(Genesis 6:8). The Most-high Judge, who looks at all the works of mankind and evaluates them without prejudice and without error, valued the labors of Noah because, in the midst of a corrupt and perverse generation, he remained in the righteousness of God; and God rewarded him with His grace. Assuredly, Noah endured much misery and bitterness from his evil neighbors. Assuredly, he was unable to have a friend among them. The greatest satisfaction for a sinner is to drag a righteous man down into his own mire and to share his sin with him. But Noah did not allow himself to be dragged down or misled. Noah favored God's friendship over that of unrighteous men. It was dearer to him to walk with God without men, than to walk with men without God. Fear of God, the Creator and Judge, preserved him from the worldwide corruption; and he was not only righteous but also //perfect in his generations//. That is, he did not allow himself, even in the least, to be contaminated by the common evil, but rather he cleaved to God's righteousness. The allurement of sin and the ridicule of the sinners: everything merely served to separate him all the more from them. When the universal flood befell the human race, God did not abandon his faithful Noah to perish with the others. Instead, He saved him and glorified him, making him the progenitor of a new generation of men. Brethren, this shining example of Noah teaches that each one of us can please God even in the midst of sinners, if only we want to.
O Righteous and Long-suffering God, uphold us on the path of Thy righteousness.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR TRYPHON
Tryphon was born of poor parents in the village of Lampsacus in Phrygia. In his childhood he tended geese. From his childhood he also had great grace from God, such that he was able to cure illnesses that afflicted people and livestock and to expel evil spirits. The Roman Empire at that time was ruled by the Emperor Gordian. The emperor's daughter Gordiana went insane, and this caused the emperor great sorrow. All the physicians were unable to help Gordiana. An evil spirit spoke through Gordiana and said that no one except Tryphon could cast him out. After many who were named Tryphon in the empire were summoned, by divine providence young Tryphon was also summoned. He was brought to Rome, and he healed the emperor's daughter. The emperor lavished upon him many gifts, all of which Tryphon distributed to the poor upon his return. In his village this holy youth continued to tend geese and to pray to God. When Decius, the persecutor of Christians, was crowned Emperor, St. Tryphon was tortured and cruelly tormented for Christ. He endured all tortures with great joy, saying: "Oh, if only I could be made worthy to die by fire and torture for the name of the Lord and God, Jesus Christ!" The tortures did him no harm, and finally the tormentors sentenced him to be beheaded. Before his death Tryphon prayed to God, and he gave up his soul to his Creator, in the year 250 A.D.
! THE HOLY MARTYRS PERPETUA, FELICITAS AND SATYRUS, AND OTHERS WITH THEM
As Christians, they were all cast into prison during the reign of Emperor Septimus Severus. St. Perpetua, who was of noble birth, encouraged all the other prisoners not to be afraid to suffer for Christ. In a dream, Perpetua saw a ladder--imbedded with sharp knives, swords, spears, fishhooks, nails and other death-bearing instruments--extending from heaven to earth. At the bottom of the ladder there lay a loathsome serpent. She saw how Satyrus run up first to the top of the ladder without injury, and then cry out to her: "Perpetua, I am waiting for you. Come, but be careful of the serpent!" Encouraged by this, Perpetua stood on the head of the serpent as on the first rung of the ladder and, step by step, quickly raced to the top. When she reached the top, Perpetua entered heaven, saw the most beautiful mansions of heaven and rejoiced greatly. When she related her dream, all the prisoners interpreted it to mean that imminent death faced them, the first of them being Satyrus. This shortly came true. Satyrus was slain first, then Perpetua, and then all the others one by one. As lambs slain for Christ the Lamb of God, they received from Christ an eternal reward in the Kingdom of Light. They all suffered for Christ between the years 202 and 203 A.D.
! THE VENERABLE PETER OF GALATIA
At age seven Peter left the home of his parents for the sake of Christ and retreated into the wilderness. By fasting and prayer, Peter attained such a state of perfection that he worked many miracles by the Spirit of God. In his ninety-ninth year he took up his habitation in the Eternal Kingdom of Christ. This was in about the year 429 A.D.
//The prayer of Saint Tryphon before his death//: "O Lord, God of gods and King of kings, the Most-holy of all holies, I thank Thee that Thou hast made me worthy to complete my ascetic labors without faltering. And now I pray to Thee, that the hand of the invisible demon may not touch me; that the demon not drag me into the abyss of destruction. Rather, let Thy holy angels lead me into Thy beautiful dwelling place and make me an heir of Thy desired Kingdom. Receive my soul and hearken to the prayer of all those who will offer sacrifices to Thee in my remembrance. Gaze upon them from Thy holy dwelling place and grant them abundant and incorruptible gifts. For Thou art the only good and merciful Gift-giver unto the ages of ages. Amen."
Since Tryphon had suffered in Nicaea, and since many miracles had occurred over his lifeless body, the citizens of Nicaea wanted to bury Tryphon in their cemetery. But the saint appeared in a vision and expressed his desire to be translated to his village of Lampsacus--where he had once tended geese--and to be buried there.
Contemplate the Lord Jesus as the fresh and healthy air of the soul:
# As the fresh and healthy air by which the soul breathes and is saved from corruption;
# As the fresh and healthy air which the prophets, apostles and saints inhaled and were healthy in soul;
# As the fresh and healthy air of my soul which drives out the stench of sin in me and makes me fresh and healthy in soul.
! on the Word of God which purifies as a fire
"Now ye are clean through the word which I have spoken unto you" (John 15:3).
By His Word the Lord created the world; by His Word He renewed the world; by His Word He forgave sins; by His Word He healed diseases; by His Word He drove out evil spirits; by His Word He calmed the storms and the winds. By His holy Word He cleanses men even now, so that they, having been cleansed, may bring forth abundant fruit. Vines, when they are pruned and cleansed, are strong. The Word of the Lord is powerful, for it comes forth from the Almighty. //By the Word of the Lord were the heavens made// (Psalm 33:6). The Word of the Lord is as bright as the sun; but, when necessary, it is as fiery as the sun and burns up everything that goes against the Lord. The Word of the Lord is as sweet as honey; but, when necessary, it is as bitter as medicine. The Word of the Lord is as welcome as a friend who knocks at the door when he is most needed; but, when necessary, the Word of the Lord is as a judge who finds us in sin and who judges us without allowing any excuse. The Word of the Lord is true, just, wise and merciful, which is why it is so all-powerful. No one and nothing, either in heaven or on earth, is able to oppose it. The human word is also powerful when it is true, just, wise and merciful. But just as illness is able to exhaust and so weaken a giant that he becomes more powerless than a child, so also falsehoods, injustice, insanity and lack of mercy so weaken the word of a man that it becomes nothing: a fox chattering against the moon. He who spares words forges them of pure silver. But whoever relentlessly squanders them mixes earth with the silver.
Thy word, O Lord, is life and truth. Cleanse us by Thine almighty Word, as Thou didst cleanse Thine apostles, that we may bear much fruit and be made worthy of Thy Kingdom.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR [PRIESTLY-MARTYR] CHARALAMPUS
This great saint, Charalampus, was a bishop in Magnesia who suffered for Christ in his 113th year. When a terrible persecution began during the reign of Emperor Septimius Severus, the elderly Charalampus did not hide from the persecutors. Instead, he freely and openly preached the Christian Faith. He endured all tortures as though he were in someone else's body. When they skinned him alive, the forgiving elder said to the emperor's soldiers: "Thank you, my brethren, for in scraping my old body you renew my spirit for a new eternal life." He worked many miracles and converted many to the Faith. Even the emperor's daughter, Galina, abandoned the idolatry of her father and become a Christian. Condemned to death and brought to the place of execution, St. Charalampus raised his hands to heaven and prayed to God for all people, that God would grant them bodily health and spiritual salvation and that He would multiply their fruit of the earth: "O Lord, Thou knowest that men are flesh and blood; forgive them their sins and pour out Thy grace on all!" After prayer, this holy elder gave up his soul to God before the executioner lowered the sword on his neck. He suffered in the year 202 A.D. The emperor's daughter, Galina, removed his body and honorably buried it.
! THE VENERABLE PROCHORUS, THE ORACH-EATER//)
Prochorus was a miracle-worker of the Monastery of the Kiev Caves. He is called the orach-eater because, during the time that he lived in the Monastery of the Caves, he did not taste bread. Instead, he fed on orach, mixing it in his own way, and from it he prepared a type of bread. Whenever he would give someone his orach bread with a blessing, the bread tasted sweet, as though prepared from honey. If, however, someone stole the bread, it was as bitter as wormwood. One time, when there was a shortage of salt in Russia, Prochorus distributed ashes to the people in place of salt. The ashes that he distributed with his blessing were as salt; however, the ashes that people took on their own remained ordinary ashes. Prince Svyatopolk ordered that all the ashes from Prochorus's cell be taken to his palace with neither the permission nor the blessing of the monk. When the ashes were removed, those who tasted them were convinced that they were ashes and not salt. Then Prochorus told the people who came to him for salt to go to the emperor's palace and, when the prince threw the ashes out of his palace, to take them and carry them home for salt. The people did so, and again the ashes were salt. Having become convinced, the prince himself was filled with respect and love toward the holy man. When Prochorus died in the year 1107 A.D., the prince, with his own hands, placed him in the tomb alongside the great Russian saints, Anthony and Theodosius.
--------------------
//) //Orach://any plant of the genus Atriplex, cultivated for use like spinach. --//Trans.//
! HYMN OF PRAISE
! SAINT CHARALAMPUS
The inexperienced sword was brandished over Charalampus,
only to be lowered!
The saint knelt and, a petition to God, raised:
"O Lord, release them!
Of all sinful men, absolve the sins;
have mercy again.
Bless their labor and grant abundant
fruit to the fields.
Let them have everything; they are flesh and blood;
let them sing to Thee.
Oh, grant them health, health and joy;
let them remember Thee!
Drive away every evil, save them from misery,
have mercy on them all,
And after death, to Paradise take their souls.
Lord Have mercy!
Whoever prays to Thee
and mentions my name,
Because of my suffering, help him,
O God, help him for my sake!"
Then came a voice from heaven: "I accept your prayer;
now render Me your soul!"
The saint released his soul and flew to Paradise,
before the falling of the sword!
! REFLECTION
Many of the serious infirmities that befall a man have their cause, known or unknown, in his past. The causes of such serious infirmities as, let us say, mental disorder, are nothing other than the transgression of the moral law of God.
When St. Charalampus was being tortured, the persecuting emperor learned of his miracle-working power. The emperor ordered an insane man to be brought before Charalampus, to see if Charalampus could heal him. The devil had tormented this man for thirty-five years, driving him into the wilderness and hills and hurling him into bogs and chasms. When this deranged man approached Charalampus, the demon sensed a sweet-smelling fragrance emanating from the holy man and shouted: "I beg you, O servant of God, do not torment me before my time, but command me and I will depart. And, if you wish, I will tell you how it happened that I entered into this man." The saint commanded the demon to relate the story. The demon said: "This man wanted to steal from his neighbor and thought to himself: 'If I don't kill the man first, I will not be able to seize his goods.' So he went and killed his neighbor. Having caught him in the act, I entered him and, behold, I have dwelt in him for thirty-five years." Upon hearing this, the saint of God commanded the demon to depart from the man immediately and to leave him in peace. The demon departed, and the demented man was restored to health and became tranquil.
! CONTEMPLATION
Contemplate the Lord Jesus as the Beauty of the entire created world:
# As the Beauty of all created things, a Beauty dulled from fear and the melancholy of sin;
# As the Beauty of man, the most rational being in the material world, a Beauty dulled by fear and the melancholy of sin;
# As the Beauty of a pure, mental, bodiless world of the angels;
# As the Beauty of the Holy Trinity, revealed by Him and through Him.
! HOMILY
! on the sin of those who assert that they can see
"If ye were blind, ye should have no sin" (John 9:41).
These words were spoken to the Jews by Him Who gave them the Law through the prophets, that the Law might serve them as the sight of the soul. The Jews received that sight, but they intentionally and evilly shut their eyes. That is why the righteous Lord spoke these righteous words to them.
These are words of true justice, yesterday and today and forever, for a blind man has no sin if he tramples upon someone else's crop or if he takes someone else's garment instead of his own. If he who has sight commits this, he will be committing a sin and will incur punishment. If he who has eyes intentionally closes his eyes and does this, he also will be committing a sin and will incur punishment.
Nevertheless, what can be said about those who have received baptism and chrismation, the two eyes of the soul, and still sin as those who are unbaptized? At the Last Judgment, they will not be treated as those who are born blind, rather they will be judged as transgressors who have willfully disfigured and blinded themselves.
And what can be said about those who receive the other Mysteries of grace in the fullness of Orthodoxy, having before them the examples of the saints, and constantly listening to the warnings and admonitions of God's Church, but who nevertheless depart and go astray? At the Last Judgment such people will not be able to justify themselves by any type of blindness; rather they will be judged as transgressors who have disfigured themselves and others around them with blindness.
O Awesome Lord, save us from sin. O Merciful Lord, open our eyes to the path of salvation.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR [PRIESTLY-MARTYR] BLAISE
Blaise was born in the province of Cappadocia. From his early childhood he was God-fearing and meek. Because of his great virtues, he was chosen as bishop of the city of Sebaste [in Armenia]. Blaise was a great spiritual and moral beacon in this pagan city. During a grave persecution of Christians, St. Blaise encouraged his flock and visited the martyrs of Christ in prison. Foremost among them was the eminent and glorious Eustratius. When the city of Sebaste was completely emptied of Christians--some were slain and others fled--the elderly Blaise withdrew to Mount Argeos and settled there in a cave. Wild beasts recognized the holy man and gathered around him, and he tenderly caressed them. But the persecutors found the saint in this remote place and brought him to trial. Along the way, Blaise cured a young boy who had a bone caught in his throat. At the plea of a poor widow whose pig had been snatched by a wolf, the saint, by the power of his prayer, made the wolf return it. The sinister judges tortured Blaise severely, flogging him and scrapping him with an iron comb. By his steadfastness in the Christian Faith, Blaise converted many pagans to the Faith. Seven women and two children languished in prison with him. The women were beheaded first, and afterward the wonderful Blaise was beheaded with the two children. He suffered and was glorified in the year 316 A.D. People pray to St. Blaise for the well-being of their domestic livestock and for protection against wild beasts. In the west, he is also invoked against diseases of the throat.
! THE HOLY MARTYR GEORGE OF KRATOVO
By origin, George was a Serb from the town of Kratovo. He was a silversmith by trade, and in his heart and soul he was a convinced and devout Christian. George was eighteen years old when the Turks tried to convert him to Islam, but George remained as firm as a diamond in his faith. The Turks tortured him with many cruel tortures and finally burned him at the stake. He suffered for the beautiful Faith of Christ on February 11, 1515 A.D., in Sofia, Bulgaria, during the reign of Sultan Selim, and was glorified with unfading glory in the heavens.
! SAINT THEODORA
Theodora, a Greek empress, was the wife of the nefarious Emperor Theophilus the Iconoclast. After the death of Theophilus, Theodora became the ruling empress and reigned together with her son Michael III. At the Council in Constantinople in 842 A.D., she immediately restored the veneration of icons. On this occasion the Feast of the Triumph of Orthodoxy was instituted, which is still celebrated today on the First Sunday of Great Lent. This holy and praiseworthy woman of the Church gave up her soul to God on February 11, 867 A.D. By the divine and wonderful providence of God, it was at the time of the solemn triumph of Orthodoxy over all heresies that Saints Cyril and Methodius were sent as Christian missionaries to the Slavs.
! HYMN OF PRAISE
! THE VENERATION OF ICONS
To what do you, my Christian, bow,
When you, O my Christian, venerate the icons?
"Before the Living God, the Creator, I am bowing down,
With all my soul, heart and mind, I bow down to Him.
Mortal am I, and I am unable upon Him to gaze;
Therefore, before His image I bow."
What do you, my Christian, so fervently reverence,
When you kiss the icon, O my Christian?
"I am kissing Christ, God and Savior,
The choirs of angels, the saints and the Mother of God.
Mortal am I, and therefore I am unable to touch them,
But when I kiss their images my heart is at peace."
! REFLECTION
Matter is not evil of itself, as certain Christian heretics (i.e., the Manicheans) and other philosophers have taught. Not only is matter not evil, but matter is not the sole conduit of evil. In the same way that matter is a conduit of evil, so also is the spirit. Every material thing is miserable and even fearful because of man's sins, but matter is not evil. Matter is corruptible, weak and insignificant in comparison with the immortal spirit, but it is not evil of itself. If it were evil, would our Lord Christ have instituted Holy Communion of bread and wine and would He call the bread and the wine His Body and His Blood? If matter of itself were evil, how then could men be baptized with water? How could the Apostle James have commanded that the sick be anointed with oil? How could holy water remain fresh and have miracle-working properties? How could the Cross of Christ have power? How could the garment of Christ transmit the Savior's healing power, by which the woman with the issue of blood was healed? How could icons and the relics of the saints have performed so many miracles and conveyed to people so much good from the Kingdom of grace? How then could good come to man through evil? No, no: matter is never evil of itself alone.
! CONTEMPLATION
Contemplate the Lord Jesus as a Good Merchant, Who came into this world as to a market to give and to take:
# To give His labor and to receive the numerous fruits of joy from that labor;
# To give Himself to be humiliated, spat upon, smitten, bruised, pierced and crucified, in order to usher the army of His faithful into His eternal glory;
# To give His Body, in order to redeem numerous souls from among the multitudes.
! HOMILY
! on judging according to the flesh and according to the spirit
"Ye judge after the flesh" (John 8:15).
Thus spoke the Omniscient Lord to the wicked Jews: //Ye judge after the flesh//. They had caught a woman in adultery and wanted to stone her because of her fleshly sin. But the Lord, perceiving the soul of the woman and seeing that she could still be saved and changed, brought her to repentance and released her. For even though she committed the act of adultery, her soul was not totally adulterous. The Pharisees, on the other hand, constantly bore the sin of adultery in their hearts, but they skillfully concealed that sin. They did not condemn adultery in the heart, but only the act of fleshly adultery of those whom they caught doing this.
Spiritual men judge by the spirit and physical men judge by the flesh. Even today, the Jews, punished and dispersed throughout the whole world, are unable to think spiritually and judge spiritually. They still think and judge only by the flesh and only externally, according to the ordinances of the law written on paper or in nature, but still never according to the spirit. For if they had learned to judge men and deeds according to the spirit, they would have immediately recognized the Lord Jesus as the Messiah and Savior.
Let us be on guard, O Christians, that we judge not only according to the flesh. Let us be on guard that we be not too quick to judge him who, because of his ineptness, slips into misdeeds; nor to praise him who behaves skillfully and does not slip before men, but who with his heart is already completely in the abyss of sin. Let us be on guard from error, that we not judge men and nature according to sensual impressions but strive to judge everything spiritually, that is, by the spirit. Behold, we are the children of the spirit and light, for we are baptized.
O Lord Jesus, teach us and guide us, that we neither think nor judge according to the flesh, but rather by the spirit.
To Thee be glory and praise forever. Amen.
! SAINT MELETIUS, ARCHBISHOP OF ANTIOCH
Meletius, this great and holy man, was an exceptional interpreter and defender of Orthodoxy. His entire life was dedicated to a struggle against the Arian heresy, which did not recognize the Son of God as God and blasphemed the Holy Trinity. On three occasions, Meletius was banished and exiled from his archiepiscopal throne to Armenia. The struggle between the Orthodox and the heretics was waged so bitterly that, on one occasion, when St. Meletius was preaching to the people in church concerning the Holy Trinity in unity, his own deacon, a heretic, ran over to him and covered his mouth with his hand. Not being able to speak with his mouth covered, Meletius spoke in signs. He raised his clenched hand in the air, opening at first his three fingers and showing them to the people. After that, he closed his hand and raised up one finger. He participated in the Second Ecumenical Council [Constantinople, 381 A.D.], where Emperor Theodosius showed him special honor. At this Council, God revealed a miracle through His hierarch. When Meletius was propounding the dogma of the Holy Trinity to Arius, at first he only raised three fingers, separately one by one, and after that folded them into one. At that moment, before all those present, a light shone like lightning from his hand. At this Council, Meletius confirmed Gregory the Theologian on the patriarchal throne in Constantinople. Earlier Meletius had ordained Basil the Great to the diaconate and baptized John Chrysostom. After the close of the Council, St. Meletius completed his earthly life in Constantinople. His relics were translated to Antioch.
! SAINT ALEXIS, METROPOLITAN OF MOSCOW
Alexis was a great hierarch of the Russian Church during the burdensome bondage of the Russian people under the Tartars. Once, as a child, while he was hunting birds, he fell asleep. In a dream he heard a voice: "Alexis, why do you labor in vain? I will make you a fisher of men." At age twenty he was tonsured a monk and in time became Metropolitan of Moscow. Twice he went among the "Golden Horde" of the Tartars: the first time to mitigate the wrath of Khan Verdevir against the Russian people, and the second time, at the invitation of Khan Amurat, to heal the khan's wife of blindness. She had been blind for three years, but her sight was restored when Alexis prayed over her and anointed her with holy water. Following great labors and a fruitful life, Alexis died in the year 1378 A.D., at the age of eighty-five, and took up his habitation in the courts of the Lord.
! THE VENERABLE MARIA
Maria was a young woman with indomitable courage. After the death of her mother, her father desired the monastic tonsure. Maria did not wish to be separated from her father, and they both agreed to journey to a men's monastery. Maria, with cropped hair and in masculine attire, looked like a young man. Her father died, and Maria was tonsured a monk, receiving the name Marius. In the proximity of the monastery there was an inn. The daughter of the innkeeper was attracted to Marius, the supposed monk. After unsuccessfully pursuing Marius, the innkeeper's daughter accused Marius of illicit carnal relations with her, for she had become pregnant by someone else and had give birth to a son. Maria did not defend herself and was banished from the monastery with ridicule. With someone else's child in her arms, Maria lived for three years in a grove belonging to the monastery, enduring hunger, frost and every difficulty and deprivation. Meanwhile, the innkeeper's daughter went insane. Soon after, Maria died. Only after her death was it discovered that the "monk Marius" was a woman. The deranged daughter of the innkeeper was healed as soon as she touched the body of St. Maria, and after that she acknowledged her terrible sin. St. Maria took up her habitation in eternal joy in the year 508 A.D.
! SAINT ANTHONY, PATRIARCH OF CONSTANTINOPLE
Anthony was at first a great ascetic of exceptional charity, and later he became Patriarch during the reign of Emperor Leo the Wise (889-912 A.D.). He tonsured his father a monk and founded a monastery over the relics of St. Callia.
! SAINT CALLIA
Callia was generous toward the poor out of pure Christian charity, both as a maiden and later as a married woman. Callia's husband was a wealthy but miserly man. Once, when he returned from a business trip, he saw that his wife had distributed his wealth to the poor, so he killed her. But God glorified this charitable soul in this manner: many who were ill were healed by her relics. Convinced by this, the holy Patriarch Anthony built a monastery over her relics.
! HYMN OF PRAISE
! THE HOLY TRINITY
THE DIVINE AND HUMAN NATURES OF CHRIST
Oneness and Threeness, One and Three.
Christ: He is God and He is Man, One and Two.
Great and most wonderful are these two mysteries--
The key of life and being is concealed in them.
Holy Threeness and Oneness, the eternal flame.
Flame eternal: Three torches but One flame.
Oneness and Threeness, One and Three.
Christ: He is God and He is Man, One and Two.
! REFLECTION
St. John Chrysostom cites the following example from the life of St. Meletius, which demonstrates the immense nobility of this great hierarch: "It would be unjust to omit that which occurred during the banishment of Meletius from Antioch. When the governor sat down in the coach and seated the saint beside him, he began to drive with great speed through the square. From all sides, the citizens hurled stones that fell like hail on the head of the governor, for they could not be parted from their hierarch easily and were prepared to part with life rather than part with this saint. But what did this blessed man do? Seeing the stones flying, he covered the head of the governor with his cloak. Thus, he shamed his adversaries by his tremendous meekness, and he taught a lesson to his followers as to what kind of forgiveness we ought to show toward those who offend us. He showed them that it is not enough to refrain from doing them evil, but that rather, with all our power, we must remove any danger that threatens them." Concerning the external appearance of Meletius, Chrysostom further says: "In truth, it was the greatest delight to see his holy face. Not only when he taught or preached, but when men simply looked at him, he instilled every virtue into the souls of those who beheld him."
! CONTEMPLATION
Contemplate the Lord Jesus as an ascetic:
# How He fasted, not to subdue His All-pure Body, but in order to give us an example;
# How He fasted for my sake;
# How I need to fast for the sake of my salvation and for the sake of His love.
! HOMILY
! on the wondrous visit of the Son of God
"I came forth from the Father, and am come into the world: again, I leave the world, and go to the Father" (John 16:28).
Brethren, these words are of crucial importance for us. For of all things in this world, this is the most important to know: Is there a God and is there life after death? These words are more precious than all the pearls in the world, more precious than the sun and more precious than the stars, for these words were spoken by Him Who is the most reliable and the most truthful Witness. In truth, these words are the source of the greatest joy for us who are plunged into despair and, after despair, face death. These words witness that there is a God and that there is life after death. //I came forth from the Father//--before all else, this means that there is a God, from Whom the Lord Jesus came. //Again, I leave the world, and go to the Father//--this means that God is the Father to Whom the Son of God returns. At the same time, both of these quotations mean that eternal life exists and that death does not mean our annihilation. The Lord spoke these words just before His death.
O sweet and wonderful tidings! That which the hearts of all men and nations throughout all ages dimly envisioned, the Lord witnessed as fact, as truth.
And further, these words confirm the unity of the Father and the Son, as well as the divinity of our Lord and Savior. My brethren, God visited us, the Most-high God Himself: the Holy, Mighty and Immortal God. This is the culmination of our comfort and our joy.
O Lord Jesus, Son of God, the True Witness of all that is good and for which our hearts yearn day and night, sanctify us, strengthen us and make us immortal.
To Thee be glory and praise forever. Amen.
! THE VENERABLE SIMEON [MIROTOCIVI] THE MYRRH-GUSHER
Stefan Nemanja [Nehemiah], the great ruler [Great Zupan] of the Serbian people, the consolidator of the Serbian lands, creator of the independent Serbian state, defender of Orthodoxy and eradicator of heresy, was first baptized in the Latin Church, but later he left it and entered the Orthodox Church. In the beginning he was dependent on the Greeks with regard to the state, but later he freed himself from this dependence and became completely autonomous. After Stefan had strengthened the state and the Orthodox Faith in the state, he followed the example of his son Sava. He received the monastic tonsure in Studenica Monastery in the year 1195 A.D., receiving the name Simeon. His wife Anna withdrew to a women's monastery, embraced the monastic tonsure and received the name Anastasija. After two years as a monk in Studenica, Simeon traveled to Athos, the Holy Mountain. There he took up residence in the Monastery of Vatopedi together with his son Sava. Father and son spend their days and nights in prayer. There they built six chapels: to the Savior, the Unmercenary Saints, St. George, St. Theodore, St. John the Forerunner and St. Nicholas. They purchased the ruins of Hilandar and erected a glorious monastery, in which Simeon lived only eight months and then died. When Simeon was on his deathbed, Sava, according to his father's wishes, placed him on a simple mat. With eyes directed toward the icon of the Mother of God with the Savior, the blessed elder spoke these last words, //Let everything that has breath praise the Lord// (Psalm 150:6), and took up his habitation with the Lord, on February 13, 1200 A.D.
! THE VENERABLE MARTINIAN
The glorious and most wonderful life of Martinian is worthwhile to read in its entirety. What did he not endure just to fulfill the commandments of the Lord? At age eighteen, Martinian retreated to a mountain in Cappadocia called the Place of the Ark, where he lived for twenty-five years in fasting, vigils and prayer, struggling with many temptations. When a woman came to tempt him, Martinian, perceiving that he would succumb to sin with her, leapt into the fire barefooted and remained in the fire until the pain brought tears to his eyes and subdued all lust within himself. When another temptation erupted, Martinian fled to an isolated rock in the sea and lived there. Following a shipwreck, a young woman swam to this rock. Martinian jumped into the sea to avoid any further temptation, but a dolphin rescued him on its back and by God's providence brought him to shore. Martinian then decided never to make any place his permanent home but to continually travel. In two years, Martinian passed through 164 towns, correcting and counseling the people. He finally reached Athens, where he reposed in the year 422 A.D.
! THE FEMALE SAINTS ZOE AND PHOTINA
At first Zoe was a prostitute and a temptress of St. Martinian. When she saw this ascetic leap into the fire to subdue all lust in himself, she bitterly repented. Zoe retreated to a convent in Bethlehem, where, as a faster and recluse, she heroically lived a life of asceticism. Repenting of all her sins, she received from God the gift of working miracles. St. Photina was cast by the winds of the sea onto the island where St. Martinian had isolated himself. Martinian immediately fled the island, and Photina remained there in fasting and prayer until her death.
! HYMN OF PRAISE
! SAINT ZOE
Zoe looked at the monk in the fire with horror,
How he burned with neither complaint, nor fear, nor sighing!
With horror and with shame, Zoe repented:
"Oh, what this man does, just to save his soul!"
Bowing and begging forgiveness, she began to weep,
Asking how to resist evil,
To save the soul, and resist evil in the flesh.
The man of God, he too began to weep for joy.
To Bethlehem, to the blessed Paula he sent her:
"Depart woman, save yourself. Go and do not perish,
Blessed Paulan will tell you everything else."
Completely humbled, Zoe departed over the turquoise sea;
Paula received her like a little sister, and instructed her.
Zoe cried, Zoe listened, endured and remained silent.
So twelve summers passed, twelve years.
Sister Zoe became known as an ascetic.
She washed her face with tears, and before her death she asked God--
Has God forgiven her? Has He or has He not?
At that moment a blind woman was led before Zoe's door:
"Pray that I might see--pray, pray!"
In tears Zoe prayed, and the woman received her sight.
Thus did Zoe know that she was forgiven.
God is glorified through sinners when they repent;
Then, through their miracles on earth, they shine like the stars.
! REFLECTION
The great Stefan Nemanja--whose authorative words were unconditionally heeded by everyone, and who caused people and emperors to tremble--became a monk and served the monks of the Holy Mountain as an ideal example of meekness, humility, goodness and piety. Even his death was the death of a truly godly man and spiritual director. He became bedridden on February 7. He summoned St. Sava, placed his hands on him, and blessed him, saying: "My beloved child, the light of my eyes, comfort and protector in my old age! Behold, the time of our separation has arrived. Behold, the Lord is releasing me in peace. But you, my child, do not mourn because of our separation. For parting is the common cup of each and all; here we part from one another, but we will meet there, where there is no separation." On February 12, St. Simeon asked Sava to clothe him in a burial cassock, to spread a mat on the ground, lay him there and place a stone under his head. He then summoned all the monks and asked their forgiveness. At dawn on February 13, the voices of the monks chanting Matins reached the cell of the dying one. Once more St. Simeon's face beamed, and he gave up his soul to his God.
! CONTEMPLATION
Contemplate the Lord Jesus as the Lamb of God:
# As a Lamb born in the dwelling place of lambs;
# As a Lamb persecuted by men of wolflike temper, such as Herod and others;
# As the Sacrificial Lamb, Who patiently endured pain and death;
# As the Victorious Lamb of God on the heavenly throne.
! HOMILY
! on love above every other love
"He that loveth father or mother more than Me is not worthy of Me" (Matthew 10:37).
The entire Gospel teaches that we should leave the lesser for the sake of the greater, the transient for the enduring, the worst for the best, the less valuable for the more valuable. If the Good News did not promise greater worth, who would leave the lesser? If the Gospel did not reveal the splendor of the precious goods, who would leave the cheaper goods? Who would leave milk and honey if he did not find something sweeter? Who would leave father and mother if he did not find someone closer in kinship? Who would leave children and friends if he did not recognize someone more dear? Who would willingly give his life over to suffering and death if he did not perceive immortal life? The Lord Christ is sweeter than milke and honey; He is a closer kinsman to us than our father and mother; more dear to us than our own children and friends; more precious than all visible treasures; more costly than this life, for He gives life eternal. Compared to Him, everything in the world is inferior, trivial, bitter, weak, cheap and transitory. To whoever receives Him, it is easier to leave everything, because he has received the best and Him Who is the very best.
O Lord Jesus, Treasury of all eternal riches, help us to unbind ourselves from everything and to cling to Thee, our Good and our Life.
To Thee be glory and praise forever. Amen.
! THE VENERABLE AUXENTIUS
Auxentius was a very prominent aristocrat among the noblemen and courtiers at the court of Emperor Theodosius the Younger in Constantinople. Inflamed with love for Christ, Auxentius was tonsured a monk and remained for a short time in Constantinople. When men began to praise him, he fled from their praise and settled on a mountain near Chalcedon called Skopa, which later was referred to as Auxentius's Mountain. His desire to remain there permanently, hidden from men, was not realized. Some shepherds discovered him and made his whereabouts known. They began to bring the sick to him for healing, and he healed many, restoring sight to the blind and cleansing lepers by anointing them with oil. He also raised the palsied and freed many who were demon possessed. All of this was cause for amazement, but his humility was cause for even greater amazement. Whenever he was implored to heal someone, he would excuse himself with the words: "I also am a sinful man!" Compelled by many requests, he approached healing in the following manner: He either invited all present to pray to God with him for the sick person, or else he first strengthened their faith and then told them that God would give to them according to their faith, or else he prayed over the head of the sick person: "The Lord Jesus Christ heals you!" He did this so that the act of working miracles would not be attributed to him but rather to God Almighty. He participated at the Fourth Ecumenical Council [Chalcedon, 451 A.D.] and strongly defended Orthodoxy against the Eutychian and Nestorian heresies. In the year 470 A.D., the Lord took his youthful soul in his old age, and his aged body remained in the earth from which it was created.
! THE VENERABLE ISAAC, RECLUSE OF THE MONASTERY OF THE KIEV CAVES
Isaac lived during the time of Saints Anthony and Theodosius. He came to the monastery as a wealthy merchant. He left all and distributed everything to the poor, dedicating himself to the most strict form of asceticism in an enclosed cell. St. Anthony himself passed one prosphoron//) through an opening in Isaac's cell every other day. Deluded by demons, who appeared to him in angelic light, Isaac bowed down to them. After that he bowed down before Satan himself, believing him to be Christ. Because of this he became ill and remained ill for two years, after which he regained his health and became a more cautious and experienced ascetic. God bestowed upon him abundant grace before his death. He reposed in the year 1090 A.D.
--------------------
//) The prosphoron is the bread offered for the celebration of the Divine Liturgy; from it the Lamb is removed and later consecrated, becoming the Body of Christ in Holy Communion. --//Trans.//
! HYMN OF PRAISE
! SAINT AUXENTIUS'S VISION OF SAINT SIMEON THE STYLITE
Auxentius, the adornment of Orthodoxy,
One night in mute silence
With tears prayed to God.
He lifted himself up in spirit to heaven,
With flaming wings like those of a Cherubim.
The saint turned his gaze
To the swarm of stars in the heavenly firmament;
The elder looked and began to weep.
The hieromonks asked him
To tell them what he saw
And why he had begun to weep.
"My children, hieromonks,
I saw the soul of Saint Simeon,
The great Stylite, Simeon,
A pillar of Orthodoxy, a pillar of faith.
This night, the Stylite died;
His soul is ascending to heaven,
Brighter than the stars, a glowing flame.
His soul visited us;
He graciously greeted me, a sinner."
! //
Many nights passed after that night,
Until the news about the Stylite's death arrived.
All recognized the truth of the vision
That St. Auxentius had beheld.
REFLECTION!
Why do men leave one place and settle in another place? Primarily because they hope that they will be more fortunate in the other place. And in truth, from the worldly view of life and contentment, places can be different--better or worse. He who does not hope in a better life after death seeks a better sensual pasture in this life. But if we listen to the hearts of those men who were able to live in the so-called best places on earth, we will detect dissatisfaction, sorrow and despair. They did not find that which they were seeking. They ate to excess in every place, and finally, still hungry, they looked death in the eye.
But look at the Christian saints! They sought places with the least pastures: places that were "arid, impassible and devoid of water," isolated and terrible places which attracted the least attention and for which no one competed. They considered every place on earth equally worthless, but they chose those places solely because they wanted to draw nearer in spirit and mind to their eternal homeland. And if one were to listen to their hearts, one would perceive joy and contentment.
CONTEMPLATION!
Contemplate the Lord Jesus as a Father who weeps for His children in the wilderness, calling to them and gathering them together:
# The children of the nation of Israel (at one time);
# The children of all peoples on earth;
# The children of all times, from the creation to the end of the world.
HOMILY!
on the reversed values in the Kingdom of God!
"But many that are first shall be last; and the last shall be first" (Matthew 19:30; Luke 13:30).
How all-wise is He Who spoke these words! He did not say that all the first will be last and all the last will be first, but //many//. There is not one error in the Gospel, and nowhere in the Gospel is there any exaggeration.
Why did the Lord put a limit and not say "all" but rather "many?" Experience teaches us that some of those who were first in honor on earth remained first in honor with God. There have been emperors who pleased God on their thrones, and there have been men without authority who angered God throughout their life. There have been wealthy men who were saved by their charity and faith, and there have been indigent ones who received condemnation because of their evil and unbelief. There have been learned men who kept the faith and did good deeds, and there have been unlearned men who rejected both faith and good deeds. So there were some who were first here on earth and remained first in heaven, and also there were some who were last here and remained last after death also.
But alas, many who were first here became last there. And oh, the joy, oh, the justice of God--how many who were last here have become first there!
The Lord neither emphasized nor praised one class or one occupation over all others, but He recruited and even today He recruits an army of light from all classes, occupations and professions. For Him the criteria for man is neither a crown nor a beggar's pouch, but rather faith--faith and good deeds.
O All-wise Lord, remember us also in Thy Kingdom.
To Thee be glory and praise forever. Amen.////
! THE HOLY APOSTLE ONESIMUS
Onesimus was one of the Seventy [Lesser Apostles]. He was a slave of Philemon but transgressed against his master and fled to Rome. There he heard the Gospel from the Apostle Paul and was baptized. Since the Apostle Paul had earlier converted Philemon to the true Faith, he reconciled the two of them--Philemon and Onesimus, master and slave--writing a special epistle to Philemon. It is one of the most touching compositions in Holy Scripture. //I beseech thee for my son Onesimus, whom I have begotten in my bonds... For perhaps he therefore departed for a season, that thou shouldest receive him for ever. Not now as a servant, but above a servant, a brother beloved, specially to me //(Philemon 1:10,15,16). Indeed, moved by this letter, Philemon received Onesimus as a brother, freeing him from slavery. Later Onesimus was consecrated a bishop by the apostles themselves, and he accepted the episcopal throne at Ephesus at the death of the Apostle Timothy. This is evident from the Epistle of Ignatius the God-bearer. At the time of Trajan's persecution, Onesimus, already an old man, was arrested and brought to Rome. In Rome Onesimus gave an account of himself before the judge Tertulus, and he was imprisoned and finally beheaded. A wealthy woman removed his body, placed it in a silver coffin and buried it honorably, in the year 109 A.D.
! THE VENERABLE EUSEBIUS
A Syrian hermit, Eusebius first lived an asectic life under the direction of holy men, and later he withdrew and became a recluse. He fed entirely on vegetables; he did not even taste fruit. He spent all of his time in prayer in the open spaces, enduring all conditions of weather. He lived to be ninety-five years of age and died peacefully in the year 440 A.D.
! HYMN OF PRAISE
! SAINT ONESIMUS, THE APOSTLE
The all-glorious Onesimus, as a slave, his life began
And ended it as Christ's apostle and martyr.
The lawless Tertulus asked him for his name.
"My name is Christian, my surname Onesimus."
"A freeman or someone's slave, are you?"
"A slave of Philemon I was, and a slave of Christ God I am."
"For what price did Philemon sell you to Christ?"
"His blood for me, the Lord Christ gave."
"Tell me: the idols of the state, do you honor?"
"I do not see gods but only statues--
Various animals, all dead statues;
I see an ox being offered as a sacrifice to an ox.
Thus, a ram to rams, birds to owls,
Living animals to dead beasts,
The living to the dead, the stronger to the weaker.
No, to such gods I do not bow down!
Only to the Living Lord, my Master
And Creator--mine and yours, O Tertulus."
The man of God, Tertulus mocked,
And he ordered that by the sword he be beheaded!
He who had power over the body severed his head,
But neither his soul nor his glory did he cut off.
The glorious name of Onesimus remained,
So that heaven and earth would praise it.
! REFLECTION
Peace of soul is precious for every man. For those who have attained peace of soul, the body can be in constant motion--in work or in pain--but their souls, affixed to God, always remain in unwavering peace. St. Seraphim of Sarov teaches: "It is necessary by all means to preserve peace of soul and not be disturbed by the insults of others. That is why it is necessary, at all costs, to restrain oneself from anger, and through vigilance over oneself to preserve the mind and heart from indecent movements. To preserve peace of soul, it is also necessary to avoid judging others. By not judging and by silence, peace of soul is preserved. When a man is in such a state of mind, he receives divine revelations. In order for a man to be preserved from judging others, he must be vigilant over himself, he must not receive ungodly thoughts from anyone, and he should be dead toward everything worldly. We must tirelessly guard the heart from indecent thoughts and influences. //With closest custody, guard your heart, for in it are the sources of life//(Proverbs 4:23). From constant vigilance over the heart, purity is born, in which the Lord is seen, in accordance with the words of eternal truth: //Blessed are the pure in heart: for they shall see God //(Matthew 5:8).! "
! CONTEMPLATION
Contemplate the Lord Jesus as a Traveler:
# How, in traveling he grew weary, perspired, hungered and thirsted--for my salvation, for your salvation, and for the salvation of all men;
# How even at night He labored for my salvation, for your salvation, and for the salvation of all men;
# How, on every journey, He contemplated, desired and cared about my salvation, your salvation, and the salvation of all men.
! HOMILY
! on the believing people and the unbelieving elders
"When Christ cometh, will he do more miracles than these which this man hath done?" (John 7:31).
The Lord Jesus performed miraculous works before all, and all saw but not all believed. The people witnessed His miracles and believed in Him. Servants heard His words and believed in Him. However, the leaders of the people and the masters of the servants also witnessed His miracles and did not believe in Him. And so in those days the words of the Savior came true: //But many that are first shall be last; and the last shall be first// (Matthew 19:30). Those who were first in honor and authority were last in having faith in Him, and those who were last in honor and authority were the first in having faith in Him.
Why did the people and servants believe, and the princes and scribes not believe? Because the people and servants considered themselves insignificant and unimportant and had neither personal pride nor envy toward Christ. The people and servants, without malice and prejudice, looked upon the divine miracles, listened to the divine words, and were amazed and rejoiced. The princes and the scribes considered themselves first among the people and in the world, and so they were filled with pride and envy. They were unable, even for a moment, to look upon the miraculous works or to listen to the divine words without malice and envy.
Brethren, do you see how a man, without humility and meekness, is unable to recognize truth or to rejoice in the truth? Do you see how the proud and the envious do not allow God to have precedence over them? This is just what Satan once did!
Lord Jesus, Eternal Truth, cleanse our hearts of pride and envy, that we may be able to see Thee and rejoice in Thee.
To Thee be glory and praise forever. Amen.
! THE TWELVE HOLY MARTYRS WHO SUFFERED DURING THE REIGN OF EMPEROR DIOCLETIAN
Pamphilus, the first of these martyrs, was a presbyter of the church at Caesarea in Palestine. He was a learned and devout man, who corrected the text of the New Testament from the errors of the various copiers. He himself recopied this salvific book and gave it to those who desired it. The second was the deacon Valentine--old in years and grey in wisdom. He was an outstanding authority on the Holy Scriptures and knew them completely by heart. The third was Paul, an honorable and distinguished man, who during a previous persecution had been cast into the fire for Christ. Besides these, there were five brothers, according to the flesh and spirit, who had been born in Egypt and were returning to their homeland after being forced to work in the mines of Cilicia. At the gates of Caesarea they declared that they were Christians, for which they were brought to court. When asked what their names were, they responded: "The pagan names which our mother gave to us we discarded, and we call ourselves: Elias, Isaiah, Jeremiah, Samuel and Daniel." When asked where they were from, they responded: "From the Jerusalem on high." All of them were beheaded. There also suffered a young man, Porphyrius, who sought the bodies of the martyrs in order to bury them. They burned him in the fire, as well as Seleucus, formerly an officer who had approached and kissed the martyrs before the sword fell on their heads. Also put to death was the aged Theodulus, a servant of a Roman judge, who had embraced one of the martyrs as they were being escorted. Finally Julian, who had kissed and honored the lifeless bodies of the martyrs, was himself martyred. And so they gave little for much, the paltry for the precious, and mortality for immortality. They took up their habitation with the Lord in the year 308 A.D.
! SAINT MARUTHAS
Maruthas was Bishop of Tagrith in Mesopotamia and was known for his faith and goodness. Maruthas mitigated the anger of the Persian King Yezdegeherd toward the Christians, and begged from him the relics of the four hundred martyrs in Persia. He also founded a town called Martyropolis, where he laid these holy relics. He ended his earthly course and took up his habitation with the Lord in the year 422 A.D.
! THE HOLY VENERABLE MARTYR ROMAN
Roman was a simple and illiterate peasant from Carpenesion. Learning of the heroism and glory of the martyrs of Christ, the young Roman desired martyrdom for himself. He went to Thessalonica were he began to praise the Faith of Christ on the streets and to call Mohammed a teller of fables. The Turks tortured him horribly and then sold him to a galley captain. Christians ransomed him from the captain and sent him to the Holy Mountain, where he was tonsured a monk by the illustrious Elder Acacius. But Roman still desired martyrdom for Christ. With the blessing of Elder Acacius, Roman traveled to Constantinople pretending insanity and began to lead a dog along the Turkish streets. When asked what he was doing, Roman responded that he was feeding the dog as Christians feed the Turks. The Turks threw him into a dry well, where he remained without bread for forty days. They then removed him from the well and beheaded him. A light emanated from his body for three days. An Englishman removed his body and took it to England. A certain monk dipped a towel in the blood of the martyr. This towel is preserved, even today, in the Monastery of Dochiariou [Mt. Athos]. This glorious soldier of Christ suffered in the year 1694 A.D.
! HYMN OF PRAISE
! TO THE HOLY MARTYRS
Martyrs of Christ, flowers bountiful,
Which will never fade away.
Martyrs of Christ, evergreens living in the winter,
Stained with blood, you stretched toward heaven.
Martyrs of Christ, aromas of incense,
And votive lamps illumined by God.
You ran the race for the beauty of Christ,
And are forever with Christ in Paradise.
The world will last for a time, then cease to be,
But you will always be with the Lord in Paradise.
! REFLECTION
The most important thing in a meadow is grass. In a field, it is wheat. In a garden, it is vegetables. No one boasts about the enclosure of the meadow more than they do about the hay in the meadow. Nor does anyone boast more about the shed in the field than they do about the wheat in the field. Nor does anyone boast of the ditches more than they do of the vegetables in the garden. Why do people boast about their countries--the roads, the demarcations and boundaries, and the cities throughout the country? These and everything else have no greater value than the enclosures of the meadows, the shed in the field, or the ditches in the garden, when they are compared to the main crop, that is, to man. Men do not exist for the sake of the country, but the country exists for the sake of men. Christ came to save not countries, but men. A country receives its value from good citizens. And of what use is a great country to evil people? They are brambles in a spacious field.
! CONTEMPLATION
Contemplate the Lord Jesus, praying on dark nights, alone in the mountains, for my salvation, for your salvation, and for the salvation of all men:
# How He lifted His hands up toward heaven; how He bent to the ground; how He knelt in prayer many nights; in prayer for my salvation, for your salvation, and for the salvation of all men;
# How He sweated at prayer and wept for my salvation, for your salvation, and for the salvation of all men;
# How He kept vigil in prayer, tormenting His body without sleep and rest, for my salvation, for your salvation, and for the salvation of all men.
! HOMILY
! on the terrible stone
"Whosoever shall fall upon that stone shall be broken, but on whomsoever it shall fall, it will grind him to powder" (Luke 20:18).
The Lord Christ is the cornerstone. Judas fell on that stone and was smashed. Herod fell on that stone, and he was smashed. Julian the Apostate fell on that stone, and he was smashed. Arius fell on that stone, and he was smashed. Those who deny Christ and those who mock him fall on that stone and are smashed like the clay pots of a potter.
This stone fell on Sodom and Gomorrah, and Sodom and Gomorrah were destroyed. This stone fell on Egypt, and Egypt was destroyed. This stone fell on Jerusalem, and Jerusalem was destroyed. This stone fell on the Jewish people, and the Jewish people were scattered into pieces. This stone fell on many sinful generations and empires, and those sinful generations and empires dissolved into dust and ashes.
The Lord has forgiven sinners seventy times seven and more, but beyond that, if sinners remain sinners, will the Lord save them against their will? He will not, for that is not the principle of the salvation of men. The principle of salvation is that men voluntarily consent to being saved by God. If men, seventy times seven and more, do not desire to be saved by God, then God will not save them. Then men will be smashed against that stone around which they cannot pass, and they will be destroyed by that stone which they have raised to cast far away from themselves. Can it be said that God, Who saved the penitent thief on the cross, is unmerciful? Can it be said that He is unjust, when He gave over to destruction the thief who mocked Him even in the hour of death?
O Lord Almighty, save us!
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT-MARTYR THEODORE THE TYRO
The word Tyro means recruit. As soon as Theodore entered the army in the Marmarite regiment in the town of Amasea, the persecution of Christians began under the Emperors Maximian and Maximus. As Theodore did not try to conceal the fact that he also was a Christian, he was dragged to court and thrown into prison, which was then locked and sealed because the wicked judge wanted him to die of starvation. The Lord Christ Himself appeared to Theodore in prison and encouraged His martyr, saying to him: "Fear not Theodore, I am with you. Do not partake of earthly food and drink anymore, for you will be with Me in the other world in the heavens--eternal and everlasting." At that moment there appeared a multitude of angels in the prison, and the entire prison shone brightly. The guards, seeing angels dressed in white raiment, became terrified. After that, St. Theodore was taken out, tortured and condemned to death. Theodore was thrown into a fire and gave up his holy soul to the Most-high God. He suffered in the year 306 A.D.
! THE VENERABLE THEODOSIUS THE BULGARIAN AND HIS DISCIPLE ROMAN
As a monk, St. Theodosius settled not far from the city of Trnovo [Bulgaria]. There he established a monastic community, which became known as "Theodosius's" after him. He notably distinguished himself at a council in Bulgaria against the Bogomils in the year 1360 A.D. Defending the Orthodox Faith at this council, he shamed the Bogomils by his reasoning. He finished his earthy course in Constantinople in the year 1362 A.D. His disciple, Roman, continued to live as an ascetic in Theodosius's community until his death.
! SAINT MARIAMNA (MARIA)
Mariamna was the sister of the Holy Apostle Philip. She traveled with her brother, preaching the Gospel with him in Hierapolis and in other places. Following Philip's martyric death, Mariamna continued her missionary work in Lycaonia, where she died.
! HYMN OF PRAISE
! SAINT THEODORE THE TYRO
"Do not be afraid of the world, for I have overcome the world" (John 16:33).
These are holy words both then and now.
They are a true balm for all who suffer,
Most of all for the glorious martyrs of God.
Why should you be afraid of those who are more fearful?
The world is afraid of its own shadow!
Why fear the powerful and the rulers,
And dying things, constantly dying?
He who is with the Householder is not afraid of the house.
The Householder sees everything that is in the house,
And there is nothing that He would not know.
And His servant, what should he be afraid of?
When he hears the Lord say,
"Do not be afraid of the world!" what more does he desire?
"Do not be afraid of the world, for I have overcome the world!"
Our Lord reigns and rules over the world.
Before the flames and death, Theodore smiled,
And thus he received wreathes that never fade.
! REFLECTION
An artist is one who carves and shapes forms of living creatures from crude and shapeless stone. An artist is one who weaves a multicolored blanket from the wool of sheep. An artist is one who builds a magnificent palace out of earthly bricks. But what artist on earth can be compared to Christ the Artist, Who makes illiterate men into wise men, fishermen into apostles, cowards into heroes, and the profligate into saints? But all must be given over to the hand of the artist, in order to be fashioned into that which the artist knows and is capable of doing. All things, in truth, must be given over to the hand of the artist. Even men must give themselves over to the hand of Christ, in order for Him to carve, to weave or to build that which only He knows and is capable of. The last nineteen centuries witness to us, that all who did not oppose Him but rather gave themselves over to Christ the Artist, went from being boorish and ignorant to being angel-like children of God.
! CONTEMPLATION
Contemplate the Lord Jesus as an Artist above all artists:
# Who, from the body of man, which has become wild from the passions, creates a noble organ of every virtue;
# Who, from the chaos in the soul of man, creates the cosmos--a pure and shining mirror of the glory of God;
# Who, from ignoble men creates an undefiled kingdom, a country of the holy--an artistic work without precedence and without comparison.
! HOMILY
! on death as sleeping
"And all wept, and bewailed her: but He said, Weep not; she is not dead, but sleepeth. And they laughed Him to scorn, knowing that she was dead" (Luke 8:52-53).
The reference here is to the dead daughter of Jarius. Jarius himself said that his daughter had died, and his servants confirmed this. But the Lord, the Giver of life, said: //Weep not; she is not dead,//and they ridiculed Him, //knowing that she was dead.// The ignorant pretend that they know better than the Knower. The blind pretend that they see better than the All-seeing One. But when the young girl arose and showed herself alive, the ignorant //were astonished with a great astonishment// (Mark 5:42).
Even today, the ignorant scoff when they hear the divine truth. Divine truth speaks: There is a Living God! And the ignorant ridicule this as though they know that there is no God. Divine truth speaks: There is a Heavenly Kingdom! And the ignorant ridicule even this as though they know that there is no Heavenly Kingdom. Divine truth asserts: The dead will resurrect! And the ignorant even deny this as though they know that this will not be. And when God appears and the angels of God appear, and the Kingdom of Heaven is made known, and the dead resurrect, then the ignorant ones will be //astonished with a great astonishment//.
Who can save the world from the ignorant? No one can save the world except Christ the Omniscient, the Omnipotent. By what can the ignorant be saved? By nothing except faith in Christ and and the Christian Faith. Who are the most ignorant ones in the world? They are those who deny whatever Christ affirmed and affirm whatever He denied. In a word: there are those who think that they know something contrary to the knowledge of Christ. They are the worst and the most dangerous ignoramuses, both to themselves and to others.
My brethren, know that everything and everyone can deceive us except Christ, our Lord and Friend. He always knows and we do not, except when we look and listen to Him.
O Lord, merciful and all-merciful, help all the ignorant, that before death and judgment they may be //astonished with great astonishment,// and that they too may be saved in the Kingdom of Thy holy ones.
To Thee be glory and praise forever. Amen.
! SAINT LEO I, POPE OF ROME
Leo was born in Italy of devout parents. He first served as archdeacon under Pope Sixtus III, and following the death of Sixtus he was elevated against his will to the throne of the Pope of Rome. When Attila, with his Huns, drew near to Rome and was prepared to destroy and burn the city, Leo came out before him in his episcopal vestments. He subdued the wrath of the leader of the Huns and averted the destruction of Rome. Attila allowed himself to be counseled by this holy man, but was also frightened by a vision of the Apostles Peter and Paul, who stood alongside Leo and threatened him with flaming swords. Not only did St. Leo save Rome, but he also contributed much to save Orthodoxy from the heresy of Eutyches and Dioscorus. This heresy consisted in the merging of the divine and human natures of Christ into one and, consequently, the denial of the two wills in the person of the Lord Savior. Because of this, the Fourth Ecumenical Council [Chalcedon, 451 A.D.] was convened, at which time the epistle of St. Leo was read. St. Leo had written this epistle and placed it on the tomb of St. Peter, who corrected it. Before his death, Leo spent forty days in fasting and prayer at the tomb of St. Peter, beseeching him to tell him whether his sins were forgiven. The Apostle Peter appeared to him and said that all of his sins were forgiven except sins committed in the ordination of priests (whence it is evident how grave a sin it is to ordain one who is unworthy). The saint again fell to prayer until he was told that even those sins were forgiven. He peacefully gave up his soul to the Lord. St. Leo reposed in the year 461 A.D.
! SAINT FLAVIAN
Flavian became Patriarch of Constantinople following St. Proclus. He was a contemporary of Pope Leo. He fought resolutely against Eutyches and Dioscorus, but did not live to see the triumph of Orthodoxy at the Fourth Ecumenical Council, for, prior to that, he was so mercilessly beaten and trampled upon at a heretical council in Ephesus that he died there. Flavian was a faithful soldier of Christ--a courageous defender and confessor of the Orthodox Faith. He reposed in the year 449 A.D.
! HYMN OF PRAISE
! SAINT FLAVIAN
//When pride comes, then comes shame// (Proverbs 11:2).
That is the word of God, the lesson of life.
Heretics, who are they? The children of pride.
What did they want? To bring shame.
That is why they had to endure shame.
Eutyches hoped in the help of the eunuch;
Flavian hoped in the help of the Spirit of God.
Pride always precedes a fall:
Eutyches perished and Flavian conquered.
Dioscorus's hope was his fist;
That is why all generations despise him.
Flavian, beaten and trodden underfoot,
Now is glorified on earth, and blessed in heaven.
He defended the truth without fear and without stop.
The truth stood firm, and he was not afraid of anything.
Leo the Roman extended to him the assistance of a lion
In defense of the radiant face of Christ.
These two hierarchs, and Eulogius the third one,
Guided the Church to victory and joy.
Without such spirits, what would the Church be?
A wounded bird with broken wings.
! REFLECTION
With great difficulty and with even greater effort and sacrifice, the tares of heresy were sifted from the wheat of the truth of Orthodoxy. The heretics have always made use of lower means and base persons in undermining Orthodoxy. Archmandrite Eutyches of Constantinople and Patriarch Dioscorus of Alexandria--who spread the heretical teaching that there were not two natures in Christ, divine and human, but rather one nature--had as their ally in the imperial court the vile eunuch Chrysaphius. Empress Eudoxia was secretly aligned with them. Patriarch Flavian, like a lion, fearlessly defended Orthodoxy. In this he was assisted by Pulcheria, the sister of the emperor. The eunuch Chrysaphius presented to Emperor Theodosius the most disgusting slanders against Flavian, so that the emperor would remove him from the throne and replace him with the heretic Eutyches. When this and all else failed, the heretics plotted to kill Flavian. At the Robber Council in Ephesus [431 A.D.], they beat him and trampled upon him so badly that St. Flavian gave up his soul to God on the third day. What happened in the end? At the Fourth Ecumenical Council [Chalcedon, 451 A.D.], Eutyches and Dioscorus were anathematized. The eunuch was ousted from the court and shamefully ended his life. The Empress Eudoxia was banished from Constantinople to Palestine. Flavian and Pulcheria were proclaimed saints, and the Orthodox Faith was victoriously confirmed.
! CONTEMPLATION
Contemplate the Lord Jesus among the Pharisees and scribes:
# How He made every effort to raise up the Pharisees and scribes and to save them, and how they made every effort to overthrow and kill Him;
# How He wished to correct their every thought and word, and how they wished to twist His every thought and word;
# How He was saddened that He could not bring them to life, and how they were saddened that they were unable to kill Him.
! REFLECTION
! on the struggle of the weak with the Almighty
"But the chief priests consulted that they might put Lazarus also to death" (John 12:10).
They agreed among themselves to first kill the Maker and then kill His work. For the risen Lazarus was the work of Christ. What is the use, they iniquitously thought, to kill the Miracle-worker and to leave a living witness of His greatest miracle? For then the people would be inflamed at them as evildoers! But, nevertheless, it happened that they killed Christ and missed Lazarus. And then? And then they and those of like mind killed scores of His apostles and overlooked hundreds. Then they killed thousands and overlooked hundreds of thousands. Then they killed hundreds of thousands and overlooked millions. Finally it became clear that, behind their backs, the slain were resurrecting to life like mown grass and those designated to be killed grew as sown grass before the faces of the murderers. In vain, from their point of view, did the wise Gamaliel say: //But if it be of God, ye cannot overthrow it// (Acts 5:39). Those who wage war against God throughout the centuries have sharpened their feebleness in vain to mow down the crop of God. The more they cut down, the more the crops of God grew luxuriantly.
O demented combatants against Christ, those of that time and the present! Your bludgeon rebounds from the city of Christ and strikes your own hovel, crushing it into dust and ashes. Throughout the ages, you have had enough allies: besides the devil, with you were heretics, idolaters, fanatics, soothsayers, divinators, depraved princes and wealthy men, tyrants and all insensitive sinners. Up to now you have been defeated, and without any doubt all of your allies together with you will be defeated, to the end of time.
! For this, O almighty and irresistible Lord, glory and praise be to Thee forever. Amen.
! THE HOLY APOSTLES ARCHIPPUS, PHILEMON AND APPHIA
Archippus was one of the Seventy Apostles. The Apostle Paul mentions him in his Epistle to the Colossians: //And tell Archippus, 'See that you fulfill the ministry that you received in the Lord'//(Colossians 4:17), as well as in his letter to Philemon, calling him //our fellow soldier// (Philemon 1:2). The center of Christianity in the town of Colossae was in the home of Philemon. Here Christians gathered for prayer. In writing to Philemon, the Apostle Paul called this //the church in thy house// (Philemon 1:2). At that time the apostles consecrated their disciples to the bishopric, some of them in permanent dioceses and others as missionaries traveling to various places. Philemon was one of the latter. Apphia, Philemon's wife, hosted and served in the domestic church. At the time of a pagan feast to the goddess Artemis, all the faithful in Colossae, according to their custom, gathered in the home of Philemon for prayer. Learning of this gathering, the pagans rushed in and apprehended all the Christians. As the leaders, Philemon, Apphia and Archippus were first whipped and afterward buried up to their waists and stoned. Thus, they slew Philemon and Apphia. Archippus they removed from the pit barely alive and left him to the amusement of the children. The children stabbed him all over with knives. In such a manner did this "fellow soldier" in battle finish well the course of his earthly path.
! THE VENERABLE DOSITHEUS
Dositheus was a disciple of the glorious Abba Dorotheus, who lived in the cenobitic monastic community of the Venerable Seridus, John and Barsanuphius the Great. Dositheus was the kinsman of a general, and he came to Jerusalem to visit the Holy Shrines. Once, while he was gazing upon an icon of the Dread Judgment in a church, a woman clothed in purple attire approached him and began explaining the icon to him. Before parting, she said that if he desired to be saved, he should fast, abstain from meat and pray to God often. This was the All-holy Virgin Theotokos. The heart of the young Dositheus became inflamed, and he desired the life of a monk. Dorotheus received him as his novice [Iskusenik] and ordered him to completely abandon his will and obey his spiritual father. For a few days, he gave him as much as he wanted to eat. After a period of time, Dorotheus cut down his rations by a quarter, and after another period of time again by a quarter, until Dositheus became accustomed to subsisting on the least amount of food. Dorotheus constantly repeated to Dositheus: "Eating is a habit, and as much as a person is accustomed to eat, that much he will eat." Dositheus was saved and glorified by total obedience. He has remained forever an example of monastic obedience and dedication to one's spiritual father. This young saint lived in the sixth century.
! HYMN OF PRAISE
! OBEDIENCE
Obedience without murmuring, salvation complete:
Among the spiritual this is the first pearl, the most precious stone.
This pearl, from Eve's necklace, slipped,
And after it followed all the goods, by God, bestowed.
The devil says both then and now: "To God, do not listen,
But live only according to the thoughts of your mind!"
Thus says the devil, who from time immemorial has detested the light.
Thus saying, the disobedient with his noose, he fitted.
Christ came, and to the people He cried out; the obedient He summoned.
To every call, the disobedient did not respond.
The scene of Paradise, from Christ's time until now, has repeated itself:
The obedient, to Paradise, are raised; the disobedient fall.
To his spiritual father, the true monk is obedient;
His father, to the Church; the Church, to Christ, her Lord.
Obedience, the reliable path toward salvation,
Is the first light, the first pearl of the spiritual necklace.
! REFLECTION
St. Anthony teaches: "Just as a man comes forth naked from his mother's womb, so the soul comes forth naked from the body. One soul is pure and bright, a second is soiled by sin, and a third is blackened by many sins. If a body comes forth from a mother's womb unhealthy, it cannot live. Likewise, a soul, if it does not attain the knowledge of God through good behavior, cannot be saved, neither can it be in communion with God. The organ of bodily sight is the eye; the organ of spiritual sight is the mind. Just as the body is blind without eyes, so the soul is blind without a correct mind and a correct life."
! CONTEMPLATION
Contemplate the Lord Jesus in the midst of the common people:
# How with love He taught the people as a parent teaches his children;
# How the common people received His words, were astonished by His works, and glorifed God;
# How even today, the common people, free from corruption, receive His words with joy and thanksgiving.
! HOMILY
! on testing
"He that is faithful in that which is least is faithful also in much: and he that is unjust in the least is unjust also in much.... If ye have not been faithful in that which is another man's, who shall give you that which is your own?" (Luke 16:10,12).
This is how the Householder of both the material and spiritual world speaks. Material wealth He calls "least" and the spiritual wealth He calls "much." If material wealth is given to a person and he proves himself to be selfish, hardhearted, arrogant, unmerciful and godless, then spiritual wealth cannot be given to him. For if he is unfaithful in small things, he will be unfaithful in great things. When he is unfaithful in the physical, he will be unfaithful in the spiritual.
Man undergoes a test in a foreign world, and if he passes the test he will gain his own world. If, however, he fails the test, who will give him his world? Man's true world, his homeland, is the heavenly, sublime, divine world. The earthly world, however, is the world of coarseness and corruption: a foreign world for man. But man is sent into this foreign world to complete a test for the sake of his true world, his heavenly homeland.
Thes two statements of the Savior are similar in meaning. Oh, how profound and true is their meaning! Just as light disperses darkness, so do these words of the Savior disperse our confusion in relation to these questions: Why are we sent into this life? And what should we do? To whomever is able to read with a pure understanding, everything is said in these two sentences.
Therefore, let us know that God will not bestow the spiritual gifts--the gifts of understanding, faith, love, purity, prophecy, miracle-working, power over demons, discernment, or the vision of the heavenly world--on him who has gambled and used for evil, like the Prodigal Son, the gifts of bodily health, earthly riches, glory and position among men, or knowledge of the material world.
O Lord most gentle, sustain our fidelity toward Thee in that which Thou hast entrusted to us.
To Thee be glory and praise forever. Amen.
! THE MEETING [PRESENTATION] OF OUR LORD IN THE TEMPLE
The fortieth day after His birth, the All-holy Virgin brought her divine Son into the Temple of Jerusalem, in accordance with the Law, to dedicate Him to God and to purify herself! (Leviticus 12:2-7; Exodus 12:2). Even though neither the one nor the other was necessary, the Lawgiver did not want in any way to transgress His own Law, which He had given through Moses, His servant and prophet. At that time, the high-priest Zacharias, the father of John the Forerunner, was serving in the Temple. Zacharias placed the Virgin, not in the temple area reserved for women, but rather in the area reserved for virgins. On this occasion two very special persons appeared in the Temple: the Elder Simeon and Anna, the daughter of Phanuel. The righteous Simeon took the Messiah in his arms and said: //Lord, now lettest Thou Thy servant depart in peace, according to Thy word, for mine eyes have seen Thy salvation //(Luke 2:29-30). Simeon also spoke the following words about the Christ-child: //Behold, this child is set for the fall and rising again of many in Israel// (Luke 2:34). Then Anna, who from her youth had served God in the Temple by fasting and prayer, recognized the Messiah and glorified God. She then proclaimed to the inhabitants of Jerusalem the coming of the long-awaited One. But the Pharisees who were present in the Temple, having seen and heard all, became angry with Zacharias because he had placed the Virgin Mary in the area reserved for virgins, and they reported this to King Herod. Convinced that this was the new king spoken of by the Magi from the East, Herod immediately sent his soldiers to kill Jesus. In the meantime, the holy family had already left the city and set out for Egypt under the guidance of an angel of God. The Feast of the Meeting of our Lord in the Temple was celebrated from earliest times, but the solemn celebration of this day was established in the year 544 A.D., during the reign of Emperor Justinian.
! THE HOLY NEW MARTYR JORDAN
Born in Trebizond, Jordan was a coppersmith by trade. Because he openly defended his faith in Christ and unmasked Islam, Jordan suffered at the hands of the Turks in 1650 A.D. at Galata in Constantinople. The monk Gabriel, a canonarch of the Great Church [Hagia Sophia] in Constantinople, suffered in the same manner in the year 1672 A.D.
! HYMN OF PRAISE
! SAINT SIMEON THE GOD-RECEIVER
When winter encountered spring,
The aged Simeon was of good fortune:
He encountered the long-awaited One
Who, by the prophets, was foretold.
The treasury of all heavenly riches
Was seen as a naked infant by Simeon.
And in this manner Simeon prophesied:
"Evening has descended upon my life;
This One is set to conquer many
And to raise many." Thus the spirit spoke--
The elder's prophecy was fulfilled:
Jesus became the measure and the standard,
The source of happiness, peace and joy,
But also the target of disputes and maliciousness.
One He lifts up, the other He overturns,
And Paradise and hades He opens to men.
Let everyone choose whatever their hearts tell them.
In Paradise with Christ! That is our heart's desire.
! REFLECTION
Speaking about the gradual spread of the celebration of Christ's Nativity, St. John Chrysostom said: "Magnificent and noble trees, when planted in the ground, shortly attain great heights and become heavily laden with fruit; so it is with this day." So it is also with the day of the Meeting of our Lord. From the beginning this day was commorated among Christians, but the solemn celebration began in the time of the great Emperor Justinian. During his reign, a great pestilence afflicted the people in Constantinople and its vicinity, so that five thousand or more people died daily. At the same time a terrible earthquake occurred in Antioch. Seeing man's inability to prevent these misfortunes, the emperor, in consultation with the patriarch, ordered a period of fasting and prayer throughout the entire empire. And, on the day of the Meeting itself, he arranged great processions throughout the towns and villages, that the Lord might show compassion on His people. And truly, the Lord did show compassion, for the epidemic and earthquake ceased at once. This occurred in the year 544 A.D. From that time on, the Feast of the Meeting began to be celebrated as a great feast of the Lord. The tree, in time, grew and began to bring forth abundant fruit.
! CONTEMPLATION
Contemplate the Lord Jesus as Health:
# As the Health of our mind, for with Him we think soundly;
# As the Health of our heart, for with Him we feel soundly;
# As the Health of our will, for with Him we act soundly;
# As the Health of the family, the Church, the school, the people and every institution.
! HOMILY
! On the guidance of the Spirit of God
"And Jesus being full of the Holy Spirit, returned from Jordan, and was led by the Spirit into the wilderness" (Luke 4:1).
You see, brethren, what it means to be filled with the Holy Spirit of God. Without the Spirit of God, man is filled with worries: Where will he go and how will he act? But with the Spirit of God, man is without those worries, for then the Spirit instructs man where he will walk and how he will act. Then man becomes sinless in his movement and actions, because the Holy Spirit, Who leads and guides him, is sinless. Man can neither walk justly nor act righteously if the Omnipotent and Omniscient Spirit of God does not inform him. Whoever is not led by the Holy Spirit of God is led either by his own individual spirit or by the evil spirit of the demon. As a result of this he becomes helpless, bitter, remorseful, angry and despondent. We cannot endure the Spirit of God in His fullness as did Christ the Lord, but we can receive the Spirit of God sufficiently in order to know "whither, what and how." According to the purity of man's heart, the Holy Spirit settles in his heart and from the heart directs him.
That is why the Church often repeats this prayer to the Holy Spirit: "O Heavenly King, Comforter, Spirit of Truth ... come and abide in us."
! O God, O Holy Spirit, to Thee be glory and praise forever. Amen.
! SAINT LEO, BISHOP OF CATANIA
In the town of Catania, below the volcanic Mount Etna, lived St. Leo, a good shepherd and compassionate teacher of the people. He had great concern for the sick and the poor. His zeal for the Faith was as great as his charity toward the less fortunate. A magician named Heliodorus appeared in Catania and deluded the people with various illusions, greatly demoralizing the youth of the town. At one time during the divine services, Heliodorus entered the church of God and began his obscenities. St. Leo approached him, tied him to one end of his pallium, and led him to the market place of the city. Here Leo ordered that a large fire be built. When it was raging, he stood in the middle of the blaze and pulled Heliodorus into the fire. Heliodorus was completely consumed, but Leo remained alive and unscathed. All who had been bewitched by Heliodorus and who had looked upon him as someone divine, were ashamed. The compassionate and zealous Leo was proclaimed throughout the entire kingdom as a great miracle-worker, who helped men by his shining miracles. When Leo ended his course, he took up his habitation with the Lord, and from his relics there flowed healing myrrh. He reposed in the eighth century.
! THE HOLY HIEROMARTYR [PRIESTLY-MARTYR] SADOK
Sadok was bishop in Persia after St. Simeon. Once St. Simeon appeared to him in a dream and said: "Yesterday, me--today, you!" Sadok interpreted these words to his flock as meaning: Last year I [St. Simeon] suffered, this year you [Sadok] will suffer. Indeed, that year King Sapor arrested him with many of the clergy and people and brought them to trial. Sapor first ordered them to worship fire and the sun as divinities. Sadok replied: "We are eagerly prepared to die for our God, but we can worship neither the sun nor fire." After that, they were tortured and sentenced to death by beheading. Before being beheaded, Sadok sent up a prayer to God: "Wash us from our sins, O Lord, in our blood!" Sadok and his priests and faithful gloriously gave up their bodies to death and their souls to the Immortal God. They suffered in the year 342 or 344 A.D.
! HYMN OF PRAISE
! SAINT SADOK
What is the sun? The eye that does not see.
What is fire? A servant without reason.
King Sapor, to Sadok, spoke:
"Worship the sun and the flame,
The gods which rule the world,
According to the teaching of Zoroaster the wise."
Sadok, to the Emperor, gently replied:
"To you, O Emperor, be health and joy,
But where does the sensible, before the senseless, bow down?
Where does the rational, before the irrational, bow down?
The sun--beautiful as a thing of God,
The flame--wonderful as a servant of men;
But can the created, the Creator, replace?
Can the dead, a replacement for the living, be?
Is the painting better than the artist?
Is the plow more precious than the plower?
In the heavens, O Emperor, there is only one God,
Omnipotent, intelligent, beautiful and good,
The Creator of the visible and invisible world,
Of everything created, the Designer.
Of all good gifts, He is the Giver,
A Lover of mankind and the Almighty,
Him, the Only-begotten Son revealed.
From the Persian errors, He saved us,
On top of nature, He taught us to stand,
And toward the Creator, to turn our face,
To lift up our entire soul to heaven--
There, where our homeland is,
The homeland of angels and men."
Thus spoke Sadok--and Sapor beheaded him.
! REFLECTION
Water is finer than earth; fire is finer than water; air is finer than fire; electricity is finer than air. Nevertheless, air and electricity are dense elements in comparison to the spiritual world.
Electricity is very fine, but the voice is finer than electricity; the thought finer than the voice; the spirit finer than thought.
Air is fine and it carries the voice over a great distance. Electricity is fine and it carries light over a great distance. Nevertheless, how much more so is every deed, word and thought of yours carried to all ends of the spiritual world. Oh, how dreadful it is to commit sinful deeds and to speak sinful words and to think insane thoughts! To what immeasurable distances are waves amassed from this on the spiritual sea! But do not peer into the details of the unknown world. The main thing is that you know and measure how all your deeds, words and thoughts unavoidably create an impression on all four sides: on God and the spiritual world, on nature, on men, and on your soul. If you train yourself in this knowledge, you will attain a high level of saving vigilance.
! CONTEMPLATION
Contemplate the Lord Jesus in conversation with Nicodemus (John, Chapter 3):
# How Nicodemus, though a teacher in Israel, did not perfectly comprehend spiritual things;
# How our Lord intentionally began the conversation with the question of spiritual birth--a question most inaccessible to the mind of Nicodemus--so as by this to bring Nicodemus to meekness and then to further cultivate him as a good field;
# How in the beginning Nicodemus approached Christ with hesitation and shyness (as even today most of our scholars do), but afterward more boldly.
! HOMILY
! on judgment and condemnation
"He that believeth on Him is not condemned: but he that believeth not is condemned already" (John 3:18).
He who believes in Christ the Lord is not condemned, for he judges himself, and directs his footsteps toward the light that goes before him. As a man in profound darkness adjusts his footsteps according to the candle in his hand, so does the one who believes in Christ--he has embarked after Christ as after a light in the darkness of life.
He who does not believe //is condemned already//. That is, he who does not have a guide on the unknown path loses his way and strays as soon as he takes the first step. He who does not believe in Christ is condemned to ignorance, weakness, anger, staggering along crooked and winding roads, vice, despair and perhaps even suicide. He is condemned in two worlds: in this world to a senseless, physical and delusory existence, and in the other world to eternal damnation! Oh, how dark is the path of the children of unbelief, and how deep is the abyss between their first and third steps!
O All-merciful Lord, in truth, besides Thee we have no one and nothing to believe in. Thou art our Savior from darkness, sin and death.
To Thee be glory and praise forever. Amen.
! SAINT ZACHARIAS, PATRIARCH OF JERUSALEM
During the reign of the Greek Emperor Heraclius, the Persian King Chozroes attacked Jerusalem, in the year 614 A.D. Chozroes pillaged the city, removed the Honorable Cross to Persia and took an enormous number of Christians into bondage. Among them was Patriarch Zacharias. The Jews assisted Chozroes in committing evil against the Christians. Among other acts of wickedness by the Jews, this one is mentioned: the Jews purchased from Chozroes ninety-thousand Christians as their slaves and slew them all. The aged Patriarch Zacharias remained in bondage for fourteen years. So many miracles occurred in Persia as a result of the Honorable Cross, that even the Persians said: "The Christian God has come to Persia." Later, Heraclius forced the Persian emperor to return the Honorable Cross to Jerusalem, along with the patriarch and the remaining captives. Emperor Heraclius himself bore the Cross on his shoulders into the Holy City. St. Zacharias spent his remaining days in peace and took up his habitation with the Lord in the year 631 A.D. He was succeeded on the throne by Patriarch Modestus, and after him by St. Sophronius (March 11).
! THE VENERABLE TIMOTHY
Timothy was a recluse in a place called Symbola on the Asiatic side of Mount Olympus. In his youth Timothy entered a monastery and was tonsured a monk. Until old age he spent his earthly life in fasting, prayer, vigils and ceaseless labor. He remained pure and chaste throughout his entire life. To the pure and chaste, God gives authority over evil spirits, and He gave this to Timothy. Through his labors for the salvation of his soul, St. Timothy succeeded in building within himself a wonderful abode for the Holy Spirit. This holy man reposed in the year 795 A.D.
! SAINT EUSTATHIUS, ARCHBISHOP OF ANTIOCH
Eustathius was a great zealot and defender of Orthodoxy. As such, he was especially prominent at the First Ecumenical Council [Nicaea, 325 A.D.], where he intellectually and systematically refuted the teaching of Arius. With the other Holy Fathers, Eustathius rightly confessed that Jesus Christ, as the Son of God, is equal to the Father and the Holy Spirit according to Divine Essense. Following the death of Emperor Constantine, the Arians again gained the ascendancy and began to bitterly persecute Orthodoxy. St. Eustathius was ousted from his throne and exiled, first to Thrace and later to Macedonia. Eustathius suffered much and long, until at last he gave up his holy soul to God in the year 345 A.D.
! SAINT JOHN III SCHOLASTICUS, PATRIARCH OF CONSTANTINOPLE
A lawyer, John was ordained a priest, and he later became patriarch, in the year 565 A.D. He compiled canons, which were included in the Nomocanon. During his reign the Cherubic Hymn, as well as the prayer "At Thy Mystical Supper," were introduced into the Divine Liturgy. John died peacefully and gave up his soul to God in the year 577 A.D.
! The Cherubic Hymn
"Let us who mystically represent the Cherubim, and who sing the thrice-holy hymn to the life-creating Trinity, now lay aside all earthly cares. That we may receive the King of All, who comes invisibly upborne by the angelic hosts. Alleluia! Alleluia! Alleluia!"
! Prayer Before Holy Communion
"I believe, O Lord, and I confess that Thou art truly the Christ, the Son of the living God, who came into the world to save sinners, of whom I am first. I believe also that this is truly Thine own pure Body, and that this is truly Thine own precious Blood. Therefore, I pray Thee: have mercy upon me and forgive my transgressions both voluntary and involuntary, of word and of deed, committed knowingly and unknowingly, of knowledge and of ignorance. And make me worthy to partake without condemnation of Thy most pure Mysteries, for the remission of my sins, and unto life everlasting. Amen.
Of Thy Mystical Supper, O Son of God, accept me today as a communicant; for I will not speak of Thy Mystery to Thine enemies, neither like Judas will I give Thee a kiss; but like the thief will I confess Thee: Remember me, O Lord, in Thy Kingdom.
May the communion of Thy holy Mysteries be neither to my judgment, nor to my condemnation, O Lord, but to the healing of soul and body."
! HYMN OF PRAISE
! THE HONORABLE CROSS
The saving Cross, covered with blood,
Was for a long time as though in a grave covered with darkness!
Because of thee, for three days a Hero dwelt in darkness,
And thou for three hundred years didst lie under the ground.
After the Lord liberated the forefathers from hades, He arose,
And when freedom for the Church reigned, thou didst arise.
After rising, the Lord remained for a little while on earth,
And upon the faithful thou didst shine for some time,
Untilthyou didst adequately help them to strengthen the Faith,
Until everyone learned to sign themselves with the sign of the Cross,
Until, by their conscience, the baptized recognized the power of the Cross.
With this, thou didst complete thy service with honor.
A thousand seasons may come and pass,
But still thine image and thy power will not perish.
The faithful, before the Honorable Cross, pray to Christ God:
Heal all difficulties, heal all pains, by the Honorable Cross.
! REFLECTION
What is fortune telling? There are three kinds of belief which have their origin in fortune telling: belief in blind chance, belief in things, and belief in the complete power of the spirits of darkness. Through fortune telling, events are prophesied, the power of things are differentiated, and the spirits of darkness are invoked. No faith has so decisively condemned and rejected fortune telling as has the Christian Faith. No faith except Christianity is free and pure of fortune telling. Other faiths are more or less connected to fortune telling, and some consist only in fortune telling. Fortune telling means to subject man to things and beings lower than himself. Thus, fortune telling can be called a belief in darkness. That is why the Apostle Paul said: //But refuse profane and old wives' fables, and exercise thyself rather unto godliness// (1 Timothy 4:7). Christianity is a Faith of light in two senses: first, it elevates man above chance, above all things, and above the spirits of darkness; and second, it subordinates man only to the authority of the Living, Wise and Almighty God. The All-seeing God exists, and that is why blind chance does not exist. In spiritual union with this All-seeing and Living God, man can be made higher than all things and more powerful than all the spirits of darkness.
!
CONTEMPLATION
Contemplate the Lord Jesus in conversation with the rich young man! (Luke 18:18-23):
# How the rich man sought counsel but was not prepared to sacrifice;
# How our Lord pointed out to him the way to sacrifice, which is necessary for the purchase of eternal life;
# How the rich man left sorrowfully, for he could not part with his riches.
HOMILY!
on fasting and prayer!
"This kind can come forth by nothing, but by prayer and fasting" (Mark 9:29).
This is the saving prescription of the greatest Physician of human souls. This is the remedy tried and proven. There is not another remedy for madness. What kind of sickness is this? This is the presence and dominance of an evil spirit in a man, a dangerous evil spirit, who labors to eventually destroy the body and soul of man. The boy, whom our Lord freed from an evil spirit, had been hurled by it at times into the fire and at times into the water, just in order to destroy him.
As long as a man only philosophizes about God, he is weak and completely helpless against an evil spirit. The evil spirit ridicules the feeble sophistry of the world. But as soon as a man begins to fast and to pray to God, the evil spirit becomes filled with indescribable fear. In no way can the evil spirit tolerate the fragrance of prayer and fasting. The sweet-smelling fragrance chokes him and weakens him to utter exhaustion. In a man who only philosophizes about faith, there is spacious room in him for the demons. But in a man who sincerely begins to pray to God and to fast with patience and hope, it becomes narrow and constricted for the demon, so the demon must flee from such a man. Against certain bodily ills there exists only one remedy. Against the greatest illness of the soul, demonic possession, there exist two remedies, which must be utilized at one and the same time: fasting and prayer. The apostles and saints fasted and prayed to God. That is why they were so powerful against evil spirits.
O gracious Jesus, our Physician and Helper in all misfortunes, strengthen us by the power of Thy Holy Spirit, that we may be able to adhere to Thy saving precepts concerning fasting and prayer, for the sake of our salvation and the salvation of our fellow men.
To Thee be glory and praise forever. Amen.////
! THE HOLY MARTYR MAURICE AND THE SEVENTY SOLDIERS WITH HIM
During the reign of Emperor Maximian there was a great persecution of Christians. In the Syrian town of Apamea, Maurice was commander of the local army. The pagans reported him to the emperor as being a Christian and a sower of the Christian Faith among the soldiers. The emperor himself came and conducted an investigation. Along with Maurice, seventy Christian soldiers were also brought before the emperor, among whom was Photinus, the son of Maurice. Neither the emperor's flattery nor his threats could sway these heroes. To the threats of the emperor, they replied: "O Emperor, there is no fear in the powerful and sound souls of those who love the Lord!" When the emperor ordered that their military belts and garments be removed, they said to him: "Our God will clothe us with incorruptible garments and belts, and with eternal glory!" When the emperor rebuked them because they despised the military honor he had given them, they replied: "Your honor is without honor, for you have forgotten God, Who gave you imperial power!" Then the emperor commanded the executioner to behead Maurice's son, Photinus, before his father's eyes, in order to instill fear in the father and the others. But Maurice said: "You have fulfilled our wish, O torturer, and have sent Photinus, the soldier of Christ, before us." Then the emperor sentenced them to a most inhuman death: they were brought to a marshy place, stripped, bound to trees and rubbed with honey, in order to be bitten by mosquitoes, wasps and hornets. After ten days in the most painful sufferings, they gave up their souls to God and departed to rejoice eternally with the holy angels in heaven. Christians secretly removed their bodies and honorably buried them. These courageous soldiers of Christ suffered in about the year 305 A.D.
! THE MANY MARTYRS OF EUGENIUS, NEAR CONSTANTINOPLE
During the reign of Emperor Arcadius, the relics of many martyrs of Christ were unearthed, among whom was the Apostle Andronicus and his helper Junia: //Great Andronicus and Junia, my relatives and my fellow prisoners; they are prominent among the apostles and they were in Christ before me //(Romans 16:7). These relics were discovered through a revelation from God to a cleric, Nicholas Calligraphus. "Their names are known only to God, Who has written their names in the Book of Life in the heavens." In the twelfth century, Emperor Andronicus I built a beautiful church over the relics of the Apostle Andronicus.
! THE VENERABLE THALASSIUS AND LIMNAEUS
Both Thalassius and Limnaeus were Syrian ascetics. One of their particular ascetic labors was silence. Following the death of St. Thalassius in 440 A.D., Limnaeus joined St. Maron (February 14) and with him labored in asceticism on top of a mountain under the open sky.
! SAINT PAPIUS OF HIERAPOLIS
Papius was a disciple of the holy apostles and a patristic author. From Papius we have testimony concerning the Gospels of St. Matthew and St. Mark, the four Marys, and the brothers of the Lord, as well as an incomplete but preserved manuscript, //An Interpretation of the Words of our Lord//.
! HYMN OF PRAISE
! SAINTS MAURICE AND PHOTINUS, SOLDIERS OF CHRIST
Of noble root--of noble vine,
The young Photinus: to God, a sacrifice, beautiful and well-pleasing.
The father was a witness as they beheaded his son.
As streams of red blood poured out,
The heart of Maurice the courageous father, was overcome;
Neither did he scream, nor sorrow, nor shed a tear.
---------------
"Dear God, Thou didst give him to me," he said.
"O Good One, for all of Thy love what better gift could I give?
Of death, make me worthy, as Thou didst Photinus,
Thou, Who for us didst sacrifice Thine only Son!"
Maurice, of the Heavenly Kingdom, a glorious soldier,
Did not receive a gift from earthly rulers,
But he encouraged his company, the proud legion,
Before the soulless idols not to bow.
His company he led to death and through death to life.
To express this rare beauty, the tongue is too weak.
"On our flesh, let the wasps and hornets feed;
Nevertheless, O soldiers, we are not conquered.
Our blood, let the mosquitoes suck; let them be fed.
On the other side, O my brothers, we shall soon be,
Where all of those who fought for the Cross reign.
To Christ God we shall say: 'We did not betray Thee!'"
! REFLECTION
Concerning uninterrupted abiding with God, St. Anthony teaches: "Let your soul abide with the Lord at all times, and let your body abide on earth like a statue. Always stand upright before the face of the Lord. Let the fear of God remain constantly before your eyes, as well as the remembrance of death and the repulsion of everything worldly. Die every day that you may live, for whoever fears God will live forever. Be constantly vigilant, so as not to fall into laziness and idleness. Abhor all that is worldly and distance yourself from it, or else it will distance you from God. Abhor all that will bring ruin to your soul. Do not stray from God for the sake of transient things. Do not take the example of one weaker than yourself, but emulate the one who is more perfect. Attend to the example of those who have loved the Lord with all their hearts and have done good works. Before all else, continually pour out prayer, give thanks to God for all that befalls you. If you fulfill all that is commanded, you will receive the inheritance that//eye hath not seen, nor ear heard, neither have entered into the heart of man //(1 Corinthians 2:9)."
! CONTEMPLATION
Contemplate the Lord Jesus in conversation with Martha and Mary:
# How both sisters cordially received the Lord and desired to hear His word;
# How Mary was more concerned about spiritual things, and Martha about the material reception of the Divine Guest;
# How the Lord rejoiced more in feeding someone with spiritual nourishment than in being fed Himself with material nourishment.
! HOMILY
! on fools, wiser than the world
"We are fools for Christ's sake" (1 Corinthians 4:10).
Thus speaks the great Apostle Paul. He was at first guided by worldly wisdom, which is against Christ, until he recognized the falsehood and decay of this world's wisdom, and the light and stability of Christ's wisdom. Hence the holy apostle did not become angry with the world because they called him //a fool for Christ's sake.// In defiance of the world, he did not hesitate to be called by this name.
We find no value in how the world regards or designates us. However, it is important to us--extremely important--how the holy angels in heaven regard and designate us when we meet them after death. This is of crucial importance and all else is nothing.
Either we are fools to the world because of Christ or we are fools to Christ because of the world. Oh, how short-lived is the sound of a word from the world! Even if the world calls us fools, the world will die and its word will die! What then is the value of its word? But if the heavenly, immortal ones call us fools, this will not die, but will stay with us as eternal condemnation.
If one does not believe in the Living God, or in eternal life, or in the Incarnation of the Lord Christ, or in Christ's Resurrection, or in the truth of the Gospel, or in God's eternal mercy and justice--is it any wonder that he considers one who does believe in all of this to be a fool?
Oh, may every one of us who is baptized with the sign of the Cross not only find it easy to endure but receive with satisfaction the name "fool" for Christ's sake! Let us rejoice and be glad if the non-believers call us such, for that means that we are close to Christ and far from the non-believers. Let us rejoice and be glad, and repeat with a powerful echo in the ears of the world: Yes, yes, indeed we are fools for Christ's sake!
O Lord Most-wise, strengthen us by Thy power, that we not fear the unbelieving world when they lash us with whips or when they insult us with words for Thy sake.
To Thee be glory and praise forever. Amen.
! THE HOLY HIEROMARTYR [PRIESTLY-MARTYR] POLYCARP, BISHOP OF SMYRNA
Polycarp, this great apostolic man, was born a pagan. St. John the Theologian converted him to the Christian Faith and baptized him. In his childhood Polycarp was orphaned. Callista, a noble widow, after a vision in a dream, adopted, raised and educated him. From his childhood Polycarp was devout and compassionate. He strove to emulate the life of St. Bucolus, then the Bishop of Smyrna, as well as of the Holy Apostles John and Paul, whom he knew and had heard. St. Bucolus ordained him a presbyter and before his death designated him as his successor in Smyrna. The apostolic bishops, who gathered at the funeral of Bucolus, consecrated Polycarp as bishop. From the very beginning Polycarp was endowed with the power of working miracles. He expelled an evil spirit from the servant of a prince and through prayer stopped a terrible fire in Smyrna. Upon seeing this, many pagans regarded Polycarp as one of the gods. He brought down rain in times of drought, healed illnesses, had the gifts of discernment and prophecy, and so forth. He suffered during the reign of Emperor Marcus Aurelius. Three days before his death, St. Polycarp prophesied: "In three days I will be burnt in the flames for the sake of the Lord Jesus Christ!" And on the third day, when the soldiers arrested him and brought him to trial, he cried out: "Let this be the will of the Lord my God." When the judge counseled him to deny Christ and to acknowledge the Roman gods, Polycarp said: "I cannot exchange the better for the worse!" The Jews especially hated Polycarp and endeavored to have him burned alive. When they bound him at the stake, he prayed to God for a long time. He was very old and gray, and radiant like an angel of God. The people witnessed how the flame encircled him but did not touch him. Frightened by such a phenomenon, the pagan judges ordered the executioner to pierce him with a lance through the fire. When he was pierced, so much blood flowed from him that the fire was completely extinguished, and his body remained whole and unburnt. At the persuasion of the Jews, the judge ordered that Polycarp's lifeless body be incinerated according to the custom of the Hellenes. So the evil ones burned the dead body of the one whom they could not burn while alive. St. Polycarp suffered on Great and Holy Saturday in the year 167 A.D.
! THE VENERABLE DAMIAN
Damian, a monk of the Monastery of Esphigmenou on Mount Athos, was a contemporary and companion of the great Cosmos of Zographou. He lived a life of asceticism on Mount Samareia between Esphigmenou and Hilandar. He died peacefully in the year 1280 A.D. When he reposed, a pleasant and sweet-smelling aroma was emitted from his grave for forty days.
! HYMN OF PRAISE
! SAINT POLYCARP
God preserves His holy ones
So that they do not perish until their appointed time,
Until they complete their task.
The elder and saint of God Polycarp
Journeyed with his deacon.
At an inn by the road he spent the night.
The elder prayed while the deacon slept,
Until an angel of God appeared to the elder
And commanded that they immediately arise,
And depart from the inn,
For the inn was soon to be destroyed.
The elder roused the young deacon,
But the deacon, fatigued, slept on.
Thus, the angel appeared again,
And again gave the same warning.
Again, the elder woke his deacon,
But a heavy sleep overpowered the deacon.
One moment he would awake,
The next moment he would be drowned in sleep.
A third time the angel appeared,
And issued a warning for the third time.
The elder perceived that this was not a deceit,
But verily a warning from God.
The saint leaped up and lifted the deacon,
And out of the inn they walked.
As soon as they walked out of the inn,
The entire house was destroyed down to its very foundation.
All who were in it perished
Because of their secret transgressions.
The young deacon was filled with fright,
But the saint was silent in prayer.
To the Most-high God they offered thanks,
And continued on their way under the stars.
! REFLECTION
St. Polycarp writes the following to the Philippians about a priest Valentine who fell into the sin of avarice and secretly hid money belonging to the Church: "I am deeply saddened because of Valentine, who at one time was a presbyter among us, because he has forgotten the rank bestowed upon him. That is why I beg you, beware of greed and remain pure and just. Restrain yourself from every vice. He who cannot restrain himself, how will he be able to teach others restraint? He who submits to avarice pollutes himself with idolatry and numbers himself among the ranks of pagans. Who is not aware of God's judgement? As Paul teaches: //Do ye not know that the saints shall judge the world?//(1 Corinthians 6:2). I have not noticed anything similar among you, neither have I heard anything among you, with whom the Blessed Paul lived a life of asceticism and whom he praises at the beginning of his Epistle to the Philippians. He boasts of you throughout the churches, which knew God when we did not yet know him (i.e., Polycarp and the inhabitants of Smyrna.) Brethren, that is why I am very saddened because of Valentine and his wife. May God grant them true repentance. And you, be prudent in this and //count not him as an enemy// (2 Thessalonians 3:15), but endeavor to correct them as suffering and prodigal members, that your entire body may be sound. Acting thus, you build yourselves up." Thus the saints dealt with sinners: cautiously and compassionately--cautiously to prevent others from a similar sin, and compassionately in order to correct and save sinners.
! CONTEMPLATION
Contemplate the Lord Jesus in conversation with the woman of Samaria (John, Chapter 4):
# How the woman's mind was at first smothered completely by carnal sophistry;
# How the meek Lord gradually led her mind toward a loftier and more spiritual reasoning;
# How this encounter culminated in the conversion of many to Christ;
# How the seeds scattered by the Lord at first seem to decay in the physical mind, and how later they resurrect, grow, ripen and bring forth much spiritual fruit.
! HOMILY
! on the works of Christ
"For the works which the Father hath given Me to finish, the same works that I do, bear witness of Me, that the Father hath sent Me" (John 5:36).
Brethren, what are these works of Christ? These are the works of the Householder Who returned from a journey and found the home robbed and desolate. These are the works of the Physician Who entered into the most contaminated hospital, brought medicines and began to heal. Furthermore, these are the works of the King Who returned to his country and found it divided and ruined, and His subjects as slaves in a strange land. These are the works of the Elder Brother Who journeyed to a distant land to seek His younger brother who, wandering and prodigal, had become impoverished and wild. These are also the works of the Healer, Shepherd, Hero and Provider. Truly, these are not minor works! An ordinary man with the greatest worldly knowledge, skill and courage would not be able to accomplish even in three thousand years those works which Christ completed in three years. Not only one man, but all men of all times together, would not be able to complete the works of Christ in all eternity.
How did the Lord accomplish so many works? He accomplished them with the aid of five main miracles: His humility, His words, His deeds, His blood, and His resurrection.
What do the works of Christ witness? The works witness first of all that the earth did not send Him, but heaven; second, that an angel did not send Him, but the Heavenly Father Himself; third, that for such works no one is sufficient except Him Who is as great as God, as wise as God, as almighty as God, as merciful as God--yes, Who is Himself equal to God.
Oh, how insignificant are all of our works compared to the works of Christ! With only one grain of Christ's goodness and zeal, diligence and truthfulness, we can complete our work perfectly. Grant us that grain, O Lord Jesus, for we on earth can neither find this grain nor merit it.
To Thee be glory and praise forever. Amen.
! THE FINDING OF THE HEAD OF SAINT JOHN THE BAPTIST
The great and glorious Baptist John was beheaded at the wish and instigation of the wicked Herodias, the wife of Herod. When John was beheaded, Herodias ordered that his head not be buried with his body, for she feared that this awesome prophet would somehow resurrect. Therefore, she took his head and buried it deep in the ground in a secluded and dishonorable place. Her maidservant was Joanna, the wife of Chuza, a courtier of Herod. The good and devout Joanna could not tolerate that the head of the man of God should remain in this dishonorable place. Secretly she unearthed it, took it to Jerusalem and buried it on the Mount of Olives. Not knowing of this, King Herod became frightened when he learned of Jesus and how He worked great miracles, and said: //It is John, whom I beheaded: he is risen from the dead//(Mark 6:16). After a considerable period of time, an eminent landowner came to faith in Christ, left his position and the vanity of the world and became a monk, taking the name Innocent. As a monk, he took up his abode on the Mount of Olives, in the exact place where the head of the Baptist was buried. Wanting to build a cell for himself, he dug deep and discovered an earthen vessel containing a head, which was mysteriously revealed to him to be the head of the Baptist. He reverenced it and reburied it in the same spot. Later, according to God's providence, this miracle-working head traveled from place to place, then sank into the darkness of forgetfulness and was again rediscovered. Finally, at the time of Patriarch Ignatius, during the reign of the pious Empress Theodora (the mother of Michael and the wife of Theophilus), it was translated to Constantinople. Many miraculous healings occurred from the head of the Forerunner. It is important and interesting to note that, while he was still alive, //John did no miracle// (John 10:41), but that his relics have been endowed with miraculous power.
! THE VENERABLE ERASMUS
Erasmus was a monk in the Monastery of the Kiev Caves. He inherited great wealth from his parents and spent it all on adorning churches, especially on silver-plating and gilding icons. When he had become impoverished and was left without anything, he was despised by all. The devil whispered to him that he squandered his estate in vain: instead of distributing his wealth among the poor, he had given it for the adornment of churches. Erasmus succumbed to this temptation and believed it. Because of this he came to despise himself, fell into a state of despair and began to live aimlessly and lawlessly. When the hour of his death approached, the brethren assembled around him and discussed his sins, of which he himself was not conscious. All at once he straightened up in bed and said: "Fathers and brothers, it is as you say: I am sinful and unrepentant, but behold, Saints Anthony and Theodosius appeared to me, and after that the All-holy Mother of God, and they told me that the Lord has given me more time for repentance." The Mother of God also spoke these encouraging words to him: "The poor you have with you in every place, but my churches you do not." Erasmus lived for three more days, repented and fell asleep in the Lord. This teaches us that zeal for the Church and adornment of the churches is a task pleasing to God. St. Erasmus reposed in the year 1160 A.D.
! HYMN OF PRAISE
! SAINT JOHN THE BAPTIST
To John, let us pray:
The glorious Baptizer,
The trumpet of the Savior,
The servant of the Creator,
Sent by God to help us
However he can.
To John, awesome and holy,
Let us pray,
So that through him
God the Most High will help us.
Help us, O John,
Wherever danger threatens!
To preserve the Faith,
O John, help us:
That we may be bread
All our days and unto the end,
That in every sheaf we may see,
The footstep of God!
When night falls, let it dawn.
O John, help us sinners,
That we may repent
Before we reach the end,
Before the Day of Judgment dawns,
O John, help us!//)
--------------------
//) A traditional Serbian toast honoring St. John the Baptist.--//Trans.//
! REFLECTION
Those who do everything for us according to our will are neither our good teachers nor our good friends. St. John Moschus writes about a prominent woman of a senatorial family who visited the Holy Land. Arriving in Caesarea, she decided to remain there and turned to the bishop with this request: "Give me a maiden to teach me the fear of God." The bishop introduced her to a humble virgin. After a period of time, the bishop met that woman and asked her: "How is the virgin to whom I introduced you?" "She is good," replied the woman, "but she is of little benefit to my soul, because she is humble and allows me to do my own will. I need her to reproach me and not allow me to do whatever I want." The bishop then gave her another girl, of a very coarse character, who began to rebuke the woman, calling her a senseless rich woman and the like. After some time, the bishop again asked the woman: "And that maiden, how does she conduct herself with you?" "She truly benefits my soul," replied the senator's wife. And so she became very meek. (Excerpted from //The Spiritual Meadow //by St. John Moschus.)
! CONTEMPLATION
Contemplate the Lord Jesus as a stumbling block:
# For sinful self-conceit, i.e., for the perverted mind of mankind, which thinks in a sensual and fleshy way and opposes the mind of Christ;
# For sinful self-love, i.e., for the perverted heart of man which does not accept in itself either the love of God or the love of man;
# For sinful self-will, i.e., for the perverted will of man, which opposes the will of God.
! HOMILY
! on repentance and the forgiveness of sins
"And that repentance and remission of sins should be preached in His name" (Luke 24:47).
This is the final instruction of the Savior to the holy apostles. In these words, as in a nutshell, is contained the Gospel of reconciliation between God and men. What does God seek from men and what does God give them? He seeks repentance, and He grants forgiveness of sins. He seeks little, but He gives all. Let men only repent for sins committed and cease sinning, and men will receive all from God--all, not only all that their hearts could desire, but even more, much more. In truth, everything is promised to the righteous. The righteous will be the inheritors of the Kingdom of God, they will be the sons of God, and they will be the children of light, the children of immortality, companions of the angels, brothers of Christ. The righteous will have an abundance of life, peace, wisdom, power, and joy. The righteous will have all, for all has been promised to them.
Let men only repent, and they will receive all. Let the beggar only cleanse himself, bathe himself and clothe himself in purity before the doors of the royal court, and he will be immediately ushered into the royal court. There he will be met and embraced by the King, and he will have all. He will live with the King, and sit at the royal table; he will have all, all, all!
O my brethren, these are not only words, rather this is the living and holy truth. For we know that many penitents, both female and male, received all of this that was promised. Many have appeared from the other world and have proved the truth of these words, witnessing to how they now live as royal sons and daughters. But they repented in time; and there yet remains time for us to repent, if we desire to be together with them as the heirs of the Kingdom.
O Merciful Lord, help us to repent before death, in order that we may live eternally.
To Thee be glory and praise forever. Amen.
! SAINT TARASIUS, PATRIARCH OF CONSTANTINOPLE
His predecessor, Patriarch Paul, secretly relinquished the throne, entered a monastery and received the schema [The Great Angelic Habit]. Irene and Constantine VI reigned at the time. By Paul's counsel, Tarasius, who was then a senator and royal advisor, was chosen to be patriarch in the year 783 A.D. He was quickly raised through the ecclesiastical ranks and consecrated as patriarch. A man of great learning and great zeal in the Orthodox Faith, Tarasius reluctantly accepted this rank in order to help Orthodoxy in the struggle against heresies, especially against iconoclasm. During his reign the Seventh Ecumenical Council [Nicaea, 787 A.D.] was convened. There iconoclasm was condemned, and the veneration of holy icons was confirmed and restored. Tarasius was very charitable toward orphans and the poor, creating shelters and distributing food to them. Toward the powerful, Tarasius was decisive in his defense of faith and morals. When Emperor Constantine banished Maria, his lawful wife, and took a kinswoman to live with him, he sought a blessing for marriage from the patriarch. Tarasius not only refused him a blessing but first counseled him, then reproached him, and finally forbade him to receive Holy Communion. Before his death, many saw how Tarasius replied to the demons, saying: "I am not guilty of this sin; neither am I guilty of that sin," until his weakened tongue could not longer speak. He then began to defend himself with his hands, driving away the demons. When he reposed, his face lit up like the sun. This truly great hierarch died in the year 806 A.D. He governed the Church for twenty-two years and four months.
! THE VENERABLE PAPHNUTIUS OF KEPHALA
This great saint was a contemporary of St. Anthony the Great. It is said about him that he wore the same robe [cassock] for eighty years. St. Anthony greatly respected him and used to say to all that Paphnutius was a true ascetic, who was able to heal and save souls.
! HYMN OF PRAISE
! TO GOD THE CREATOR
The Creator radiant, crowned with light,
Described by no one, expressed by nothing:
He raises the wise builders of the Church,
Zealous defenders and good shepherds.
He permits sufferings, because of our sins,
Even though in essence He is Mercy and Goodness.
Just as He prepares the unworkable earth with bitter frost,
Making it workable and ready for crops,
In the same way He mellows our hearts with bitter sufferings,
But by His tender hand leads all to good.
Through the darkness of sin, He gazes into the light,
And after a designated time He no longer permits the darkness to linger.
He discerns joy through sorrow and tears.
He sees the end of every beginning,
For He began all, desires to complete all.
Who will oppose Him when He commands?
One would say He is weak, for He adroitly conceals Himself:
With a shadow of a deed, He conceals and blocks the view of Himself.
When the shadow passes and the world reaches its end,
And the Church triumphant is lifted to heaven,
Then the Sun of Righteousness, which is never extinguished,
Will cover Himself with the Church, as with porphyry.
! REFLECTION
A Christian is similar to a betrothed maiden. As a betrothed maiden continually thinks about her betrothed, so the Christian continually thinks about Christ. Even if the betrothed is far away beyond ten hills, it is all the same: the maiden behaves as though he is constantly by her and with her. She thinks about him, sings to him, talks about him, dreams about him and prepares gifts for him. A Christian behaves in the same way toward Christ. As the betrothed maiden knows that she first must leave and distance herself from the home where she was born to meet and totally unite with her betrothed, so the Christian knows that he cannot totally unite with Christ until death separates him from the body, that is, from the material home in which his soul resides and has grown from birth.
! CONTEMPLATION
Contemplate the Lord Jesus sitting in the boat, teaching the people on the shore! (Mark 4:1).
# How a great multitude of people crowded around to hear Him, so that He had to enter the boat;
# How He taught them in parables about the sower, the seed and the ground, i.e., by those comparisons and examples which, day in and day out, have been repeated from the beginning of the world and will be repeated until the end;
# How He does not teach them with the aid of some rare and strange events, but with ordinary ones, which entered into time along with man and will exit time along with him.
HOMILY!
on the impossibility of secrets!
"For there is nothing hid, which shall not be manifested" (Mark 4:22).
All the secret works of man will be revealed one day. None of man's works can be hidden. The Jews thought that they could conceal from God the slaying of so many prophets, and that their bloody, villainous deed against Christ could be hidden from God and man. However, that which they thought to hide has become a daily and nightly tale, both in the heavens and on earth for thousands of years.
Judas thought to hide the traitorous agreement he had made against his Lord, but the Lord discerned this agreement and declared it to his face. //Jesus said to him, 'Judas, betrayest thou the Son of Man with a kiss?//' (Luke 22:48).
The Lord also discerned the hearts of the Pharisees and read their evil thoughts. //Wherefore think ye evil in your hearts?// (Matthew 9:4). What works, what things, what events in this world can be hidden from Him Who sees and reveals even the most secret thoughts in the hearts of men?
//For there is nothing hid, which shall not be manifested.// Because of this we need to fear, and because of this we need to rejoice. To fear--for all of our secret evil deeds, evil desires and evil thoughts will be brought out into the open. To rejoice--for all the good that we have performed, desired or thought in secret will be brought out into the open. If it is not brought out into the open before men, it will be brought out before the heavenly angels. The greater the fear for sinners, the greater the joy for the righteous.
O Lord, Lover of mankind, forgive us our sins and do not announce them for our destruction and to the sorrow of Thy holy angels.
To Thee be glory and praise forever. Amen.////
! SAINT PORPHYRIUS, BISHOP OF GAZA
This great archpastor was born of wealthy parents in Thessalonica. From his youth until age twenty-five, Porphyrius remained in his birthplace. Afterward he left his parents and worldly life and withdrew to the wilderness of Egypt. Under the guidance of an experienced spiritual father, the young Porphyrius was tonsured a monk and remained there for five years. He then visited the Holy Land in the company of the monk Mark, his faithful companion. In the proximity of Jerusalem he lived as an ascetic in a cave, again for five years. But then Porphyrius's legs became weak, and he was unable to walk. Nevertheless, crawling on his knees, he continually attended the divine services. One night the Lord appeared to him in a vision and cured the infirmity in his legs, and he became completely whole. When he was elected Bishop of Gaza, Porphyrius accepted this obligation with a heavy heart. In Gaza he found only 280 Christians. All the other inhabitants were fanatical idolaters. Only by his great faith and patience did Porphyrius succeed in converting the inhabitants of Gaza to the Christian Faith. He personally traveled to Constantinople to see Emperor Arcadius and Patriarch John Chrysostom, to seek their support in this unequal struggle with the idolaters. He received the desired support. The idolatrous temples were closed and the idols destroyed; then he built a beautiful church with thirty marble columns. Empress Eudocia especially assisted in the building of this church. Porphyrius lived long enough to see the entire town of Gaza converted to the Christian Faith, but only after many struggles, sufferings and prayerful tears to God. He died peacefully in the year 421 A.D. He was a miracle-worker both during his life and after his death. Even today, his relics repose in Gaza.
! THE HOLY MARTYR JOHN KALPHA [THE BUILDER]
This saint was born in Galata in Constantinople. By occupation he was an architect, a builder (Kalpha means "architect"). By his ardent confession of the Christian Faith, John offended the Turks, who pressured him to become a Moslem. "I will not deny my Sweet Jesus Christ," John bravely replied. "In Him do I believe; Him do I serve; Him do I confess." Following severe tortures, the Turks beheaded him on February 26, 1575 A.D. in Constantinople. He suffered honorably for his beloved Christ and took up his habitation in the mansions of the Lord.
! HYMN OF PRAISE
! SAINT PORPHYRIUS THE PARALYTIC
The monk Mark asks Porphyrius:
"You were a paralytic, holy father;
On your knees, to church, you crawled,
You held my hand in yours.
So it was yesterday, but today all is different!
Last night you were ill, and behold, you awoke healthy.
Who healed you so suddenly?
Tell me the name of your rare physician."
To Mark, Porphyrius replied:
"My Creator is my Healer.
Last night on Golgotha, I fell asleep,
Completely overpowered by severe pain.
As though in reality, I saw clearly in a dream
My Lord hanging on the Cross,
And on the other cross, the thief.
As I saw, so I cried out!
'O God and Lord, remember me,
In Thy Kingdom, remember me!'
The Good Lord said to the thief:
'Go down and heal his body,
As I healed your soul.'
Quickly, the thief descended the cross,
Embraced me, kissed me, and raised me up,
Saying: 'Draw near to our Savior!'
At that moment, the Lord also descended the Cross,
Lifted the Cross and placed it on me.
'Receive the Holy Wood,' He said,
'Carry it for the sake of eternal salvation.'
As soon as I grabbed the Cross with my hands,
Immediately I stood and was made whole.
Glory be to God my Creator,
Glory be to Christ my Savior!"
! REFLECTION
St. John Chrysostom writes the following against those who create a disturbance in church and depart therefrom church before the completion of the divine services: "Some do not approach Holy Communion with trembling but with commotion, shoving one another, burning with anger, hollering, scolding, pushing their neighbor and being full of disturbance. I have often spoken about this, and will not cease to speak. Do you not see what good order prevails at the pagan Olympic games, when the Master of Ceremonies passes through the arena with a wreath on his head, dressed in a lengthy garment, holding a staff in his hand, and the Crier declares that there be silence and order? Is it not obscene that there, where the devil reigns, there is such silence, and here, where Christ invites us to Himself, there is such an uproar? Silence in the arena, and an uproar in the church! Calm on the sea, and a tempest in the harbor! When you are invited to a meal, you must not leave before the others, even if you have finished before them. Yet here, while the awesome Mysteries of Christ are being celebrated, while the priestly functions still continue, you leave in the middle and exit? How can this be forgiven? How can this be justified? Judas, after receiving Communion at the Last Supper that final night, departed quickly while the others remained at the table. Behold, whose example do they follow who hurry to depart before the final blessing? (Homily on the Feast of Theophany).
! CONTEMPLATION
Contemplate the Lord Jesus in the boat with His disciples (Matthew 8:24).
# How a tempest arose while the Lord slept;
# How the frightened disciples woke Him and sought His help;
# How the Lord rebuked the disciples because of their little faith, and calmed the sea and the winds;
# How I need not be afraid of any tempest in life if I keep the Lord in my heart as at the rudder of a boat. (The body--the boat; the heart--the rudder).
! HOMILY
! on internal charity
"But rather give alms of such things as ye have; and, behold, all things are clean unto you" (Luke 11:41).
External cleanliness becomes a man. But that is a lesser cleanliness. Internal cleanliness is incomparably more important than external cleanliness. That is a greater cleanliness. A dish can be used only if it is washed and clean on the inside, even though the outside is dark and sooty. If a glass is dirty on the inside, its external cleanliness will never attract anyone to drink from it. If a bowl is dark and ashy on the inside, who will dare to eat from it? In the world there are many more teachers and many examples of external cleanliness than there are of internal cleanliness. For it is easier to teach and demonstrate external cleanliness than internal.
Behold, brethren, how the Teacher and Model of great cleanliness sets this great cleanliness in dependence on internal almsgiving. Almsgiving that is performed from the heart purifies a man's heart. Almsgiving that is performed from the soul cleanses a man's soul. Almsgiving that is performed from the entire mind cleanses a man's mind. In a word, internal almsgiving cleanses the entire man. If almsgiving is only from the hand, it does not cleanse the hand, much less the heart, soul and mind. Almsgiving from the hand is indispensable, but it cleanses the giver only when the heart moves the hand to almsgiving. Besides almsgiving from the hand, there exist other types of almsgiving. Prayer for people is internal almsgiving, as is sorrow for human pain and rejoicing for the joy of others. This is almsgiving which proceeds from the heart and creates cleanliness in the heart, soul and mind.
O All-pure Lord, help us, so that with true almsgiving we may acquire great cleanliness.
To Thee be glory and praise forever. Amen.
! THE VENERABLE PROCOPIUS OF DECAPOLIS
This saint was from Decapolis by the Sea of Galilea, for which reason he was called the Decapolite. In his youth he devoted himself to a life of asceticism and accomplished all the prescribed labors by which the heart is purified and the spirit is elevated to God. When the wicked Leo the Isaurian began his persecution of the icons and their venerators, Procopius rose up in their defense. He showed that the veneration of icons is not idolatry, for Christians know that by bowing down before icons they are bowing down not to lifeless matter, but to living saints who are depicted in the icons. Because of this, Procopius was arrested, brutally tortured, flogged and scrapped with an iron brush. When the wicked Emperor Leo was slain in the body--for he had lost his soul earlier--icons were restored in the churches, and Procopius returned to his monastery, where he spent the remainder of his days in peace. In his old age he was translated to the Kingdom of God. There he gazes with joy upon the living angels and saints, whose images on icons he honored on earth. He died peacefully in the ninth century.
! THE VENERABLE THALELAEUS
Thalelaeus was a Syrian ascetic. At first he resided in the Monastery of St. Sava the Sanctified near Jerusalem, but later he settled in a pagan cemetery known for appearances of evil spirits and monsters. In order to conquer fear within himself through faith in God, Thalelaeus settled in this cemetery, where he lived for many years, enduring many assaults from evil spirits both day and night. Because of his great faith and love for God, God endowed him with the gift of working miracles, through which he did much good for sick and suffering people. He reposed in about the year 460 A.D.
! THE VENERABLE TITUS OF THE MONASTERY OF THE KIEV CAVES
Titus was a priest and had a sincere love for Deacon Evagrius, as brother for brother. But as great as their love was in the beginning, it later became a mutual hostility and hatred sown by the devil. They hated each other so much that, when one would be censing in the church, the other would turn and walk out of the church. Titus attempted many times to reconcile with his antagonist, but in vain. Titus became ill and everyone thought that he was going to die. He begged them to bring Evagrius to him, that he might forgive him. Forcefully they dragged Evagrius to the bedside of Titus, but Evagrius broke free and fled, saying that he would not forgive Titus either in this world or the other world. As soon as he said this, he fell to the ground and died. Titus arose from his bed healthy and related how the demons had been hovering around him until he had forgiven Evagrius. When he forgave, the demons fled and attacked Evagrius, and angels of God surrounded Titus. Titus reposed in the year 1190 A.D.
! THE VENERABLE STEPHEN
At first Stephen was a palace official of Emperor Maurice. Later he left the palace service and, driven by love for Christ, built a charitable hospice for the aged in Constantinople. He reposed peacefully in the year 614 A.D.
! THE HOLY MARTYR JULIAN
Julian suffered so severely from gout that he was able neither to stand nor walk. Because of his faith in Christ, he was brought on a pallet before the judge. He was burned alive at the stake along with his disciple Chronion, in Alexandria during the reign of Emperor Decius.
! HYMN OF PRAISE
! FORGIVENESS
That God may forgive us, let us forgive men,
We are all on this earth as temporary guests.
Prolonged fasting and prayer is in vain
Without forgiveness and true mercy.
God is the true Physician; sins are leprosy.
Whomever God cleanses, God also glorifies.
Every merciful act of men, God rewards with mercy.
He who returns sin with sin perishes without mercy.
Pus is not cleansed by pus fron infected wounds,
Neither is the darkness of the dungeon dispelled by darkness,
But pure balm heals the festering wound,
And light disperses the darkness of the dungeon.
To the seriously wounded, mercy is like a balm;
As a torch, everyone rejoices in mercy.
The madman says: "I have no need of mercy!"
But, when he is overcome by misery, he cries out for mercy!
Men bathe in the mercy of God,
And that mercy of God wakens us to life!
That God may forgive us, let us forgive men,
We are all on this earth as temporary guests.
! REFLECTION
Whenever we are outside the grace of God, we are outside of ourselves. Compared with our grace-filled nature, we find ourselves in no better condition than an insane man compared with a healthy man. Only a blessed man is a natural man, i.e., a man of higher and unspoiled nature, in which the grace of God rules and governs. St. Simeon the New Theologian says: "A lamp, even if it is filled with oil and possesses a wick, remains totally dark if it is not lit. So it is with a soul that appears to be adorned with all the virtues: if it does not have the light and the grace of the Holy Spirit, it is extinguished and dark" (Homily, Number 59). As the great Apostle also says: //By the grace of God I am what I am //(1 Corinthians 15:10). However, to be without grace means to be alienated from God and alienated from the reality of our own individual being. Our being, our personality, confirms our reality and receives its fullness only in nearness to God. That is why we must look at sinners as we look upon the sick: as weak shadows, without reality and without a mind.
! CONTEMPLATION
Contemplate the Lord Jesus as the Vine: //I am the true Vine// (John 15:1):
# As the Vine from which sprouted numerous fruitful branches in the persons of the saints;
# As the Vine Who with His sap, that is, His blood, waters and feeds all the branches with Himself;
# As the Vine from Whom the Divine Church has branched out on earth and in the heavens;
# As the Vine from Whom I too should not separate the branch of my life.
! HOMILY
! on the power of Him Who resurrects the body
"Destroy this temple, and in three days I will raise it up" (John 2:19).
Here the Lord speaks about the temple of His body. //Destroy this body and in three days I will raise it up!// Thus speaks One Who knows His might and Who, according to His might, fulfilled His words. For His body was destroyed, broken, pierced, buried and covered with darkness for three days. And on the third day He raised it: raised it not only from the grave on earth but raised it up to the heavens. And so He spoke the word and His word came to pass.
The Lord gave a sign to the Jews, for they sought a sign from Him. And when He gave them a sign, such as no one else before Him had been able to give, they did not believe Him. Instead, confused and frightened, they bribed the guards from Golgotha to swear falsely and to proclaim the lie that this miraculous sign had not occurred, and that His disciples had stolen His body from the tomb!
No sign whatsoever helps those who do not want to believe. With their own eyes, the Jews witnessed the many miracles of Christ; but nevertheless they did not want to believe. They justified their unbelief, saying that He performed these miracles //through the prince of the devils// (Matthew 9:34). Whoever does not want to believe in good, all the signs that heaven can give will not help him. A heart filled with evil is harder than granite. A mind darkened by sin cannot be illuminated by all the light of heaven, whose light is greater than a thousand suns.
When man expels evil from his heart and delivers his mind from the darkness of sin, then he sees the numerous signs that God gives to those who want to believe--who see and believe.
O my brethren, let us not sin against the mercy of God and let us not succumb to the evil of the Jews. O my brethren, all the signs have already been given, and they all glitter as the stars in the heavenly firmament upon all who have a good heart and a right-thinking mind.
! O Wonderworking Lord, to Thee be glory and praise forever. Amen.
! THE HIEROMARTYR [PRIESTLY-MARTYR] PROTERIUS
This saint was a presbyter in Alexandria at the same time Dioscorus the heretic was Patriarch of Alexandria. Dioscorus was one of the leaders of the Monophysite heresy, which taught that there is one nature in Christ [human] and not two natures [human and divine]. At that time Marcian and Pulcheria were on the imperial throne. This holy and devout man, Proterius, stood up against Dioscorus for which he endured much misery. Then the Fourth Ecumenical Council [Chalcedon, 451 A.D.] was convened, at which the Monophysite heresy was condemned. Dioscorus was removed from the patriarchal throne and exiled. Proterius, this right-believing man, was elected in his place. He governed the Church with zeal and love--as a true follower of Christ. However, the followers of Dioscorus did not cease to create a disturbance in Alexandria. At the time of one such bloody disturbance, Proterius left the city with the intention of staying away temporarily. Along the way, the Prophet Isaiah appeared to him in a vision and said: "Return to the city, I am waiting to take you." Proterius returned to Alexandria and entered the church. Upon learning of this, the enraged heretics rushed into the church, seized the patriarch and stabbed him all over with knives. Six other Christians were also slain with Proterius. Thus Proterius, this wonderful shepherd of Christ's flock, received a martyr's wreath for the truth of Orthodoxy, in the year 457 A.D.
! SAINT BASIL THE CONFESSOR
Basil was a companion and fellow sufferer with St. Procopius of Decapolis. Basil faithfully followed his teacher Procopius, both in peaceful times and in times of persecution. He endured much torment from the iconoclasts. When the iconoclasts were defeated, Basil, according to God's providence, returned to his monastery together with Procopius. There he lived a long life of asceticism in fasting and prayer. He died peacefully in the year 747 A.D.
! THE HIEROMARTYR [PRIEST-MARTYR] NESTOR
Nestor was the bishop of Magydos [in Pamphylia]. He was distinguished by his great meekness. During the reign of Decius, he was brought to trial and cruelly tortured for Christ. Before his death, he saw in a vision a sacrificial lamb, which he interpreted as a sign of his impending sacrifice. He was tortured by the Eparch Publius and in the end was crucified in Perga [the capital of the province] in the year 250 A.D.
! BLESSED NICHOLAS, FOOL-FOR-CHRIST OF PSKOV
Nicholas lived as a fool-for-Christ in the town of Pskov during the reign of Tsar Ivan the Terrible, and died on February 28, 1576 A.D.
! HYMN OF PRAISE
! TWO NATURES
The Lord united two natures;
He does not separate them anymore:
Human and Divine.
He does not separate them anymore:
God and Man--One Person.
In both respects undiminished,
The God-man and Savior,
The Unifier of that which was separated,
The Interpreter of the eternal mysteries,
The Founder of the Kingdom of the saints.
God came closer to man,
Eternity descended, time was lifted up.
Of the Holy Trinity, Christ is the trumpet;
Of the two natures, Christ is the mystery.
The true God became man,
Remained above and lowered Himself down.
He neither fell nor stumbled,
But wrapped Himself in flesh.
That is holy, pure love,
Love eternal, eternally the same.
He raised a giant with His small finger,
And this is incomprehensible to the mind.
! REFLECTION
Fools-for-Christ were distinguished by rare fearlessness. Blessed Nicholas ran through the streets of Pskov pretending insanity, rebuking the people for their hidden sins and prophesying that which would befall them. When Ivan the Terrible entered Pskov, the entire town was in terror of the terrible tsar. As a welcome to the tsar, bread and salt were placed in front of every home, but the people did not appear. When the governor of the town presented the tsar with bread and salt on a tray before the church, the tsar pushed the tray away, so that the bread and salt fell to the ground. Then, Blessed Nicholas appeared before the tsar in a long shirt tied with a rope, hopping around on a cane like a child. Then he cried out: "Ivanuska, Ivanuska, eat bread and salt and not human blood." The soldiers rushed out to catch him but he fled and hid. The tsar, learning about this Blessed Nicholas--who and what he was--visited him in his scant living quarters. It was the first week of Great Lent. Upon hearing that the tsar was coming to visit him, Nicholas found a piece of raw meat. When the tsar entered his cell, Nicholas bowed and offered the meat to the tsar. "Eat Ivanusha, eat!" Angrily, the terrible tsar replied: "I am a Christian and I do not eat meat during the Fast." Then the man of God quickly responded to him: "But you do even worse: you feed on men's flesh and blood, forgetting not only Lent but also God!" This lesson entered deeply into the heart of Tsar Ivan, and he, ashamed, immediately departed Pskov, where he had intended to perpetrate a great massacre.
! CONTEMPLATION
! Contemplate the Lord Jesus as the Bread of Life: //I am that Bread of Life// (John 6:48):
# As the Bread by which the soul is nourished and lives;
# As the Bread by which the mind is nourished and enlightened;
# As the Bread by which the heart is nourished and ennobled.
! HOMILY
! on the nourishment of the soul
"I am that Bread of Life " (John 6:48).
Thus spoke the Lord Jesus to the hungry human race. These words have been proved throughout the centuries to Christ's innumberable followers, who have received the Lord as the nourishment of their souls. A desperate young man who was close to suicide confessed to a spiritual father. The spiritual father listened to him carefully and said to him: "My son, you are to blame for your misfortune. Your soul is starved to death. Throughout your entire life, you learned only how to nourish your body, but you never thought that the soul requires greater and more frequent nourishment than the body. Your soul is on the verge of dying from hunger. My son, eat and drink Christ [Holy Communion]. Only this can restore your soul from death. Every day eat and drink of Christ. He is the Life-creating Bread of our souls." The young man obeyed the elder and returned to life.
Brethren, let us nourish our souls with Christ, that our souls may be alive and healthy. Let us continually nourish our minds with Christ's thoughts, that our minds might be enlightened and clear. Let us continually nourish our hearts with the love of Christ, that our hearts might be full and joyful. Let us continually nourish our wills with the commandments of Christ and the example of Christ, that our wills might perform good deeds every minute. Let Christ's thoughts be our thoughts and Christ's love be our love and Christ's good will be our good will. Let us continually nourish our souls with Christ the Lord; with our soul let us continually eat Him and drink Him! There is no more nourishing Bread than He; there is no sweeter drink than He. In Holy Communion, He gives Himself completely to us, Body and Blood. But Holy Communion is a reminder that our souls must continually be nourished by Him, continually eat Him and drink Him just as we continually breathe.
O our good and sweet Lord, stir up our souls that they may continually nourish themselves with Thee and remain alive. Thou art our Bread of Life.
To Thee be glory and praise forever. Amen.
! THE VENERABLE JOHN CASSIAN
John, this great spiritual father, was born in Rome of renowned parents. In his youth he studied all the secular sciences, especially philosophy and astronomy. Afterward he devoted himself completely to the study of Holy Scripture. Striving to go from good to better and desiring even higher levels of perfection, Cassian traveled from Rome to Constantinople to personally hear and see St. John Chrysostom. Chrysostom instructed him and ordained him a deacon. Benefiting much from the wise Chrysostom, Cassian traveled farther east, to learn even more and achieve greater perfection. He remained in Egypt, spending the longest time in Nitria among the famous spiritual athletes, from whom he learned the art of every virtue. He finally returned to the West and settled in the town of Marseilles. There he established two monastic communities--one for men and one for women. At the request of the monks, Cassian wrote many essays. Especially beneficial for lovers of the spiritual life is his work, "Eight Books on the Struggle Against the Eight Principle Passions" //(The Institutes of the Monastic Life)//. Of great importance is his essay against the heretic Nestorius. This essay was written at the request of Archdeacon Leo. He served our Lord faithfully and enriched many with his wisdom, then took up his habitation in eternal life in the year 435 A.D. The relics of St. John lie in Marseilles [France] even to this day.
! THE VENERABLE BARSANUPHIUS
Barsanuphius was born a pagan in Palestine. He was baptized in his eighteenth year and immediately was tonsured a monk, taking the name of John. When he became known for his virtuous life, Barsanuphius was elected Archbishop of Damascus. He did not remain long in this position. Yearning for the reclusive, ascetic spiritual life, he secretly left Damascus and went to the wilderness of Nitria. There he presented himself as the monk Barsanuphius. As an obedience, he was immediately assigned to be a water-carrier for the monastery. The former archbishop accepted this obedience with joy. By his wise discourse, his meekness and his diligence, Barsanuphius soon became a model to all the monks. Only before his death was it revealed to the monks who this Barsanuphius was. Thus this saint, by his example, served as a reproach to the proud and power-loving, and as a comfort to the humble and meek. He died peacefully and took up his habitation with the Lord in the year 457 A.D.
! HYMN OF PRAISE
! ST. JOHN CASSIAN ON THE PASSIONS
Cassian numbered eight terrible passions,
And yet there is a ninth--impure thoughts.
Gluttony in food and drink is the first,
Promiscuity in spirit and body is the second,
Avarice: a shackle, which ties one to metal,
Anger: the frost of man's heart, which freezes and constricts.
Melancholy: the insatiable worm, which eats at the soul.
Despondency: drowsiness, also called death of the soul.
Vanity: a serpent, a many headed serpent,
Which is everywhere and nowhere, concealed by the grass.
Pride: a double-edged sword that cuts and hews,
Mercilessly destroying both the young and old:
The vigorous ones become proud because of their strength,
And the spiritual elders become dear to themselves.
Against all these passions, our defense is God,
Through the prayers of the holy St. John Cassian.
! REFLECTION
St. John Cassian writes of the struggle with the spirit of lust in this manner: "The struggle with the spirit of lust is a bitter struggle, longer than other struggles, a daily struggle accomplished victoriously and completely by only a small number of people. This struggle begins with the first mature growth and does not cease until all the other passions are defeated. In this struggle, a twofold weapon is necessary. For the achievement of perfect and pure chastity, bodily fasting alone is not sufficient (although, before everything else, fasting is necessary). Along with this, meekness of the spirit and unremitting prayer are necessary against this most impure spirit. After that, continual study of Holy Scripture, together with prudent mental exercises, are necessary; then, physical labor and handiworks. All of these keep the heart from lusting and restore it to itself. Above all, profound and true humility are needed, without which victory can never be achieved over any passion. Victory over this passion is conditional upon the perfect purification of the heart--the vessel from which, according to the words of the Lord, flows the poison of this sickness: //For out of the heart proceed evil thoughts, murders, adulteries, fornications, thefts, false witness, blasphemies// (Matthew 15:19). One must have constant humility and patience in the heart, and carefully guard oneself from anger and other passions during the course of the day. For the more the fire of anger enters us, the easier the embers of lust penetrate us afterward." It is interesting that many other great spiritual fathers draw a causal connection between the passion of anger and the passion of lustful desire. From this it follows that the most angry ones are the most lustful ones.
! CONTEMPLATION
Contemplate the Lord Jesus as the vigilant Watchman over His Church (Matthew 28:20):
# How He watches over the entire created world and especially His Church acquired by His Blood;
# How He watches over every baptized soul, as a gardener watches over His plantings;
# How He leads His Church through tranquility and through tempest, leading her to ultimate victory;
# How He also watches over my life, that it may grow and be built into His Eternal Kingdom.
! HOMILY
! on the living presence of Christ
"I am with you always, even unto the end of the world" (Matthew 28:20).
Here is consolation beyond consolations!
Here is consolation for those broken by the tempest! Let them only remember that Christ is there beside them, and let them not be afraid. He is the Helmsman.
Here is consolation for those who are sick! Let them know that Christ is there beside their bed, and let them not despair. He is the Physician.
Here is consolation for those who grow old! Let them not lose sight of the fact that Christ travels with them through time to all eternity, into eternal youth, and let them be at peace.
Here is consolation for those who are tormented by men! Let them not think that they are abandoned, for Christ is with them in all suffering, in court and in prison, and let them rejoice. He is the Judge.
Here is consolation for those who are disturbed by evil spirits! Let them remember that Christ is the Conqueror of evil spirits, that He is on their side, and let them be strengthened. He is the Victor.
Here is consolation for all who seek the light of justice and truth! Let them believe that Christ is closer to their souls than their eyes, and let them adhere to His leadership. He is Light.
O my brethren, in truth, Christ is constantly with us as light is constantly with eyes that see. But it is to our sorrow if the eyes of our souls are closed, for then in vain does the light labor to encounter the pupils of our eyes! Oh, our sorrow and grief when we are not with Christ!
He goes out to meet us. Are we going out to meet Him? He wants to be with us. Do we want to be with Him? If we want consolation, we must be with Him every day, to the end of our lives.
O Lord, our only Consolation, do not leave us!
To Thee be glory and praise forever. Amen.
! SAINT SIMEON THE GOD-RECEIVER
During the reign of the Egyptian Emperor Ptolemy Philadelphus, Simeon was chosen as one of the famous Seventy, to whom was entrusted the task of translating the Bible from Hebrew into Greek [The Septuagint]. Simeon was performing his task conscientiously, but in the process of translating the book of the Prophet Isaiah he came upon the prophecy: //Behold, a virgin shall conceive, and bear a son//(Isaiah 7:14). He became confused and took a knife to remove the word "virgin" and replace it with the words "young woman," and thus to translate it into Greek. At that moment, however, an angel of God appeared to Simeon and restrained him from his intention, explaining to him that the prophecy is true, that it was correctly written. The messenger of God also said that Simeon would become convinced of it personally, for, according to the will of God, he would not die until he saw the Messiah born of the Virgin. The righteous Simeon rejoiced to hear such a voice from heaven, left the prophecy unchanged and thanked God, Who made him worthy to live and see the Promised One. When the young Child Jesus was presented in the Temple in Jerusalem by the Virgin Mary, the Spirit of God revealed this to Simeon, who was very old and "as white as a swan." Simeon quickly entered the Temple and there recognized both the Virgin and the young Child by the light that shone around their heads like a halo. The joyful Simeon took Christ into his hands and prayed to God to release him from this life: //Lord, now lettest Thou Thy servant depart in peace, according to Thy word: For mine eyes have seen Thy salvation //(Luke 2:29-30). Anna the Prophetess, the daughter of Phanuel, was also there; she too recognized the Messiah, and she proclaimed Him to the people. At that time Anna was eighty-four years old. St. Simeon died shortly thereafter. This righteous Elder Simeon is considered to be a protector of young children.
! THE HOLY MARTYRS ADRIAN AND EUBULUS
These two holy souls came from their home in Baneas in Caesarea of Cappadocia to visit, console and encourage the Christians imprisoned in the dungeon. However, they too were arrested and sentenced to death. Adrian was beheaded, and Eubulus was thrown to wild beasts, in the year 309 A.D. Thus, not grieving over this life, they honorably and joyfully entered into life eternal.
! HYMN OF PRAISE
! A PRAYER FOR A SMALL CHILD
O Powerful Lord, have mercy and save--
Do not extinguish this small flame with death!
This child is like the small flame of a candle,
And the winds of the world are terrible, even to the stars.
A weak fire is extinguished beneath the ashes,
As can be a human soul beneath Thy hand.
When the water rises and reaches the throat,
And the flame wanes and the fire becomes dampened,
O Lord, save, have mercy, and console us!
Thus, David the Prophet prayed to Thee.
Even though he was a great torch,
At the foot of heaven he was a weak child,
And from malicious desires he wavered in pain,
And from malicious thoughts his head began to ache;
Every wind of malice weakened him.
He would have been extinguished quickly from the turbulent winds,
If Thou hadst not saved him. O speedy Helper.
O Lord, have mercy and save us even now,
And do not extinguish this small flame with death!
Through the prayers, O God, of Thy beloved elder,
Holy St. Simeon, the wondrous God-receiver.
! REFLECTION
How great a glory in heaven was attained by St. Simeon the God-receiver, who held the Savior of the world in his hands! The following incident, as related in the life of St. Peter the Athonite (June 12), clearly shows this. As a commander during a battle, Peter was enslaved, chained and cast into prison in the town of Samara on the shores of the Euphrates River. Languishing in prison for a long time, Peter begged St. Nicholas with tears to pray to God for him, that he might be freed from prison, vowing that he would completely dedicate himself to God. St. Nicholas appeared to him in a dream, saying that although he [St. Nicholas] had prayed to God for him, God was delaying his deliverance because he [Peter] had earlier made a similar vow to God and had not keep it. And St. Nicholas further counseled Peter that he ought to pray to St. Simeon the God-receiver, "who is very mighty before God and stands close to the throne of God, together with the All-holy Virgin and St. John the Forerunner." Peter heeded the counsel of St. Nicholas and proceeded to pray to St. Simeon. Again St. Nicholas appeared to him with St. Simeon, not in a dream but in reality. Peter saw Simeon, glorious in appearance with light shining from his countenance. He was attired in the vestments of an Old Testament priest and bore a golden staff in his hand. St. Simeon said to Peter: "Do you want to fulfill the vow and become a monk?" To this Peter replied: "Yes, master, with God's help." Simeon then touched Peter's chains with his staff, and the chains melted like wax. Opening the doors of the dungeon, the saint led Peter from prison.
! CONTEMPLATION
Contemplate the Lord Jesus as the Cornerstone:
# As the Cornerstone in building personal character;
# As the Cornerstone in building the family and the nation;
# As the Cornerstone of every good-intentioned social transformation and inspiration of mankind.
! HOMILY
! on the Spirit of God, Who speaks through the Spirit-bearers
"Take no thought how or what ye shall speak ... For it is not ye that speak, but the Spirit of your Father which speaketh in you" (Matthew 10:19-20).
These are the words of Him Who knows all and Who declared to the world knowledge which was unknown before He visited mankind. If someone is filled with the Spirit of God, he does not speak from the spirit of man. Instead, the Spirit of God speaks from him and through him. He is only an instrument or a lyre of God's Spirit, through which God the Spirit speaks. When that kind of man speaks, he speaks infallibly and no one can find falsehood in his speech except those who, because of the perversion of their minds, consider truth as falsehood. How men speak when filled with the Spirit of God was clearly shown by the example of the prophets, and more clearly by the example of the apostles. So miraculous and unbelievable did the words of the apostles seem to strangers--that is, to those who bereft of the Spirit of God in themselves and who were only able to speak of the earth--that they considered the apostles to be intoxicated. In reality, all those people who were the first to speak about the hidden miracles of this physical world--the power of steam, magnetism, electricity, wireless telegraphy, and conversation at a distance--appeared intoxicated and foolish to the ignorant. How can spiritual men, when led by the Spirit of God and speaking about countless hidden mysteries of the spiritual kingdom, not seem intoxicated and foolish? Whoever humbles himself before God, him God makes powerful. The Spirit of God settles in a contrite heart and from there speaks through the mouth of man. This is confirmed not only by the prophets and apostles, but also by God's innumerable sons and daughters.
O Good Lord, do not refuse us Thy Holy Spirit.
To Thee be glory and praise forever. Amen.
! THE VENERABLE ISIDORE OF PELUSIUM
Isidore was an Egyptian by birth, the son of a prominent family, and the kinsman of the Alexandrian Patriarchs Theophilus and Cyril. Having studied all the secular disciplines, he renounced worldly riches and glory, and for the love of Christ he devoted himself completely to the spiritual life. He was a great and ardent defender and interpreter of the Orthodox Faith. According to the historian Nicephorus, St. Isidore wrote more than ten thousand letters to various individuals. In these he reproached some, counseled others, and comforted and instructed still others. In one letter St. Isidore wrote: "It is more important to teach by a life of doing good than to preach in eloquent terms." In another, he said: "If one desires that his virtues appear great, let him consider them small, and they will surely manifest themselves as great." The first and basic rule for St. Isidore was this: "First do and then teach, according to the example of our Lord Jesus." At the time of the persecution of St. John Chrysostom, when the entire population was divided into two camps--one for him and one against him--St. Isidore, this great pillar of Orthodoxy, sided with St. John Chrysostom. He wrote to Patriarch Theophilus that Chrysostom was a great light of the Church, and begged him to avoid rancor toward him. Isidore lived long and accomplished much, glorifying Christ God with his life and his writings. Isidore took up habitation in the Kingdom of Christ in about the year 436 A.D.
! THE VENERABLE NICHOLAS THE CONFESSOR
This saint was from the Island of Crete. He went to Constantinople to visit his kinsman, Abbot Theodore of the Studite Monastery. There he remained and was tonsured a monk. As a monk, Nicholas undertook ascetic labors for the sake of the salvation of his soul. During the persecution of the Church by Leo the Armenian, Theodore and Nicholas were cruelly tortured, humiliated, beaten with bullwhips, and finally thrown into prison. There they were imprisoned for three years. After the death of St. Theodore, Nicholas became abbot of the Studite Monastery. Even during his lifetime, he worked many miracles through the power and grace of God. Nicholas healed Eudocia, the wife of Emperor Basil, as well as Helen, the wife of the patrician Manuel. Nicholas blessed the newly born daughter of Theophilus Melisenus, a prominent nobleman whose other children had not survived birth, and he prophesied that she would live and be very fruitful. This prophecy came to pass, to the joy of the parents. On the very day of his death, Nicholas gathered the monastic brotherhood and asked them what they lacked. "Wheat," answered the monks. Then the dying man said: "He Who fed Israel in the wilderness will send you an ample supply of wheat within three days." And indeed, on the third day a boat full of wheat sent by Emperor Basil arrived below the monastery. Nicholas took up his habitation in the Heavenly Kingdom on February 4, 868 A.D., in the seventy-fifth year of his life.
! THE HOLY NEW MARTYR JOSEPH
Joseph was born in Allepo. Pressured by the Turks to embrace Islam, Joseph not only rejected this but also began to expose the falsehoods of Islam and to praise the Faith of Christ. For this, Joseph was tortured and beheaded in the year 1686 A.D.
! HYMN OF PRAISE
! A SACRIFICE OF THANKSGIVING
Render sacrifice to God, a sacrifice of thanksgiving,
O you who are wealthy by God's mercy!
He who is wealthy, with what he has, let him barter.
Let each with his own gifts the Kingdom acquire.
Whoever is overflowing with money, let him offer money;
Whoever has a bounty of wheat, let him distribute wheat;
Whoever is given wisdom, let him teach others;
Whoever's hands are strong, let him perform service;
Whoever knows a trade, let him honorably uphold it.
Let him conscientiously consider himself as a debtor to God.
Let him who knows how to sing, praise God.
Only he is small who does not know God.
With whatever one receives, with that let him serve;
With mercy toward men, let him repay God.
Not all are the same, nor do all possess the same,
But a pure heart, everyone can offer to God.
O purity of heart, a sacrifice worthy of wonder,
For salvation, you are the crucial virtue,
And on your sacrificial altar, your incense ascends,
Arriving more swiftly than anything before the Lord.
! REFLECTION
Impose upon yourself some form of penance [Epitimija] for the sins of others. If you have judged or punished someone, impose upon yourself a form of penance. You should also suffer voluntarily for the sins of sinners. This is pleasing to God. This mystery was known by the saints, who condemned themselves for the sins of others. Even non-Christian peoples perceived this mystery. There exists this custom in China: When an executioner beheads a criminal who is sentenced to death, he then approaches the judge and informs him that the verdict was carried out. The judge reimburses him with a silver coin because he has executed a criminal, and then he orders that he be given forty lashes for having killed a man. Christian saints profoundly understood the mystery of sin and human injustice. For the saints, every human sin has a history as long as the distance from Adam to us.
! CONTEMPLATION
Contemplate the Lord Jesus as Joy:
# As Joy that refreshes the whole spirit of man;
# As Joy that enlivens and strengthens in man all power toward good;
# As Joy from His name, Joy from His words, Joy from His works and Joy from His Spirit.
! HOMILY
! on the good fortune of Zacchaeus of little stature
"Today is salvation come to thy house" (Luke 19:9).
Thus spoke He Whose word is life, joy and the restoration of the righteous. Just as the bleak forest clothes itself in greenery and flowers through the breath of spring, so every man--regardless of how arid and darkened he is by sin--becomes fresh and youthful from the nearness of Christ. For the nearness of Christ is like the closeness of some life-giving and fragrant balsam that restores health, increases life, and gives fragrance to the soul, to the thoughts and to the words of man. In other words, distance from Christ means decay and death, and nearness to Him means salvation and life.
//Today is salvation come to thy house,// said the Lord upon entering the house of Zacchaeus the sinner. Christ was the salvation that came, and Zacchaeus was the house that He entered. Brethren, each one of us is a house in which sin dwells as long as Christ is distant, and to which salvation comes when Christ approaches. Nevertheless, will Christ approach my house and your house? That depends on us. Behold, He did not arbitrarily enter the house of the sinner Zacchaeus, rather He entered as a most desired guest. Zacchaeus of little stature climbed into a tree in order to see the Lord Jesus with his own eyes. Zacchaeus therefore sought him; Zacchaeus desired Him. We must also seek Him in order to find Him, and desire Him in order that He would draw nearer to us. Then, with our spirit, we must climb high in order to encounter His glance. Then He will visit our house as He visited the house of Zacchaeus, and with Him salvation will come.
Draw near to us, O Lord; draw near and bring to us Thine eternal salvation.
To Thee be glory and praise forever. Amen.
! THE HOLY FEMALE MARTYR AGATHA
Agatha, this glorious virgin and martyr for Christ, was born in the Sicilian town of Palermo of noble and wealthy parents. When Emperor Decius began a persecution against Christians, St. Agatha was arrested and brought to trial before the judge Quintian. The judge, seeing Agatha beautiful in countenance, desired to have her for his wife. When he suggested this, Agatha answered that she was the bride of Christ and could not be unfaithful to her Betrothed. Quintian subjected her to cruel tortures. Agatha was mocked, whipped, bound to a tree and flogged until blood flowed. After that, the judge again tried to persuade her to deny Christ and avoid any further torture and suffering. To this the bride of Christ replied: "These tortures are very beneficial for me. Just as wheat cannot arrive at the granary before it is cleansed from the chaff, so my soul cannot enter into Paradise if my body is not humbled by tortures beforehand." Then the torturer ordered that her breasts be cut off and that she be cast into prison. St. Peter appeared to Agatha in prison and restored her to health and wholeness of body. Again Agatha was led out for torture, and again she was cast into prison, where she gave up her soul to God in the year 251 A.D. in the town of Catania, during the reign of Emperor Decius. After her death, the torturer Quintian departed for Palermo to usurp her estate. However, along the way his horse and the horses of his soldiers became wild with rage. Quintian was bitten on the face, thrown to the ground and trampled to death. Swift was the punishment of God for the savage crime perpetrated against St. Agatha.
! THE HOLY FEMALE MARTYR THEODULA
Theodula suffered for Christ during the reign of the wicked Roman Emperor Diocletian. During her torture Theodula brought one of her torturers, Heladius, to his senses and converted him to the Christian Faith. When Heladius openly confessed his faith in Christ, he was beheaded. Theodula behaved very courageously at her trial, because of which the judge called her deranged. To this Theodula replied: "It is you, who have forgotten the One True God and bow down before lifeless stones, who are deranged." The judge then subjected Theodula to cruel tortures, which she heroically endured. By her heroism while suffering torture, she astonished many and converted them to Christ. Among those were two distinguished citizens: Macarius and Evagrius. With these two and many others, Theodula was thrown into a fiery furnace, where they all died honorably and were made worthy of the Kingdom of Christ.
! SAINT POLYEUCTUS, PATRIARCH OF CONSTANTINOPLE
Because of his great mind, religious zeal and eloquence, Polyeuctus was called a "second Chrysostom." During the time Patriarch Polyeuctus governed the Church and Emperor Constantine Porphryogenitus ruled the empire, the Russian Princess Olga traveled to Constantinople and was baptized in the year 957 A.D. The patriarch baptized her, and the emperor was her godfather. St. Polyeuctus said to her prophetically: "Blessed are you among Russian women, for you have loved light and cast off darkness. The sons of Russia will bless you to the last generation." From among the simple monks, Polyeuctus was elevated to the rank of patriarch in the year 946 A.D. He remained on the patriarchal throne until his death in 970 A.D.
! HYMN OF PRAISE
! SAINT AGATHA
Dark is the dungeon, radiant is the martyr,
In the darkness, St. Agatha shines.
Over the courtyard of the dungeon, drenched in light,
There the tormentor lives, covered with shame,
Thinking up new tortures for the virgin Agatha.
He torments himself and contemplates, darkened in the midst of light.
The dungeon is bright for whoever is wedded to Christ,
While the palace is a place of despair to the enemy of justice!
--------------------
! SAINT THEODULA
Dark is the dungeon; radiant is the martyr.
As soon as she heard of Christ,
St. Theodula, the pure dove, followed Him.
Because of Christ, the mob drove her into darkness,
But joyfully Theodula stands,
Joyfully stands, not fearing anyone,
While her enemies, filled with malice
And in wretched despair in the midst of the enchanting palace,
Think only of evil and serve only malice.
Everything for them is empty, and about everything they complain,
For they do not possess God, for they know not Christ.
Erroneously they read all the mysteries of life!
! REFLECTION
The monks asked the great Abba Ischyrion: "What have we done?" "We have fulfilled the commandments of God," Ischyrion replied. "And what will those do who come after us?" "They will do what we do, but only half as much." "And those after them?" "Before the end of time, they will not keep the monastic rule, but such misfortunes and temptations will befall them that, through their patience during those assaults and temptations, they will prove themselves greater than us and our fathers in the Kingdom of God."
! CONTEMPLATION
Contemplate the Lord Jesus as the only true Enlightener:
# As the Enlightener of every individual man;
# As the Enlightener, consequently, of both society and all mankind;
# As the Enlightener Who enlightens the mind, the heart and the will of man with eternal light.
! HOMILY
! on death as sleeping
"Our friend Lazarus sleepeth; but I go, that I may awake him out of sleep" (John 11:11).
The Lord of life calls death sleep. Oh, what an inexpressible comfort that is for us! Oh, what sweet news for the world! Physical death, therefore, does not mean the annihilation of man, but merely a sleep from which only He can wake man--He Who woke the first dust to life by His word.
When the Lord cried out, "Lazarus!" (John 11:43), the man awoke and lived. The Lord knows the name of each of us. If Adam knew the names of every creature of God, why would not the Lord know each one of us by name? Not only does He know, but He also calls us by name. Oh, the sweet and life-creating voice of the only Lover of mankind! This voice can create sons of God from stones. Why, then, can He not rouse us out of our sinful sleep?
It is told that a certain man raised a stone to kill his brother, but at that moment it seemed to him that he heard the voice of his mother calling him by name. He merely heard the voice of his mother, and his hand began to quiver. He dropped the stone and was ashamed of his evil intention. The voice of his mother woke him from committing a deadly sin. If the voice of a mother saves and awakens from death, how much more does the voice of the Creator and Life-giver!
Whenever the Lord cried out to someone who was physically dead, the person awoke and arose. But not everyone among those who were spiritually dead awoke and arose when the Lord cried out to them. For this awakening, for this resurrection, the agreement of the will of the deceased is necessary. //Judas, betrayest thou the Son of Man with a kiss?//(Luke 22:48). That is how the life-creating voice cried out, but the dead man [Judas] remained dead, and the sinner did not awaken. //Saul, Saul, why persecutest thou Me?// (Acts of the Apostles 9:4). The same life-creating voice cried out and he who was asleep in sin awoke, and the dead man came to life. In truth, deeper is the sleep of sin than the sleep of death, and the one who is asleep in sin does not easily awaken.
O Sweet Lord, wake us from the sleep of sin; wake us, O Lord!
To Thee be glory and praise forever. Amen.
! SAINT BUCOLUS, BISHOP OF SMYRNA
Bucolus was a disciple of St. John the Theologian, who consecrated him Bishop of Smyrna. In Smyrna there were few that were baptized. In the darkness of paganism, St. Bucolus shone as a bright candle. He distinguished himself with every virtue, especially meekness and humility. Before his death, Bucolus consecrated the glorious Polycarp as his successor to the espicopacy. He died peacefully and took up his habitation with the Lord.
! THE HOLY FEMALE MARTYR FAUSTA
Fausta was martyred for Christ during the reign of Emperor Maximian (305-311 A.D.). By her heroism, Fausta astonished her persecutors and succeeded in converting two of them to Christianity: the eighty-year-old pagan priest Evilasius and the Eparch Maximus. When the judge threatened Fausta with more severe tortures, she asked him to make her a picture depicting all those tortures with which he threatened her. When the picture was completed, it was shown to her. St. Fausta said: "As this picture feels no pain, so my body feels no pain from your punishments, for my soul is secure in the Lord." The judge then threw her into a vat of boiling hot water, where this thirteen-year-old girl died with prayer on her lips, and her soul entered Paradise.
! THE HOLY FEMALE MARTYR DOROTHEA
Dorothea was a prominent and beautiful maiden from Caesarea in Cappadocia. Sapricius, the administrator of the province, turned Dorothea over to the two pagan sisters, Christina and Kallista, in order to turn her from Christ. But the opposite occurred: Dorothea succeeded in converting both sisters to the Christian Faith. Enraged, Sapricius ordered that the two sisters be bound back to back, thrown into a vat of pitch and set on fire. He then sentenced Dorothea to death. She joyfully heard the sentence and cried out: "I give thanks to Thee, O Christ, Lover of souls, that Thou art leading me into Thine all-holy mansions!" Theophilus, a certain nobleman who was present, laughed at these words and cried out to Dorothea: "Listen, O bride of Christ--send me apples and flowers from the pomegranate tree in your bridegroom's Paradise." "Indeed, I will do that," replied the martyr. When Dorothea was at the place of execution, suddenly a beautiful young man appeared with three beautiful apples and three red flowers from the pomegranate. This was an angel of God, and it was winter. Dorothea asked the angel to take them to Theophilus and tell him: "Behold, this is what you desired!" When Theophilus received the message and saw the gift, he was thoroughly frightened. Everything turned upside down for him, and he, a confirmed pagan, became a Christian. He was tortured and slain for Christ, and his soul entered the Paradise of the Lord Jesus soon after that of St. Dorothea.
! SAINT PHOTIUS, PATRIARCH OF CONSTANTINOPLE
Photius was a great beacon of the Church. He was a relative of the emperor and a grandson of the glorious Patriarch Tarasius. He vigorously protected the Church from papal love of power and other Roman distortions of the Faith. In six days he went through all the ecclesiastical ranks, rising from a layman to patriarch. He was consecrated Patriarch on the Feast of the Nativity of Christ in the year 857 A.D., and he reposed in the Lord in the year 891 A.D.
! THE VENERABLE SAINTS BARSANUPHIUS AND JOHN
Both Barsanuphius and John were great ascetics, clairvoyants and miracle-workers from Gaza. They left a famous work entitled //The Book of Answers//, which deals with many questions about the spiritual life. They lived in the sixth century.
! THE HOLY FEMALE MARTYRS MARTHA AND MARY, AND THEIR BROTHER LYCARION
All three were crucified for Christ and then pierced and slain with a lance.
! HYMN OF PRAISE
! SAINTS MARTHA, MARY, AND ! LYCARION
Saints Martha and Mary are sisters by birth,
And Lycarion is their small brother, of little strength.
Their aged mother, a sweet soul, teaches them well:
"Love Christ my children, for He suffered for us."
Here the commander comes, awesome and powerful.
A violent man, he slays those faithful to Christ.
The sisters open the door to their home;
They have no fear of the belligerent man.
"Hearken, O commander of the Emperor, we are Christians;
We are not like you, whom the demon sold to the devil."
On a cross, the malicious commander raised them;
At that moment the young Lycarion drew near:
"I too, I too am a Christian! Crucify me also!"
The pains on the cross are unbearable; their mother trembles.
She kisses the feet of each of her children--
With tormented voices from their crosses, the daughters console her:
"For us, dearest Mother, do not be broken with sorrow.
You taught us love for Christ.
The torment is brief, Sweetness will be sweet in Paradise.
In the radiance of Paradise we will await you, Mother--
Lycarion, your glorious son, and your two daughters--
Oh, rejoice in such fruits of your womb!"
Like a fiery pillar, the mother's countenance began to beam:
"Blessed are you, my dear children--oh, blessed am I!"
! REFLECTION
St. Barsanuphius, who for fifty years lived secluded in a cell and did not allow himself to be seen by any living person, attained exceptional purity and perceptiveness through divine contemplation and prayer. Here are a few thoughts from his //Book of Answers//. "Every thought which is not preceded by the silence of humility does not proceed from God. All that is from the devil occurs with confusion and disturbance." "When you pray and God delays fulfilling your request, He does this for your benefit, in order to teach you forbearance." "Visible thieves are servants of invisible, noetic thieves." "The Lord Jesus Christ endured all things and finally ascended the Cross, which signifies the deadening of the body and the passions and a holy and perfect rest." "Our Lord wants you to honor every man more than yourself." When they asked the elder whether they should hire an advocate regarding a dispute between the monastery and certain men, the elder replied: "If you purchase the defense of men, then God will not defend you."
! CONTEMPLATION
Contemplate the Lord Jesus as a Laborer:
# As a physical Laborer through many long years;
# As a spiritual Laborer, Who constantly taught man, comforted man and healed man, giving the new covenant to the world;
# As a tireless Laborer, Who left the commandment: //Walk while ye have the light// (John 12:35).
! HOMILY
! on the mutual knowledge of the Father and the Son
"I know Him, for I am from Him, and He hath sent Me (John 7:29).
No one has ever dared say that he knows God. Many have merely said that they believe in God. Only our Lord Jesus Christ spoke the words //I know Him//. And immediately He explained from where He knows Him, saying: //For! I am from Him, and He hath sent Me.// The first reason: //I am from Him,// testifies to the eternal being of the Son; and the second reason, a//nd He hath sent Me//, testifies to the manifestation of the Son in time, in the physical world, as an emissary of the Holy Trinity.
For us who are Christ-believing, it is not given to know the Father as His Only-begotten Son knows Him. To us it is given and commanded that we believe. Our merit is in believing and not in knowing. If all of us knew God by seeing, no one would have any merit. For what kind of merit is there in seeing and recognizing? However, not to see and yet to believe--in this there is merit, in this there is virtue, in this is our salvation. We are not worthy to see God and by seeing Him to know Him, for we are weakened by sin and alienated from God. But the mercy of God gives us faith while in this life, which is able to bring us closer to God and lead us into the Eternal Kingdom of seeing and knowing in the life to come. O my brethren, let us believe in Christ the Lord, for He knows. He does not speak by faith but by knowing.
O Merciful Lord, strengthen our faith. Extend the hem of Thy garment that we may hold onto it to the end of our lives.
To Thee be glory and praise forever. Amen.
! SAINT PARTHENIUS, BISHOP OF LAMPSACUS
Parthenius was the son of a deacon from the town of Melitopolis. As a child he remembered well the words of the Gospel and endeavored to fulfill them. He settled near a lake, where he fished. He then sold the fish and distributed the money to the poor. By God's providence he was chosen as Bishop of Lampsacus. He cleansed the town of paganism, closed the idolatrous temples, built many churches and strengthened the believers in the Faith. Through prayer, he healed every manner of illness and was particularly powerful over evil spirits. On one occasion, when he wanted to cast out an evil spirit from an insane man, the evil spirit begged him not to do so. Parthenius said to him: "I will give you another man whom you can enter, and in him you can dwell." The evil spirit asked him: "Who is this man?" "I am that man," replied the saint. "Enter and dwell in me!" Upon hearing this, the evil spirit fled as though burned by fire, crying out: "How can I enter into the house of God?" St. Parthenius lived a long time and through his work manifested an abundant love for God and man. Parthenius entered into the eternal rest of Christ in the fourth century.
! THE VENERABLE LUKE OF HELLAS
Luke was born in Castoria. Even as a child, he never desired to taste meat and always conducted his life in chastity and prayer. One time, Luke went to a field to sow grains of wheat. Along the way, however, he distributed a greater portion of the grains of wheat to the poor, and he planted the lesser portion, that was left over. From that lesser quantity of grain, God gave him a greater harvest than had previously come from the entire amount. After that, Luke left his widowed mother and entered a monastery. The grieving mother prayed earnestly to God to reveal the secret of where her son could be found. God heard the prayers of the mother. The abbot of that monastery dreamed on three consecutive nights that a certain woman sharply rebuked him because he had taken away her only son. The abbot then ordered Luke to return immediately to his mother. Luke went, visited his mother, and parted from her once again, this time never to return. He exhausted himself by fasting on a mountain known as John's Mountain [near Corinth]. At night he prayed to God and during the day he worked in the garden and field, not for his sake but for the sake of the indigent and visitors. Luke himself only lived on bread made of barley. God bestowed upon him the gift of working miracles. Luke reposed peacefully in the year 946 A.D. From time to time, myrrh flowed from his relics.
! THE VENERABLE MASTRIDIA
Mastridia lived in Jerusalem, where she led an austere life of asceticism. A certain young man fell in love with her and began to annoy her. In order to save herself and this young man from sin, Mastridia took a small basket of moistened beans and retreated into the wilderness. She spent seventeen years in the wilderness, and during the entire time, by the power of God, she did not exhaust her supply of beans, nor did her clothing wear out. Mastridia died peacefully in about the year 580 A.D.
! THE 1003 MARTYRS OF NICOMEDIA
They all suffered for Christ during the reign of Emperor Diocletian.
! HYMN OF PRAISE
! THE HOLY MARTYRS AT NICOMEDIA
The city of Nicomedia shone like a star--
The eastern capital, like the morning star.
But one day, by the will of Duclianus,
Four courtiers were beheaded.
Eusebius, Vasa, Eutychius, courageous ones,
And wondrous Basilides, with unfading glory,
Were beheaded for Christ.
And by this, Nicomedia was darkened.
Those four heads were not the end of the horror,
But only the first blossoms of the mown grass:
A thousand slaves, servants, and obedient ones,
Who faithfully served the four martyrs.
A thousand as one, and three more,
Created a clamor, as though they had drunk wine.
No, it was not wine that they drank, but the truth that intoxicated them,
With the Blood and the victory of the Son of God.
"O ungodly emperor, we also are Christians.
We also are Christians, do whatever you will!
We desire to go to that place
Where our Blessed Master went."
O wondrous daring! O wondrous fidelity!
But this did not cause the emperor's cruelty to abate.
...................................................................................
A thousand souls departed the earth,
And the gates of Paradise opened wide to them.
! REFLECTION
St. Isidore of Pelusium interprets certain passages of Holy Scripture in the following manner: //Two women shall be grinding at the mill; the one shall be taken, and the other left//(Matthew 24:41). This means that many dedicate themselves to the spiritual life, but with different intentions--some sincerely and steadfastly, and others negligently and vainly. The first will be taken into the Kingdom of God, and the others will be left behind. What does the prayer about the cup mean? And why did the Lord pray that this cup of suffering might pass from Him! (Matthew 26:42). This means that no one should seek out adversity, but when adversity does come, a Christian should accept it and courageously endure it. Concerning the five foolish virgins (cf. Matthew, Chapter 25), St. Isidore says: "Indeed, all of them had retained their virginity, but they did not possess the other virtues, especially charity. Virginity alone is not sufficient to enter the Kingdom of God. Virginity does not help at all, if the virgin is proud and selfish."
CONTEMPLATION!
Contemplate the Lord Jesus as a Sower:
# As a Sower whose seed grows slowly and surely;
# As a Sower of the new teaching, new power and new order;
# As a Sower of the new spiritual food, by which mankind will be fed until the end of time.
HOMILY!
on the narrow-minded, to whom crime is closer than the love of God!
"But ye seek to kill Me, because My word hath no place in you" (John 8:37).
Why was the word of Christ unable to prevail among the Jewish elders? Because, they were so filled with malice that there was no room in them for the divine seed, for the divine good news. All that grew in their souls was the sowing of Satan, the Antichrist. That is why they sought to kill Christ. Through the blessed Psalmist, the Lord speaks: //Empty yourselves, and know that I am God//(Psalm 46:10). Therefore, it is necessary to empty oneself of everything that is opposed to God, i.e., of everything in us that hinders the light of the knowledge of God from dwelling in us. When man empties himself of that, then and only then can he understand that God is God. As long as the soul of a man is filled with ungodly thoughts, ungodly feelings and ungodly desires, man is totally unable to listen to or receive the word of God. When people do not have God within themselves, they act by some infernal impulse to uproot God from the soul of him who possesses Him. //Ye seek to kill Me.// Why? Because not one divine word of Christ was able to find shelter or acceptance in their godless hearts. Having nothing in common with Christ the Lord, the Jewish elders, from the beginning, were unable to have any kind of friendly relations with Him.
O Lord Jesus, our Blessed Savior, help us to empty ourselves of all sinful seeds, that Thy holy word may be able to enter into us and to enlighten, strengthen and resurrect us.
To Thee be glory and praise forever. Amen.////
! THE HOLY GREAT-MARTYR THEODORE STRATELATES
There are martyrdoms that are beyond any price. The preciousness of martyrdom depends upon the greatness of the good things which a Christian abandons, and in lieu of which he accepts suffering. In addition, it depends upon the greatness of the suffering that he endures for Christ's sake. St. Theodore, a Roman commander in the army of Emperor Licinius and the governor of the town of Heraclea, scorned his youth, his handsome appearance, his military rank and the good graces of the emperor. In place of all this, he accepted horrible tortures for the sake of Christ. At first, Theodore was flogged and received six hundred lashes on his back and five hundred on his stomach. After this, he was raised on a cross and was completely pierced with lances. Finally, Theodore was beheaded. Why all of this? Because St. Theodore loved Christ the Lord above all else in the world. He abhorred the foolish idolatry of the superstitious Emperor Licinius. He smashed the idols of silver and gold and distributed pieces of them to the poor. He converted many to the Christian Faith and called upon Emperor Licinius himself to reject idolatry and believe in the One Living God. During the entire time of his tortures, St. Theodore said repeatedly: "Glory to Thee, my God, glory to Thee!" St. Theodore suffered on February 8, 319 A.D., at three o'clock in the afternoon, and entered into the Kingdom of Christ. St. Theodore is considered the protector of soldiers who call upon him for assistance. His miracle-working relics were translated from Euchaita to Constantinople and interred in the Blachernae church.
! THE HOLY PROPHET ZECHARIAH
Zechariah was the eleventh of the [twelve] minor prophets. Together with the Prophet Haggai, he persuaded Prince Zerubbabel to restore the Temple of Jerusalem. Zechariah prophesied the solemn entrance of Christ into Jerusalem //on a colt, the foal of an ass//(Zechariah 9:9). He also prophesied Judas's betrayal of Christ for thirty pieces of silver: //And they counted out my wages, thirty pieces of silver// (Zechariah 11:12), as well as the abandoning of Christ by the apostles during the time of His passion: //Strike the shepherd, and the sheep shall be dispersed// (Zechariah 13:7; Matthew 26:3; Mark 14:27). The Prophet Zechariah is called the "beholder of the sickle" because he saw, in a vision, a sickle coming down from heaven to mow down the unjust, especially thieves and blasphemers of the Name of God. Zechariah reposed during the latter half of the reign of Darius Hystapes, in about the year 520 B.C.
! SAINT SAVA II, ARCHBISHOP OF SERBIA
Sava was the son of King Stefan the First-crowned and the nephew of St. Sava I. Before his tonsure, Sava was called Predislav. Following the example of his great uncle [St. Sava], Predislav was tonsured a monk and zealously dedicated himself to a life of asceticism. He was chosen Archbishop of Serbia, succeeding St. Arsenius, under the name Sava II. He governed the Church with great devotion and love. Sava II reposed in the year 1268 A.D. His relics lie in the Monastery at Peć.
! HYMN OF PRAISE
! SAINT SAVA II, ARCHBISHOP OF THE SERBS
Predislav stared;
The young Predislav wept.
The queen mother asked him:
"Where does your gaze roam?
At what are you gazing, Predislav?"
"At St. Sava, the face of my uncle."
King Stefan, to his son, said:
"I must marry you off, my sweet son.
Time flows, and I am aging.
Whom do you love? Tell me the name!"
Predislav hear his father,
But about a wife, he did not want to hear.
Predislav became a monk.
In the words of Christ he took delight,
And Sava the Second, he was called.
Shedding tears, he spoke:
"St. Sava, place me
On the true evangelical path!"
The king and queen died,
And also Patriarch Arsenius.
The Church remained a widow,
And from honors, Sava hid.
But a double honor fell upon him:
He was a bishop and also a saint.
! REFLECTION
St. Seraphim of Sarov writes about despair: "Just as the Lord is concerned about our salvation, so the devil, the slayer of men, concerns himself with bringing the soul of man to despair. Judas, the betrayer, was fainthearted and inexperienced in struggle, which is why the devil, seeing him in a state of despair, attacked and persuaded him to hang himself. Peter, the formidable rock, falling into great sin but being experienced in struggle, did not despair and did not lose the presence of the Spirit. Rather, he shed bitter tears from a warm heart; and the devil, seeing that, fled from him as though burned by fire. Thus, brethren, the Venerable Antiochus teaches that when despair befalls us, we should not succumb to it, but, strengthened and enveloped by holy faith, we should say with great bravery to the cunning spirit: 'What have you to do with us, O apostate from God, fugitive from heaven and slave of evil! You are unable to inspire us to do anything, for Christ, the Son of God, has authority over us and over all. And you, O murderer, depart from us! Strengthened by His Honorable Cross, we trample upon your serpent's head.'"
! CONTEMPLATION
Contemplate the Lord Jesus as a Commander:
# As a Commander Who entered into battle against Satan;
# Who entered into battle against sin in men;
# Who took up the defense of good against evil in this world;
# Who defeated Satan, sin and death.
! HOMILY
! on how a true Christian encounters hatred in the world
"And ye shall be hated of all men for My name's sake" (Luke 21:17).
All those who love themselves more than they love God will hate the followers of the Lord Jesus.
All those who love the body more than they love the soul will hate the followers of the Lord Jesus.
All those who love this world more than they love the Eternal Kingdom of God will hate the followers of the Lord Jesus.
All those who love sin more than they love virtue will hate the followers of the Lord Jesus.
The number of those who hate the name of Jesus is sometimes greater and sometimes smaller. However great their number is, brethren, do not be afraid, for the number of angels and saints is myriad. The number of your kinsmen in heaven, i.e., those who love the Lord Jesus, exceeds the number of stars in the firmament and the grains of sand by the sea. Oh, do not be afraid; Christ is with you, and that means that you are always mightier than those who hate you. When the Omnipotent One is on your side, you are always more numerous, for you are always stronger than any number of your adversaries.
O Lord Jesus, Lord All-powerful, always be with us and help us that we may be inseparably with Thee always, and then our fear will vanish.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR NICEPHORUS
The biography of this martyr clearly demonstrates how God rejects pride and crowns humility and love with glory. There lived in Antioch two close friends, the learned priest Sapricius and the simple layman Nicephorus. Somehow their friendship turned into a terrible hatred for each other. The God-fearing Nicephorus attempted on many occasions to make peace with the priest. However, at no time did Sapricius desire to be reconciled. When the persecution of Christians began, the presbyter Sapricius was condemned to death and brought to the place of execution. The sorrowful Nicephorus followed after Sapricius, beseeching him along the way to forgive him before his death, that they might depart in peace.
"I beseech you, O martyr of Christ," said Nicephorus, "forgive me if I have sinned against you!" Sapricius did not even want to look at his opponent, but quietly and arrogantly walked toward his death. Upon seeing the hardness of the priest's heart, God did not want to accept the sacrifice of his martyrdom and crown him with a wreath, and instead He mysteriously withheld His grace. At the last moment, Sapricius denied Christ and declared before the executioners that he would bow down before the idols. So it is with blind hatred! Nicephorus implored Sapricius not to deny Christ saying: "O my beloved brother, do not do that; do not deny our Lord Jesus Christ; do not forfeit the heavenly wreath!" But all was in vain. Sapricius remained adamant. Then Nicephorus cried out to the executioners: "I too am a Christian; behead me in place of Sapricius!" The executioners informed the judge of this, and the judge ordered the release of Sapricius and beheaded Nicephorus in his place. Nicephorus joyfully lowered his head on the block and was beheaded. Thus, he was made worthy of the Kingdom and was crowned with the immortal wreath of glory. This occurred in the year 260 A.D., during the reign of Gallienus.
! THE HIEROMARTYR [PRIEST-MARTYR] PETER DAMASCENE
Some think that Peter Damaskin lived in the eighth century and others think he lived in the twelfth century. This difference of thought comes from the fact that there were two Peter Damascenes. The one about whom we are speaking was a great ascetic. He was unselfish beyond measure. Peter Damascene did not even possess a single book, but rather borrowed books and read them. He read assiduously, gathering wisdom as a bee gathers honey. For a while he was a bishop in Damascus, but when he spoke out against Islam and the Manichean heresy, the Arabs severed his tongue and banished him into exile deep in Arabia. However, God granted him the power of speech, so that, even in exile, he preached the Gospel and converted many to the Christian Faith. He compiled and bequeathed to posterity a precious book about the spiritual life. He died as a confessor and martyr and took up his habitation in the Kingdom of Christ.
! HYMN OF PRAISE
! SAINT PETER DAMASCENE
Damascene numbers eight types of knowledge
For spiritual and godly men.
First: the knowledge of sorrow and all temptations.
Second: the knowledge of the sum of one's transgressions,
One's transgressions and God's forgiveness.
Third: the knowledge of horror, pain and fear,
Before death, in death and after separation from the body,
When before the righteous judgement the soul stands alone.
Fourth: the knowledge of Christ the Savior,
His life and that of all the saints,
Of the saints--their deeds, patience and words,
Which, like a silver bell, resound throughout the ages.
Fifth: the knowledge of natural attributes,
Of physical phenomenon, variation and change.
Sixty: the knowledge of forms and things,
All sensory beings and natural phantoms.
Seventh: the knowledge of the world, rational and spiritual,
The angelic world and the world of hades--of both good and evil.
Eighth: the knowledge of God,
The One, Holy, Mighty and Immortal.
This knowledge is called Theology:
To it, few are elevated.
A theologian needs the greatest purity,
For the impure heart, to heaven, does not reach.
Damascene appropriated the seven elementary types of knowledge,
And to the eighth, the knowledge of God, he was raised.
The eighth is given and bestowed by God:
It is neither learned nor earned.
! REFLECTION
St. Peter Damascene writes thus about the general and particular gifts of God: "The general gifts consist of the four elements and all that results from them, all the wonderful and awesome works of God outlined in Holy Scripture. The particular gifts are those gifts which God bestows upon every man individually, whether it be riches for the sake of charity, or poverty for the sake of patience with humility; whether it be authority for the sake of justice and the strengthening of virtues, or subjugation and slavery for the sake of the expeditious salvation of the soul; be it health for the sake of helping the infirm, or illness for the sake of the wreath of patience; be it understanding and skill in gaining wealth for the sake of virtue, or weakness and lack of skill for the sake of submissive humility. Even though they appear contrary to one another, all these are very good according to their purpose." In conclusion, St. Peter Damascene says that we are obligated to give thanks to God for all gifts, and that with patience and hope we are to endure all tribulations and evil circumstances. For all of that God gives us, or permits to befall us, benefits our salvation.
! CONTEMPLATION
Contemplate the Lord Jesus as the Source of Joy:
# In the tribulations of life, which only He is able to replace with joy;
# In the bondage of passions, which only He can replace with the joy of freedom;
# In death, from which He alone can resurrect us.
! HOMILY
! on the word of God, which is mightier than death
"If a man keep My saying, he shall never see death" (John 8:52).
As long as a candle burns in a room there will not be darkness, for the candle emits light. If food is seasoned with salt, it will be preserved from spoiling. If someone keeps the word of Christ in his soul, that one keeps salt and light in his soul, and life will abide in him. Such a soul will not become dark in this life, neither will it taste the decay of death.
Whoever keeps the word of Christ in himself, the word of Christ sustains him from within and feeds, enlightens and enlivens him. Whether he is in the body or outside the body, he feels equally alive by means of the word of Christ. Death can separate his soul from his body, but not from Christ, i.e., from immortal and eternal life. The death of his body will only give his life-bearing soul a freer flight in embracing the beloved Christ the Life-giver.
But what does it mean, brethren, to keep the word of Christ within ourselves? It means, first, to keep the word of Christ in our minds, thinking about it; second, to keep the word of Christ in our hearts, loving it; third, to keep the word of Christ in our wills, fulfilling it in deeds; and fourth, to keep the word of Christ on our tongues, openly confessing it when necessary. Thus, to keep the word of Christ means to fill ourselves with it and to fulfill it. Whoever keeps the word of Christ in this manner, truly, will never taste of death.
O our Lord, Mighty Lord, mightier than death, give us strength and understanding to keep Thy holy word to the end--that we do not taste of death and that death does not taste of us, and that decay not touch our souls. O All-merciful Lord, be merciful to us.
To Thee be glory and praise forever. Amen.
! THE CIRCUMCISION OF OUR LORD AND GOD AND SAVIOR JESUS CHRIST
On the eighth day following His birth, the Divine Child was presented in the Temple and circumcised according to the Law existing in Israel since the time of Abraham. On this occasion, He was given the name Jesus, which the Archangel Gabriel announced to the Most-Holy Virgin Mary. The Old Testament circumcision was the prefiguring of the New Testament baptism. The circumcision of our Lord shows that He truly received upon Himself the body of man and not just seemingly, as was later taught of Him by heretics. Our Lord was also circumcised because He wanted to fulfill the entire Law, which He Himself gave through the prophets and forefathers. In fulfilling the written Law, He replaced it with Baptism in His Holy Church, as was proclaimed by the Apostle Paul: //For in Christ Jesus neither circumcision availeth anything, nor uncircumcision, but a new creation// (Galatians 6:15). (In the cycle of the liturgical calendar of the Church, this Feast of the Lord's Circumcision has neither a Forefeast nor an Antefeast).
! SAINT BASIL THE GREAT, ARCHBISHOP OF CAESAREA
Basil was born during the reign of Emperor Constantine. While still unbaptized, he spent fifteen years in Athens, where he studied philosophy, rhetoric, astronomy and all other secular sciences of that time. His colleagues there were Gregory the Theologian and Julian, later the apostate emperor. In his mature years he was baptized in the Jordan River along with Ebulios his former teacher. He was Bishop of Caesarea in Cappadocia for almost ten years and completed his earthly life fifty years after his birth. He was a great defender of Orthodoxy, a great light of moral purity, a religious zealot, a great theological mind, a great builder and pillar of the Church of God.
Basil fully deserved the title "Great." In liturgical services he is referred to as the "bee of the Church of Christ, which brings honey to the faithful and with its stinger pricks the heretics." Numerous works of this Father of the Church are preserved; they include theological, apologetical, ascetical and canonical writings, as well as the Holy and Divine Liturgy named after him. This Divine Liturgy is celebrated ten times during the year: on the First of January, his feast day; on the eve of the Nativity of our Lord; on the eve of the Theophany of our Lord; all Sundays of Great Lent except Palm Sunday; on Great and Holy Thursday; and on Great and Holy Saturday. St. Basil reposed peacefully on January 1, 379 A.D., and entered into the Kingdom of Christ.
! HYMN OF PRAISE
Why is it necessary to listen to the Church and not listen to a man who thinks against the Church, even though he might be called the greatest thinker? Because the Church was founded by the Lord Jesus Christ, and is guided by the inspiration of the Spirit of God; because the Church represents the realm of the Holy, a grove of cultivated fruit trees. If someone rises up against the realm of the Holy, it means that he is unholy. Why then listen to him? "The Church is an enclosure," says the all-wise John Chrysostom. "If you are within, the wolf does not enter; but if you leave, the beasts will seize you. Do not distance yourself from the Church; there is nothing mightier that the Church. The Church is your hope. The Church is your salvation. The Church is higher than the heavens. The Church is harder than stone. The Church is wider than the world. The Church never grows old but always renews itself."
! CONTEMPLATION
To contemplate the Circumcision of the Lord Jesus Christ:
# His glory in the Heavenly Kingdom, where Cherubim serve Him in fear and in trembling;
# His lowliness and His humility in the ritual of circumcision, which was intended for sinners;
# Contemplate my own heart: how much have I circumcised sinful thoughts, vices and passions from it.
! HOMILY
! on how we should depart from evil and do good
"Turn from evil, and do good" (Psalm 34:15)
With these words are expressed all the efforts by which we should labor here on earth and in the earth, i.e., on this material earth and in this physical body. In what, then, should our labor consist? To achieve two habits: first, to avoid evil and second, to do good. Concerning that which is good and that which is evil, our conscience tells us incompletely and unclearly, because our conscience is darkened by sin; but the teaching of Christ tells us completely and clearly that which is good and that which is evil.
Brethren, what does our Lord ask of us? He asks that, as our altars are always facing the east, so should our souls be turned toward good. To leave evil behind us; leave evil in the shadows; leave evil in the abyss of oblivion; leave evil in the darkness of the past; that we, from year to year, from day to day, extend ourselves toward good--think about good, yearn for good, speak about good, do good. The Lord is seeking builders and not destroyers. He who builds good, by the same act destroys evil. However, he who turns away from destroying evil, quickly forgets how to build good and is transformed into an evildoer.
The Apostle of Christ teaches us, //Abhor! that which is evil; cleave to that which is good// (Romans 12:9). Hate evil but do not hate the man who commits evil for he is sick. If you can, heal the sick person but do not kill him with your hatred. Adhere to good and only good, for good is from God, for God is the treasury of all good.
O Good and All-gracious Lord, teach us to avoid evil and to do good for the sake of Thy glory and for the sake of our salvation.
To Thee be glory and praise forever. Amen.////
! SAINT GREGORY, BISHOP OF NYSSA
Gregory was the brother of Basil the Great. At first he was only a presbyter, since he was married; but when his wife, Blessed Theosevia, reposed, Gregory was chosen and consecrated Bishop of Nyssa. He was distinguished by his great secular learning and spiritual experience. He participated at the Second Ecumenical Council [Constantinople, 381 A.D.]. It is thought that he composed the second half of the Symbol of Faith [the Creed]. He was a great orator, an interpreter of Holy Scripture and a theologian. Because of their defeat, the Arians especially attacked him as their worst enemy, so that during the reign of Emperor Valens--their ally of the same mind--they succeeded in ousting Gregory from the episcopal throne and sent him into exile. This Holy Father spent eight years in exile, patiently enduring all miseries and all humiliations. He finally reposed in old age toward the end of the fourth century, and entered into the Kingdom of God, remaining throughout the ages as a great beacon of the Church on earth.
! THE VENERABLE AMMON, EPYPTIAN ASCETIC
For fourteen years, Ammon prayed to God and struggled to conquer anger within himself. He attained such perfection of goodness that he was not even conscious that evil existed in the world. He was particularly knowledgeable in Holy Scripture. He reposed at the beginning of the fifth century.
! SAINT MARCIAN
Marcian was born in Rome. After being ordained a presbyter, he lived the remainder of his life in Constantinople, during the greater part of the reign of Emperor Marcian and Empress Pulcheria. Inheriting enormous wealth from his parents, Marcian generally spent it on two goals--building or restoring churches, and charity for the poor. He built two new churches in Constantinople, both famous for their beauty and sacredness, dedicated to St. Anastasia and St. Irene. When he was asked: "Why do you spend so much on churches?" he replied: "If I had a daughter and wanted to marry her to a nobleman, would I not spend much gold in order to adorn her as a worthy bride? And here I am adorning the Church, the Bride of Christ." As generous as this wonderful man was toward the churches and the indigent, so was he austere, very austere, toward himself, following the apostolic exhortation: //Having food and raiment let us be therewith content //(1 Timothy 6:8). It is written about him: "He was totally in God and God in him." And he departed to God, in fullness of years and good works, in the year 471 A.D.
! HYMN OF PRAISE
! SAINT GREGORY AND SAINT MARCIAN
The Spirit possesses the gifts, the Spirit imparts the gifts:
To some, blessed mercy; to some, bold understanding;
To some, a special virgin's purity;
To some, a living love or a sound mind.
According to the strength of one's faith, new gifts the Spirit adds.
If faith grows, which moves mountains,
Then the treasury of the Spirit is opened,
And gift upon gift, like rain, descends upon the faithful one.
St. Gregory, because of his great faith,
To spiritual heights, like an eagle soared.
St. Marcian, because of his great faith,
With heavenly mercy was illuminated.
The light of theology, to Gregory, was imparted.
To Marcian was given grace, the oil of praise.
O Heavenly Spirit, Lord and King,
Thy wondrous gifts from us, do not withhold,
But, through the prayers of Thy chosen vessels,
On the day of the Dreadful Judgment, from condemnation, save us.
!
! REFLECTION
!
Vanity over clothing is taking on a particular momentum in our time. He who has nothing else of which to be proud, becomes proud of his attire. Yet he who has something more costly than clothes of which to be proud, does not become proud. Just as gold is not found on the surface of the earth, so it is that the spiritual worth of a man does not show outwardly. It is said that a certain distinguished philosopher saw a young man who took pride in his clothing. He approached the young man and whispered in his ear: "The same fleece was previously worn by a ram; nevertheless, he was still a ram!" To be a Christian and to display pride in clothing is more insane than to be an emperor and to be proud of the dust under one's feet. While St. Arsenius wore clothes of gold in the royal court, no one called him Great. He was called
Great only when he unselfishly gave himself over completely to God--and dressed in rags.
! CONTEMPLATION
Contemplate the lowliness of the Lord Jesus:
# The lowliness of the King, Who was born in a cave;
# The lowliness of the Most-wealthy One, Who hungered and thirsted;
# The lowliness of the Almighty in relating to the lowly on earth.
! HOMILY
! on contentment with that which is most necessary to us
"Having food and raiment let us be therewith content" (1 Timothy 6:8).
The apostles of God taught others that which they themselves fulfilled in their own lives. When they had food and clothing, they were content. Even when it happened that they had neither food nor clothing, they were content, for their contentment did not emanate from the outside but from within. Their contentment was not so cheap as the contentment of an animal, but costly--more costly and more rare. Internal contentment, the contentment of peace and love of God in the heart--that is the contentment of greater men, and that was the apostolic contentment. In great battles, generals are dressed and fed as ordinary soldiers: they do not seek contentment in food or in clothes but in victory. Victory is the primary contentment of those who battle. Brethren, Christians are constantly in battle--in battle for the victory of the spirit over the material, in battle for the victory of the higher over the lower, and in battle for the victory of man over his beastly nature. Is it not, therefore, absurd to engage in battle and concern oneself not with victory but with external decorations and ornaments? Is it not foolish to give to one's enemies the marks of identification? Our invisible enemy, Satan, rejoices at our vanity and supports us in every vain thought. The invisible enemy occupies us with every possible unreasonable pettiness and idleness, only to impose upon our minds the heavy forgetfulness of that for which we are here on earth. The invisible enemy presents to us the worthless as important, the irrelevant as essential, and the detrimental as beneficial, only in order to achieve victory over us and to destroy us forever.
O Lord, Holy, Mighty and Immortal, Who created us from the mud and breathed the living soul into mud; do not, O Lord, allow the mud to overcome us! Help our spirit, that it always be stronger than the earth.
! To Thee be glory and praise forever. Amen.
! THE VENERABLE THEODOSIUS THE GREAT [THE CENOBIARCH]
Theodosius was the first founder and organizer of the cenobitic way of monastic life. He was born in the province of Cappadocia in the village of Mogarisses, of devout parents. As a child, he visited St. Simeon the Stylite, who blessed him and prophesied great and spiritual glory for him. Carrying a censer in which he placed unlit charcoal and incense, Theodosius sought out a place where he could settle and establish his monastery, and he stopped when the charcoal began to burn on its own. There he settled and began to live the ascetic life. He soon gathered around him many monks of various nationalities. He built a church for each nationality, so that services and hymns were offered to God in Greek, Armenian, Georgian, and other tongues at the same time. But on the day of Holy Communion all the brotherhood gathered in the great church, in which the Greek language was used. There was a common table for all, common property, common penance, common labor, common endurance and, not rarely, common hunger. Theodosius was an exalted model of life to all the monks--an example in labor, prayer, fasting, watchfulness and all Christian virtues. God granted him the gift of working miracles, by which he was able to heal the sick, appear to people in distant places and help them, tame wild beasts, discern the future, and cause bread and wheat to multiply. Prayer was on his lips day and night. He reposed peacefully in the Lord in the year 529 A.D., the 105th year after his birth.
! BLESSED MICHAEL THE FOOL-FOR-CHRIST
Blessed Michael was a Russian of a princely family. He made himself appear foolish so as to conceal his virtues from the world and to avoid the praise of men. Thus he prepared himself for praise before God. He reposed in the year 1453 A.D. in the Klops Monastery near Novgorod, where his relics still lie.
! HYMN OF PRAISE
! SAINT THEODOSIUS
! Those who, with fear, stand before God,
Those who fear the Living God alone,
They, only they can witness
That the righteous one receives that for which he prays to God.
When people truly pray, God acts on their behalf.
The dawn shines on the one who turns to the dawn.
Saint Theodosius, by his prayers,
Helped many and also helps us.
For he lives even now, as he once did,
And works miracles now, even as he once did.
The Lord gave him power, because of his faith
And his love for God--love without measure.
Wonderful Theodosius, zealot for truth,
Marvelous director of the monastic life:
Let us praise him who is glorified by God,
Now a glorious citizen of the Kingdom of Christ.
! REFLECTION
To be bribable means to not be a Christian. The Orthodox Fathers of the Church were not given to bribery or intimidation. Bribery in matters of the Faith is equal to Judas's betrayal of Christ for money. Such bribery was characteristic only of certain heretics. When Emperor Anastasius succumbed to the heresy of Euthychius, he rose up against the decisions of the Fourth Ecumenical Council [Chalcedon, 451 A.D] and wanted to outlaw those decisions. In order to win over the most distinguished representatives of the Church for himself, the emperor began to send them various gifts. St. Theodosius was the most renowned man in all of Palestine. The emperor sent him thirty liters of gold as a gift, supposedly for the needs of the monastery. By this, Theodosius immediately understood that the emperor wanted to bribe him. How wisely this saint of God acted! He did not want to keep the money for the monastery, even though it was in great need; neither did he want to return it to the emperor, lest the emperor become more embittered against Orthodoxy; thus he immediately distributed all the gold to the poor in the emperor's name. This charity strengthened his prayer to God for the emperor's correction and his return to the true path.
! CONTEMPLATION
!
Contemplate the weeping of the Lord Jesus:
# His weeping and sorrow over the lifeless Lazarus, as well as over the fate of Jerusalem;
# His weeping and sorrow in the Garden of Gethsemane because of man's bondage to sin, the devil and death.
! HOMILY
! on the gradual nature of spiritual development
! "For every one that useth milk is unskillful in the word of righteousness: for he is a babe. But strong meat belongeth to them that are of full age, even those who by reason of use have their senses exercised to discern both good and evil" (Hebrews 5:13-14).
Those who feed on the food of the milk of sensual reflection cannot easily distinguish between good and evil. They usually come to the conclusion that all faiths are equally the same in value; that sin is the indispensable shadow of virtue; and that evil, in general, is the unavoidable companion of good. A true Christian cannot come to such erroneous conclusions. A true Christian is a mature person who is not fed on milk, but who is distrustful of the senses, and who judges much more finely and makes a finer distinction between the value of all that is and all that has been. The Christian, indeed, is given clear directions for distinguishing good from evil by God's Revelation; nevertheless, long and laborious study is necessary in order that the Christian, striving for perfection, might in every given case know what is good and what is evil. This knowledge should pass over into feeling in order to be trustworthy and without error. Both good and evil wish to touch the heart of man. That is why man should be trained, by the feeling of the heart, to immediately recognize what approaches him--in the same manner as, with his tongue, he immediately senses the salty and the unsalty, the sweet and the bitter.
Brethren, let us endeavor every day and every moment to purify our hearts, so that our hearts might always be able to distinguish good and evil. For in everything that happens to us, the question is posed: "What is good and what is evil?" This is precisely why it does happen to us: so that we can realize what is good and follow after good. We face temptations a hundred times a day. He who has eyes to see, let him see.
O Lord, Lover of mankind, warm our hearts with good which is from Thee. Make us wise, O Lord, to be able to distinguish good from evil. O Master, strengthen us, that we might always embrace good and discard evil for the sake of Thy glory, O Lover of mankind, and for the sake of our salvation.
To Thee be glory and praise forever. Amen.
! THE HOLY FEMALE MARTYR TATIANA
Tatiana was a Roman whose parents were from the nobility. She was a Christian and a deaconess in the church. After the death of Emperor Heliogabalus, there reigned the Emperor Alexander, whose mother, Mammaea, was a Christian. Emperor Alexander himself was wavering and indecisive in his faith, for he kept statues of Christ, Apollo, Abraham and Orpheus in his palace. His chief assistants took it upon themselves to persecute the Christians without awaiting orders from the emperor. When they brought out the virgin Tatiana for torture, she prayed to God for her torturers. And lo, their eyes were opened and they saw four angels around the martyr. Seeing this, eight of them believed in Christ, for which they also were tortured and slain. The tormentors continued to torture St. Tatiana. They whipped her, cut off parts of her body, and scraped her with irons. All disfigured and bloody, Tatiana was thrown into the dungeon that evening, so that the next day they could begin anew with different tortures. But God sent His angels to the dungeon to encourage her and to heal her wounds, so that each morning Tatiana appeared before the torturers completely healed. They threw her before a lion, but the lion fawned about her and did her no harm. They cut off her hair, thinking, according to their pagan reasoning, that some sorcery or magical power was concealed in her hair. Finally, Tatiana and her father were led out together, and both were beheaded. Thus, Tatiana ended her earthly life in about the year 225 A.D., and this heroic virgin, who had the fragile body of a woman but a robust and valiant spirit, was crowned with the immortal wreath of glory.
! THE HOLY MARTYR PETER APSELAMUS
Peter was born in Eleutheropolis in Palestine. In his youth, Peter suffered for the Christian Faith in 311 A.D., during the reign of Emperor Maximian. After much torture, he was condemned to death. Upon hearing his death sentence, he joyfully cried out: "That is my one wish--to die for my God!" Peter was crucified in the same manner as our Lord Himself, and gave up his spirit on the cross.
! THE FEAST OF THE ICON OF THE ALL-HOLY MOTHER OF GOD, "THE MILK-GIVER" [MLEKOPITATELNICA]
This is the name of the icon of the All-Holy Mother of God which St. Sava the Serbian brought from the [Greek] Monastery of St. Sava the Sanctified, near Jerusalem. And so, the prophecy spoken by St. Sava the Sanctified, some eight-hundred years earlier--that a certain Serbian priest by the name of Sava would come, and that this icon and his staff would be given to the Serbian--was fulfilled. When St. Sava the Serbian visited the Monastery of St. Sava the Sanctified, the monks recalled the prophecy of the founder of their monastery and gave to Sava the Serbian this icon and staff. This icon [Mlekopitatelnica] was placed on the right side of the Royal Doors on the iconastasis, in Sava's hermitage [//Isposnica//, the House of Silence] in the monastic community at Karayes [on Mt. Athos], and the staff was placed in an adjacent cell known as the "Paterica".
! THE VENERABLE MOTHER THEODORA
Theodora was a glorious nun and teacher of nuns from Alexandria. "Just as trees require winter and snow in order to bear fruit, so trials and temptations are needed for our life," spoke this holy woman. She reposed peacefully at the beginning of the fifth century.
! HYMN OF PRAISE
! SAINT TATIANA
You pity the youth of your body? Oh, be reasonable!
Is it worthwhile to grieve over youth which passes? Judge for yourself!
There is only one youth--youth in eternity.
That is the true youth, youth without old age.
It is worth seeking this, and for it shedding tears,
Even if you must pay for it with the death of the body.
Tatiana purchased the costly with the less costly.
For dust and water she received divine wine;
For the body that ages, eternal youth;
And for a few tears, cherubic joy.
United to Christ, the Immortal King,
She remained faithful to her Betrothed;
By the power of a pure spirit, she crushed temptations,
And bravely endured frightening tortures.
Around her were heard angelic footsteps.
Like a wrinkled cloth, her body she shed,
And her soul, free of earthly ties,
Was raised up to the wedding feast in the Kingdom without tears.
! REFLECTION
There is no greater honor or greater calling on earth than to be a Christian. When the judge-torturer Sevirus asked the young Peter Apselamus: "Of what lineage are you?" Peter replied: "I am a Christian." The judge further inquired of him: "What rank are you?" To this, Peter responded: "There is no greater or better rank than that of a Christian." Father John Kronstadt writes: "The whole world is but a cobweb in comparison to the human soul of a Christian." The Christian is an earthen vessel into which is poured divine power and light. Whether this vessel is placed on a golden royal throne or whether it is lowered into a dark hut of a beggar, its value will be neither magnified nor diminished. Does not gold have the same value whether it is wrapped in a silk handkerchief or in a cabbage leaf?
! CONTEMPLATION
Contemplate the meekness of the Lord Jesus:
# His meekness in His hidden life in Nazareth until the age of thirty;
# His meekness in dealing with the sick and with sinners;
# His meekness in dealing with Judas the traitor and with the unjust judges.
! HOMILY
! on how man is most dear to God and God to man
"For I seek not yours, but you" (II Corinthians 12:14).
These words, which could have only been spoken by the fiery apostolic love toward one's neighbor, express the essence of the relationship of the Christian toward God, and of God toward the Christian. The love of God could very well say: "Thou, O Christian, fastest for My sake; for My sake thou dost distribute alms; for My sake thou dost lift up heartfelt prayers; for My sake thou buildest churches; for My sake thou offerest sacrifices and performest many other good deeds. All of this is good, and all of this is pleasing to Me, but thou art more precious to Me than all of this. In the end, I seek nothing of all of this; rather, I seek thee, only thee."
The love of a Christian could very well say: "O Lord, Thou gavest me health and that is good. Thou kindlest the light; Thou permittest the rain to fall; Thou dost refresh the air by Thy thunder, and that is good. Thou bestowest wealth, wisdom, many years, offspring and many other good things which Thou dost bountifully set on the table of this life. All of this is good and most good. I receive all of this with gratitude. But, in the ultimate end, that is only the hem of Thy garment. Ultimately, I do not seek anything of that, but Thee, O Lord--Thee alone do I seek."
O my brethren, that which is seen with the physical eyes is not God, and that which is seen with the physical eyes is not man. That which is seen in the whole of nature is only something of God; and that which is seen in the physical garment is only something of man. Brethren, God is Love that lowers heaven to earth. Brethren, man is love that raises earth to heaven.
O Lord, Lover of mankind, Creator and Almighty, take up Thine abode more and even more within us, with Thy Life-giving Spirit, that we may live; that we may be alive in Thy kingdom without death.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS HERMYLAS AND STRATONICUS
The Emperor Licinius raised a great persecution against Christians. St. Hermylas, a Christian and a deacon in the Church, was arrested and brought to trial. When Hermylas was informed that he was being led away to be tortured, he greatly rejoiced. In vain did the emperor threaten him. Hermylas openly confessed his faith in Christ and responded to all the threats of the emperor, saying: ! //The Lord is with me; I fear not; What can man do against me?// (Psalm 118:6). Following excruciating tortures, Hermylas was thrown into a dungeon. The guard was Stratonicus, a secret Christian, who sympathized with the suffering of Hermylas with all his heart. When it was reported to the emperor that Stratonicus was also a Christian, the emperor ordered that both of them be drowned in the Danube River. Then the executioners tied Hermylas and Stratonicus in a net, and both were drowned. Three days later, their bodies washed ashore. Christians discovered their bodies and buried them about eighteen miles from Belgrade. These glorious martyrs suffered for Christ and were glorified in the year 315 A.D.
! SAINT JAMES, BISHOP OF NISIBIS
As a hermit, James lived in an open field in the summer, while in winter he lived in a cave. On one occasion, he went down to the town of Nisibis to see how the Christian Faith was prospering and how the Christians live. There he was elected bishop. He participated in the First Ecumenical Council [Nicaea, 325 A.D.] and defended Orthodoxy against the Arian heresy. It once happened that the infidel Persians with their armies attacked Nisibis. St. James came in a procession before the ramparts of the town. Alone, he climbed and walked along the rampart, not fearing the arrows aimed at him by the adversary. As he walked, he prayed to God to preserve the town and the faithful by sending a plague of flies and mosquitoes on the Persians, thereby causing them to flee from the walls of the town. James did not seek the death of his enemies, nor did he seek some kind of catastrophe and defeat--but rather, one small vexation which would cause them to flee from Nisibis. God heard the prayers of His saint and sent a plague of flies and mosquitoes upon the Persians, driving them away. Thereby, the town of Nisibis was spared. St. James lived long and honorably. He reposed peacefully in old age, in the year 350 A.D.
! THE VENERABLE MAXIMUS KAPSOKALYVIA
He lived in the fourteenth century. Maximus led an ascetic life as a monk on Mount Athos in his own unique way. That is to say, he pretended to be a little crazy and constantly changed his dwelling place. His place of abode consisted of a hut made from branches. He built these huts one after another, and then burned them: for this he was called "of Kapsokalyvia," i.e., "of the burned huts." He was considered insane until the arrival on Mount Athos of St. Gregory of Sinai, who discovered in Maximus a unique ascetic, a wonder-working intercessor and "an angel in the flesh." Venerable Maximus reposed in the Lord in the year 1320 A.D.
! HYMN OF PRAISE
! SAINT MAXIMUS
Prayer in the heart beats like a heart,
Prayer in the heart, together with breathing,
Internal prayer is a light from within.
On Athos this was manifested by Maximus.
Like a spirit without a body, Maximus was lifted up.
Through prayer he was utterly infused with Light,
Through prayer he was filled with joy,
Through prayer he was filled with satisfaction,
Through prayer he saw the heavens opened.
Through prayer the human being was glorified,
Through prayer he sensed the nearness of Christ.
The Holy All-pure One openly appeared to him.
The soul of Maximus was sated with heaven.
Gregory of Sinai once asked him:
"Tell me, O righteous Maximus, whence do you know
That you have good and not evil visions,
And that all of these are not illusions of the devil,
False temptations and Satan's deceptions?"
"From this, I know," said he, "that they are not lies:
These visions console the spirit and body,
My spirit always yearns after them,
And, at the sign of the Cross, they will not vanish.
Because of sweet joy I know it is not delusion--
Because of blessed joy that warms me completely."
! REFLECTION
A good deed done in silence is worth more than a good deed done with an explanation, and is worth incomparably more than the most spiritual explanation without a good deed. From St. Nicholas of Myra in Lycia no words have remained, but his deeds have remained. On three occasions, without any explanation, he came at night to the home of a poor man and secretly threw a bag of gold through the window.
A certain elder of a Scetis in Egypt became very ill and desired to eat a little fresh bread, for the bread that the monks ate at that time was dried in the sun and kept for months. Upon hearing this, one of the monks, without saying anything to anyone, departed the Scetis and went to a distant town, where he purchased fresh bread for the ailing elder. Learning about the effort of this monk, the elder did not want the bread, saying: "This is the blood of my brother!" (That is to say, the brother provided it with great difficulty, with great effort). Then the other monks implored the elder to eat, saying to him: "Do not despise the sacrifice of the brother." What kind of explanation and what words of brotherly love are able to replace this simple and silent act of brotherly love?
! CONTEMPLATION
Contemplate the hunger and thirst of the Lord Jesus for justice:
# How He came into the world to restore distorted justice;
# How He proclaimed God's justice and unmasked injustice;
# How He hastened to do numerous acts of justice in order to leave us an example.
! HOMILY
! ! on the Kingdom of God which is within
"The Kingdom of God is within you" (Luke 17:21).
All that belongs to God carries the seal of immortality. And the Kingdom of God is immortal. If we desire to breathe the air of immortality, we must enter within ourselves, within our hearts, within the Kingdom of God. Outside of ourselves is the air of time, the air of transitoriness and decay, in which the soul breathes with difficulty. The kingdom of nature is the sensual kingdom; hence, it is a kingdom foreign to our souls--our souls being of our inner kingdom. Why do men love to reside for a long, long time in a foreign land? Why do they rarely and reluctantly enter into their own home? Whenever we think about the world, we are thinking about that foreign land. Whenever we converse about the sensual world, we are conversing about a foreign land. Living by the senses, we are similar to a man who rushes around all day to the homes of strangers and only at night returns to his own home to sleep. And so we dedicate our waking time to death and our sleep to immortality! We come to ourselves, we return to ourselves only in sleep. But even our sleep is dreaming of our waking life, i.e., even when we are in our own home, in an unconscious state, we dream of foreign homes. Our dreams are sensual, for our consciousness is sensual. And so we are in a foreign land; we are strangers in reality and in dreams. We are constantly outside ourselves. The Lord wants to return us to ourselves, to His home and to His homeland. For us, the Kingdom of God is within us; outside of ourselves is a foreign land. In order to escape from a foreign land and find our true home, in which we directly encounter God, we must enter within ourselves, into our hearts. There is the King; there also is the Kingdom.
O Lord, King of the angels and saints, show us the riches and the light of Thy Kingdom within us, that we may love Thy kingdom more than we love the foreign land of the sensual--the kingdom of change and transitoriness.
To Thee be glory and praise forever. Amen.
! SAINT SAVA [SABAS], ARCHBISHOP OF SERBIA
Sava was born in 1169 A.D. He was the son of Stefan Nemanja the Grand Župan of Serbia. As a young man, Sava yearned for the spiritual life, for which he fled to the Holy Mountain [Mt. Athos], where he was tonsured a monk and lived according to the ascetic rule with rare zeal. Stefan Nemanja followed the example of his son and came to the Holy Mountain, where he was tonsured a monk and eventually fell asleep in the Lord as the monk Simeon.
Sava obtained the independence of the Serbian Church from the Byzantine emperor and the patriarch, and became the first Archbishop of Serbia. Together with his father, he built Hilandar Monastery and, after that, many other monasteries, churches and schools throughout the Serbian lands. On two occasions he made pilgrimages to the sacred places in the Holy Land. He restored peace between his two brothers, who were estranged because of a struggle for power. He restored peace between the Serbs and their neighbors. In establishing the Serbian Church, he also established the Serbian state and culture. He instilled peace between all the Balkan peoples and worked for the benefit of all--for which he was loved and respected by all who lived in the Balkans. He gave a Christian soul to the Serbian people--a soul that did not perish with the eventual collapse of the Serbian state. Sava reposed in Trnovo, Bulgaria, during the reign of Emperor Asen, on January 12, 1236 A.D., after becoming ill following the Divine Liturgy on the Feast of Theophany. King Vladislav translated his body to the Mileševo Monastery, from which Sinan Pasha removed St. Sava's relics, to burn them on Vračar hill in Belgrade on April 27, 1595 A.D.
! THE VENERABLE MARTYRS: THE FATHERS OF SINAI AND RAITHU
These holy martyrs were slain by the Saracens--the fathers of Sinai in the fourth century, and the fathers of Raithu in the fifth century.
! SAINT HILARY, BISHOP OF POITIERS
Hilary was an ardent combatant against the heresy of Arius in the West. He suffered much because of his defense of Orthodoxy. Hilary wrote many works; the most important was his thesis about the Holy Trinity. He reposed in the Lord in the year 367 A.D.
! SAINT NINA, ENLIGHTENER OF GEORGIA
Nina was a relative of St. George the Great-martyr and Juvenal the Patriarch of Jerusalem. Her parents belonged to the nobility in Cappadocia, and--since her parents were tonsured in the monastic state--Nina was educated under the tutelage of Patriarch Juvenal. Hearing about the people of Georgia, the virgin Nina, from an early age, desired to go to Georgia and to baptize the Georgians. The Most-holy Mother of God appeared to Nina and promised to take her to this land. When our Lord opened the way, the young Nina indeed traveled to Georgia, where, in a short period of time, she gained the love of the Georgian people. Nina succeeded in baptizing the Georgian King Mirian, his wife Nana and their son Bakar who, later on, zealously assisted Nina's missionary work. During her lifetime, Nina traveled throughout Georgia, converting the entire nation to the Christian Faith. She did her work at the time of the terrible persecution of Christians at the hands of Emperor Diocletian. Having rested from her many labors, Nina reposed in the Lord in the year 335 A.D. Her body is entombed in the Church of the Holy Great-martyr George in Bodbe Convent. She worked many miracles during her life and after her death.
! HYMN OF PRAISE
! SAINT NINA
A virgin most beautiful, noble Nina,
By providence became the Apostle to the Georgians,
In defiance of the persecution by Diocletian, the Emperor.
With the Cross she baptized King Mirian,
His wife Nana and his son Bakar,
And through them, all the people and the elite of the leaders.
With the Cross of the Son of God she baptized them all.
Saint Nina, Apostle to the Georgians.
From her youth Nina prayed to God
That Djul (the Rose)--Georgia--be baptized by her;
And that for which she prayed, the good God granted.
From Nina's hand the Cross shone
Upon gentle Georgia, where it shines even now,
Where Nina's hand blesses even now.
There is Nina's grave, over which a church glistens,
Glorifying Saint Nina and the Lord Christ.
! REFLECTION
If, at times, the dogmas of the Faith seem like hard food, you should first endeavor to fulfill the moral dogmas of Christianity: then the understanding of the dogmas of the Faith will be revealed to you. The inquisitive examination of higher things, without effort regarding the improvement of your life, does not bring any benefit. Once, the monks of Egypt were reflecting on Melchisedek, and not being able to come to a clear understanding of the mysterious personality of this ancient king and high priest, they invited Abba Copres to their assembly and asked him about Melchisedek. Upon hearing this, Copres struck himself three times on the mouth and said: "Woe to you Copres! You left that which God commanded you to do, and you inquire into that which God does not require of you." Hearing him, the monks were ashamed and dispersed. St. John Chrysostom writes: "If we adhere to the true dogmas and are not concerned about our behavior, we will not have any kind of benefit; and in the same way, if we concern ourselves about our behavior and neglect true dogmas, we will receive no benefit for our salvation. If we want to be delivered from Gehenna and to gain the Kingdom, we need to be adorned on both sides--with correctness of dogmas and honorable living."
! CONTEMPLATION
Contemplate the mercy of the Lord Jesus:
# Toward sinners and toward those who are ill;
# Toward the people who are confused, as a flock without a shepherd;
# Toward mankind in general, for whom He allowed Himself to be crucified.
! HOMILY
! on the vision of the invisible world
"We look not at the things which are seen, but at the things which are not seen" (2 Corinthians 4:18).
We see this material and transient world, but we look to that spiritual and immortal world.
We see earthly joy, often interrupted by tears and sighs and, in the end, always concluding with death; but we look to spiritual joy among the angels and saints of God in the heavens, to joy uninterrupted and eternal.
We see the sufferings and failures of the righteous in this life; but we look at their glory and celebration in the next world.
We see many successes, the glory and the honor of the unrighteous in this life; but we look to their defeat, condemnation and indescribable torment in eternity.
We see the Church of God often humiliated and persecuted in this world; but we look to the final victory of the Church over all of her enemies and adversaries, both visible and invisible.
Brethren, we often see tyrants and abductors as rulers and wealthy men in this age, and we see saints as poor, dejected and forgotten; but then we look at the other kingdom, the Kingdom of God--eternal, sinless and immortal--in which the saints will reign, without one tyrant or abductor.
O Lord, most patient and most merciful, open our spiritual vision, that we may see that which awaits us after this brief life, and that we endeavor to fulfill Thy law.
To Thee be glory and praise forever. Amen.
! THE VENERABLE PAUL OF THEBES
Paul was born of wealthy parents in Lower Thebes in Egypt during the reign of Emperor Decius. Paul, with his sister, inherited all the property of their parents. But his brother-in-law, an idolater, wanted to confiscate Paul's share of the property and threatened to betray Paul before the judge as a Christian if he did not cede his property to him. This misfortune, coupled with the heroic examples of self-sacrifice by the Christian martyrs that Paul saw with his own eyes, motivated him to give his share of the property to his sister. The he, as a pauper, withdrew into the desert, where he lived an ascetic life until his death. To what spiritual heights this ascetic giant reached was witnessed by no less a person than St. Anthony the Great, who once visited Paul and saw how the wild beasts and birds of the air ministered to him. Returning from this visit, Anthony said to his monks: "Woe is me, my children! A sinful and false monk am I, a monk only in name. I saw Elias, I saw John in the wilderness--and in truth I saw Paul in Paradise!" St. Paul lived 113 years and peacefully reposed in the Lord in the year 342 A.D.
! THE VENERABLE JOHN KALYVITES [THE HUT DWELLER]
John was born of wealthy and distinguished parents in Constantinople during the reign of Leo I. He was their only child. Drawn by an inclination for the spiritual life, the young John secretly fled with a monk to a monastery in Asia Minor. For six year in this monastery, he remained in the greatest abstinence, prayer and obedience toward the abbot. Then the devil assailed him with the temptation that he should leave the monastery, return home to his parents, and live with them there as a nobleman. Indeed, he did return to the home of his parents dressed as a beggar. He saw his parents but did not want to make himself known to them. He took up lodging as a beggar in their courtyard, living on the crumbs that the servants threw to him and enduring much ridicule from everyone. John lived thus for three years, constantly praying to God that He save the souls of his father and mother. When John fell ill and sensed death approaching, he made himself known to his parents--who recognized him by a precious book of the Gospels which they had given him in his childhood and which he had kept for himself as his only possession. And so, this young man, even though he was very wealthy, defeated the devil and saved his soul and the souls of his parents. He reposed in the Lord in about the year 450 A.D.
! THE VENERABLE GABRIEL OF LESNOV
Gabriel was a Slav and a companion of St. Prochorus of Pchinja and St. John of Rila. He lived a life of asceticism in the tenth century at Kratov, on Mount Lesnov, where he erected a church dedicated to the Holy Archangel Michael. The beautiful church now located there was built by Jovan Oliver, a duke of Tsar Dušan. St. Gabriel was a miracle-worker both during his life and after his death. He reposed in the Lord near the end of the tenth century.
! THE HOLY MARTYR PANSOPHIUS
Pansophius was the son of the Alexandrian proconsul Nilus. Abandoning worldly honor and riches, he was tonsured a monk as a young man. For twenty-seven years, he lived a life of strict asceticism, raising his spirit to the higher world. During the reign of Decius he was dragged before the court, where he was flogged for the name of Christ, and under great torture he gave up his soul to God.
! HYMN OF PRAISE
! THE ! V! ENER! ABLE JOHN KALYVITES
John was a young lad,
A young and wealthy lad,
But nothing tempted him.
Neither youth nor gold.
His father was a royal nobleman,
His mother a fine lady,
But he left them both
For the love of the Son of God.
Christ was his wealth,
All his riches, all his beauty.
Christ the Lord he loved
More than his own life.
And instead of his rich parents
Crying out in hades,
Behold, their son, through poverty
Saved himself and them.
Even today, many people
Who choke themselves with riches,
Humble John can shame--
And rescue their sinful souls.
! REFLECTION
Do not ever think that God does not hear you when you pray to Him. He hears our thoughts, just as we hear the voices and the words of one another. And if He does not act immediately according to your prayer, it is either because you are praying to Him in an unworthy manner, or because you ask something of Him which would be detrimental to you, or because He, in His wisdom and providence, delays the fulfillment of your petition until the proper moment. Father John of Kronstadt writes: "As by means of the electric telegraph we speedily communicate with persons who are far away from us, so likewise, by means of lively faith--as though through telegraph wires--we speedily communicate with God, with the angels and saints. As we trust entirely in the speed of the electric current and in its reaching its destination, so likewise should we completely trust in the speed of the prayer of faith and in its reaching its destination. Send your petition to God and the saints by means of the telegraph of faith, and you will speedily obtain an answer." And again, in another place, St. John writes: "God and the created spirits, and the souls of the departed--as well as those of the living--are sentient beings; and thought is rapid and in some manner omnipresent. Think of them with your whole heart, and they will be present with you. God will surely be with you always; and the others, by the gift and power of God, will also be with you."
! CONTEMPLATION
Contemplate the purity of the Lord Jesus:
# The purity of His mind;
# The purity of His heart;
# The purity of His will;
# The purity of His tongue;
# The purity of His appearance and of all His senses.
! HOMILY
! on the victorious faith
"And this is the victory that overcometh the world, even our faith" (I John 5:4).
Christ the Lord conquered the world. That, brethren, is also our victory. The apostles conquered the world and that is our victory. The saints, virgins and martyrs conquered the world and that is our victory. Brethren, there is nothing more powerful in the world than the Christian Faith. The swords that struck this Faith became blunt and broken, but the Faith remained. The kings who fought against this Faith were smothered under the anathema of their evildoings. The kingdoms that waged war against this Faith have been destroyed.The towns that rejected this Faith lay demolished in their ruins. The heretics who corrupted this Faith perished in soul and body, and under anathema they departed from this world, but this Faith remained.
Brethren, when the world pursues us with its temptations--the temptation of external beauty, the temptation of riches, the temptation of pleasure, the temptation of transient glory--with what shall we resist and by what shall we be victorious, if not by this Faith? In truth, we prevail by nothing except by this invincible Faith, which knows of something greater than all the wealth of this world.
When all the temptations of this world reveal the opposite side of their faces--when beauty turns into ugliness, health into sickness, riches into poverty, glory into dishonor, authority into humiliation, and all-blossoming physical life into filth and stench--by what shall we overcome this grief, this decay, this fifth and stench, and preserve ourselves from despair, if not by this Faith? In truth, by nothing except this invincible Faith, which teaches us eternal and unchangeable values in the Kingdom of Christ.
When death shows its destructive power over our neighbors, over our relatives and our families, over our flowers, over our crops, over the works of our hands, and when it turns its irresistible teeth even on us--by what shall we conquer the fear of death, and by what shall we unlock the doors of life, stronger than death, if not by this Faith? In truth, by nothing except this invincible Faith, which knows about the resurrection and life without death.
O Lord Jesus, Conqueror of the world, help us also to conquer the world by our faith in Thee.
To Thee be glory and praise forever. Amen.
! SAINT PETER THE APOSTLE [THE CHAINS OF ST. PETER]
St. Peter is commemorated on this day because of the chains with which he was shackled by the lawless Herod and which fell from him during the appearance of an angel in prison: //Suddenly the angel of the Lord stood by him and a light shone in the cell. He tapped Peter on the side and awakened him, saying, 'Get up quickly.' The chains fell from his wrists//(Acts of the Apostles 12:7). The chains were preserved by Christians as much for the memory of this great apostle as for their healing power, for many of the sick were healed by touching them, as was the case with the apron of the Apostle Paul: //then when the face cloths or aprons that touched his skin were applied to the sick, their diseases left them and the evil spirits came out of them// (Acts 19:12). St. Juvenal, the Patriarch of Jerusalem, gave these chains as a gift to the Empress Eudocia, the exiled wife of the Emperor Theodosius the Younger. She divided them into two and sent one half to the Church of the Holy Apostle in Constantinople and the other half to Rome, to her daughter, Empress Eudoxia, the wife of Valentian. Eudoxia built the Church of St. Peter and placed these chains in it, together with those chains with which Peter was shackled before his death under Emperor Nero.
! THE HOLY MARTYRS SPEUSIPPUS, ELEUSIPPUS, MELEUSIPPUS AND THEIR GRANDMOTHER LEONILLA.
The three brothers, triplets, Speusippus, Eleusippus, Meleusippus all suffered for Christ in France during the reign of Emperor Marcus Aurelius (161 - 180 A.D.). At first only Leonilla was a Christian, while her grandsons were heathens. After prolonged counseling on the part of their pious grandmother and the local priest, these three brothers received baptism. Having been baptized, they began with youthful zeal to live a life devoted to their Faith, and with this fervor they destroyed all the idols in the whole vicinity. Accused and brought before the tribunal, they acknowledged their act and openly confessed their faith in Christ. The judge had them thrown into prison, summoned their grandmother Leonilla, and directed her to go to the prison and counsel her grandsons to deny Christ and worship the idols. Without a word, Leonilla went to the prison--but instead of counseling her grandsons to deny the true Faith, she began to encourage them not to waver, but to endure all torments to the end and to die for Christ. When the judge again questioned them and realized their strengthened steadfastness in the Faith, he condemned them to death. At first, all three of them were hanged on a tree, where they hung "as strings on a harp," after which they were flogged and finally burned in fire. A certain woman, Jovilla, heartened at the courage of these martyrs, cried out: "I too am a Christian!" The pagans immediately apprehended and beheaded her, together with the elderly Leonilla.
! THE VENERABLE MARTYR DAMASKIN OF GABROVO
Damaskin led a life of asceticism at Hilandar Monastery, where he became the abbot. When he sought of a debt due to the monastery from some Turks, they persuaded a Moslem woman to enter the house where Damaskin lived. Then those Turks came and, finding this woman, dragged Damaskin before the Cadi [Moslem Judge], who then proposed to him: either be hanged or convert to Islam. To this Damaskin responded decisively: "It would be insanity if I, for this transient life, were to purchase eternal death." He was hanged in the year 1771 A.D. in Svishtov. Thus, Damaskin sacrificed his body in order to save his soul. But God's punishment immediately befell his murderers. While they set out to cross the Danube River in a row boat, a storm arose and capsized the boat, and they drowned.
! THE VENERABLE ROMIL
Romil was born in Vidin. He was a disciple of St. Gregory of Sinai. He lived a life of asceticism in several monasteries. Constantine Tsamblak lived together with him in the Monastery of Ravanica [Serbia]. St. Romil reposed in the Lord in about the year 1375 A.D., at Ravanica Monastery.
! HYMN OF PRAISE
! SAINT LEONILLA
Leonilla, grandmother aged,
By the Spirit was made as powerful as a lioness.
When she had prepared her grandsons for God,
She herself, a martyr, became.
To Leonilla, the tribune screamed,
Hissing with bitter anger:
"Go, Grandmother, to the dungeon
And counsel your grandsons.
Counsel them to deny
The so-called Christ God.
Either they renounce Christ
Or they renounce their young lives."
Leonilla, in the dungeon,
To her grandsons spoke:
"Of worldly powers, do not be afraid,
Even though they burn you alive.
Cleave to the glorious Christ
And His Gospel.
For you He has prepared
An eternity of radiance and joy.
Of bitter wounds, do not be afraid,
For they shall pass. Neither be afraid of death--
Death can neither hide nor annihilate
Those who are faithful to Christ."
Three grandsons, in the midst of the fire,
To God offered up praise,
While the evil one beheaded
Their dear grandmother Leonilla.
! REFLECTION
Nothing crushes human pride as does habitual obedience toward elders. In ancient Sparta, obedience was considered a great virtue. It is said that a Spartan soldier, who was rushing into battle armed with a sword, caught up with his enemy. At the precise moment when the Spartan was about to slay him, the trumpet sounded to end the fighting, and he replaced his sword in the sheath. When someone who saw this asked him, "Why did you not slay the enemy?" he replied, "It is better to obey the commander than to slay the enemy." Christian obedience differs from this Spartan obedience in that it is voluntary and has as its goal the salvation of the soul, i.e., it is not for the preservation of an earthly kingdom but rather for obtaining the Heavenly Kingdom. St. John the Dwarf began his ascetic life with a certain elder of Thebes. In order to teach his disciple obedience, the elder planted a withered tree in the ground and ordered his disciple to water it daily. For three years, and without murmuring, John watered this withered tree until it finally turned green and brought forth fruit. This is the fruit of unmurmuring obedience. The Crucified Lord Himself //became obedient unto death! // (Philippians 2:8).
CONTEMPLATION!
Contemplate the peace of the Lord Jesus:
# The peace which He carried in His soul--the only perfect Peace-bearer;
# The peace which He created among men--the only perfect Peacemaker;
# The peace which He gave to His disciples--the only perfect Peace-giver.
HOMILY!
on how we are all free only if we are slaves of Christ!
"For he that is called in the Lord, being a servant, is the Lord's freeman: likewise also he that is called, being free, is Christ's servant (I Corinthians 7:22).
The great news that Christianity daily announces to the world is that a thing is evaluated at its full value not according to its external appearance, but by its essence. Evaluate things not according to their color and shape but according to their meaning. Evaluate a man not by his position and property but by his heart--in which his feelings, his reason and his will are united.
According to this (which is always a new teaching for the world), he who is outwardly enslaved is not a slave, and he who possesses outward physical freedom is not free. According to worldly understanding, a slave is one who enjoys the world the least, and a free man is one who enjoys the world the most. According to Christian understanding, a slave is one who enjoys the least from the living Christ, while a free man is one who enjoys the most from the living Christ. Further, according to worldly understanding, a slave is one who carries out his own will less frequently and the will of others more frequently, while a free man is one who carries out his own will more often and the will of others less often. However, according to Christian understanding, a slave is one who carries out his own will more often and the will of God less often, while a free man is one who carries out the will of God more frequently and his own will less frequently. To be a slave of the Lord is the only true and worthy freedom of man--and to be a slave to the world and to one's self, to sin and vice, is the only fatal slavery. A man might thinbk of kings on their thrones: are there any men on earth more free? Yet, many kings were the most base and the most unworthy slaves of the earth. Of shackled Christians in the dungeons, a man might think: are there any slaves on earth more miserable? However, the Christian martyrs in the prisons felt like free men, and they were filled with spiritual joy! They chanted Psalms and raised up prayers of gratitude to God. Freedom that is tied to grief and sorrow is not freedom, but slavery. Only freedom in Christ is tied to unspeakable joy. Lasting joy is the mark of true freedom.
O Lord Jesus, the only Good Lord, Who grantest us freedom when Thou bindest us more strongly to Thyself, make us Thy slaves as soon as possible, that we would cease to be slaves of cruel and unmerciful masters.
To Thee be glory and praise forever. Amen.////
! THE VENERABLE ANTHONY THE GREAT
Anthony was an Egyptian and was born in about the year 250 A.D. in the village of Koman near Heraclea. Following the death of his noble and wealthy parents, he divided the inherited estate with his sister, who was a minor, and made sure that she was cared for by some relatives. Anthony distributed his half of the estate to the poor, and in his twentieth year he dedicated himself to the ascetic life for which he had yearned from his childhood. In the beginning, Anthony lived a life of asceticism in the proximity of his village, but in order to flee the disturbances of people he withdrew into the wilderness on the shore of the Red Sea. There he spent twenty years as a recluse, not associating with anyone except God. Through constant prayer, reflection and contemplation, he patiently endured unspeakable temptations from the devil. His fame spread throughout the entire world, and many disciples gathered around him, whom he set on the path of salvation by his example and words. During the eighty-five years of his ascetic life, only twice did he go to Alexandria: the first time to seek martyrdom during a time of persecution of the Church, and the second time at the invitation of St. Athanasius the Great, in order to refute the accusation of the Arians that he too was an adherent of the Arian heresy. Anthony reposed in the 105th year of his life, leaving behind an entire army of disciples and emulators. Even though Anthony was not a scholar, he was nevertheless a counselor and teacher of the most learned men of his time, as was St. Athanasius. When certain Greek philosophers tempted him with literary wisdom, Anthony shamed them with the question: "Which is older, the understanding or the book? Which of these two was the cause of the other?" Ashamed, the philosophers dispersed, for they perceived that they only had literary knowledge without understanding, whereas Anthony had understanding. Here is a man who attained perfection insofar as man, in general, can attain on earth. Here is an instructor to instructors and a teacher of teachers, who for a full eighty-five years perfected himself; and it was only in that way that he was able to perfect many others. Filled with many years of life and great works, Anthony reposed in the Lord in the year 356 A.D.
! THE HOLY EMPEROR THEODOSIUS THE GREAT
This glorious emperor, zealous in the Faith, reigned from 379 to 395 A.D. Constantine the Great banned the persecution of Christians, but Theodosius the Great went one step further: he outlawed the offering of idolatrous sacrifices in his realm. He assisted in the strengthening and spreading the Christian Faith throughout the world.
! THE HOLY NEW MARTYR GEORGE OF IOANNINA
George was an Albanian. He was born in the village of Churkli, Albania, of very impoverished farmer parents. The Turks used force in attempting to persuade George to embrace Islam, but he remained steadfast in the Christian Faith, for which he was hanged in Ioannina on January 17, 1838 A.D. Even unto today, George is a great miracle-worker and healer.
! HYMN OF PRAISE
! ST. ANTHONY THE GREAT, ST. THEODOSIUS THE GREAT
AND ST. GEORGE THE NEW MARTYR
Above all divisions, above all classes,
God stands passionless: the Lord above armies.
The wealthy He does not despise, nor of the poor is He ashamed.
Of the powerful He is not afraid, and to the sinful He beckons: Come!
Saints from everywhere, for Himself, He recruits:
This one who begs and that one who rules.
Like a cherry-picker who plucks only the sweet cherries,
Caring not whether the branches are coarse or smooth,
Into one beautiful wreath, the Lord weaves all,
Only when souls are repentant and holy.
The wondrous Anthony, throughout his life, fasted,
Theodosius treated the whole world with the love of Christ,
And George of Ioannina she his blood for Christ.
All three the Lord loved, eternally.
The Lord does not have loathing toward His crops,
Nor toward weaknesses of the created world.
Toward all He is the same, but toward Him all are not.
To everyone He is of service; to everything He is merciful.
Always, above everything and above all classes,
Always, the passionless God--the Lord above armies.
! REFLECTION
St. Anthony teaches: "Learn to love humility, for it will cover all your sins. All sins are repulsive before God, but the most repulsive of all is pride of the heart. Do not consider yourself learned and wise; otherwise, all your effort will be destroyed, and your boat will reach the harbor empty. If you have great authority, do not threaten anyone with death. Know that, according to nature, you too are susceptible to death, and that every soul sheds its body as its final garment." In Byzantium there existed an unusual and instructive custom during the crowning of the emperors in the Church of the Divine Wisdom [Hagia Sophia]. The custom was that, when the patriarch placed the crown on the emperor's head, he also handed him a silk purse filled with earth from a grave, so that even the emperor would recall death, avoid all pride and become humble.
! CONTEMPLATION
Contemplate the persecution of the Lord Jesus for righteousness sake:
# His persecution as a child by Herod;
# His persecution as a man and as Messiah by the Jewish scribes and elders;
# His persecution as God by many of our contemporary scribes and elders, both Jewish and Christian.
! HOMILY
! on two different types of wisdom
"For the wisdom of this world is foolishness with God" (1 Corinthians 3:19).
This is one of the great tidings that Christianity proclaims to the world. Wisdom according to God and from God is one thing, while the wisdom according to the world and from the world is another. Wisdom according to God is from the Holy Spirit. The apostles were filled with such wisdom when the Holy Spirit descended upon them. Wisdom according to the world is from the senses and from the material realm, and it is true foolishness before God, if it is not seasoned and inspired by the Holy Spirit of God.
All worldly wisdom which is guided only by the physical senses, without regard for the Holy Spirit, is foolishness before God and before God's angels. Such a wisdom does not perceive either the spirit or the purpose of this world; rather, it knows this world only as ashes from without and ashes from within--as ashes which the wind of chance piles up and strews at one moment this way, and at another moment that way.
All the wisdom of man, directed only by the senses and by physical conceptions and fantasies, is foolishness before God and the angels and saints of God, for it does not know man as man, that is, as a spiritual being related to God; rather, it knows man only as a body from without and as a body from within--as a body according to form and as a body according to essence. It is the same as if a monkey, looking at an iron locomotive, described it and said: "This is iron on the outside and iron on the inside--iron which heats it and iron which operates it, iron which gives it direction and iron which stops it!" Brethren, who is able to be filled with the wisdom of God except he who first empties himself of the foolishness of the world? With God's help, each one of us can do this. However, in response to our desires and to our efforts, God's help infallibly comes to meet us--for God alone is Goodness, Wisdom and Holiness.
O Good Lord, wise and holy, fill us with Thy life-creating wisdom.
To Thee be glory and praise forever. Amen.
! SAINT ATHANASIUS THE GREAT, ARCHBISHOP OF ALEXANDRIA
Athanasius was born in Alexandria in the year 296 A.D., and from his early childhood had an inclination to the spiritual life. He was a deacon to Archbishop Alexander and accompanied him to the First Ecumenical Council [Nicaea, 325 A.D.]. It was at this Council that Athanasius became renowned for his knowledge of, devotion to, and zeal for Orthodoxy. He contributed greatly to the destruction of the heresy of Arius and the strengthening of Orthodoxy. He wrote the Symbol of Faith [The Creed] which was adopted at the Council. Following the death of Alexander, Athanasius was elected Archbishop of Alexandria. He remained in his calling as Archbishop of Alexandria for forty years, although not for the entire time on the archepiscopal throne. With few exceptions, he was persecuted by heretics throughout his life. Of the emperors, he was persecuted the most by Constantius, Julian and Valens; of the bishops, by Eusebius of Nicomedia and many others; and of the heretics in general, by Arius and his followers. Athanasius was forced to hide from his persecutors at various times: once in a well, once in a grave, and sometimes in private homes or in the deserts. Twice he was forced to flee to Rome. Only for a while before his death did he live peacefully, as a good shepherd among his good flock, who truly loved him. Few are the saints who were so mercilessly slandered and so criminally persecuted as was St. Athanasius. His great soul patiently endured all for the love of Christ and, in the end, emerged victorious from this entire terrible and long-lasting struggle. For counsel, for comfort and for moral support, Athanasius often visited St. Anthony the Great, whom he respected as his spiritual father. A man who formulated the greatest truth, Athanasius had much to suffer for that truth--until the Lord gave him repose in His kingdom as His faithful servant, in the year 373 A.D.
! SAINT MAXIM, ARCHBISHOP OF WALLACHIA
Maxim was the son of the Serbian Despot [Prince] Stefan the Blind and his wife, Despotica [Princess] Angelina. He was tonsured a monk in the Monastery of Manasija. Pressured by the Turks, he fled to Romania, where he was consecrated to the vacant throne of the Archbishop of Wallachia. He negotiated a truce between the warring commanders Radul and Bogdan and averted a war between them. In his later years, he returned to Krušedol, where he built a monastery and, after a lengthy ascetic life, reposed on January 18, 1546 A.D. His incorrupt and miracle-working relics repose, even now, in this monastery.
! HYMN OF PRAISE
! CHRIST AS THE MEASURE OF ALL THINGS
Through Athanasius, wisdom shown,
And the truth of God enlightened men.
That wisdom is not bitter, the people recognized,
But, to all who drink it to the bottom, it is sweet;
To all who suffer for it, it is dear.
Whoever in the world feels all hope extinguished,
Whoever walks through the world as over an old cemetery,
Whoever thinks about human life as about weak slavery,
Whoever thinks about the five earthly continents as about five threshing floors,
Whoever thinks about five oceans as about five puddles--
To him, let Christ be the measure by which eternity is measured;
Let him adhere to that measure, and be confirmed in faith.
Whoever recognizes this measure will never abandon it;
He will find no other measure by which to understand the mysteries of the world.
All other measures, in spite of exertion,
Do not reach to the Alpha or the Omega:
They are as deceiving as the moon that crawls over the water,
But appears to reach the bottom of the water.
Christ surpasses both ends of the world,
Where the drama ends and where it began.
Of all the mysteries, the greatest mystery is Him.
From His Nativity to His Crucifixion on the Cross,
From His Crucifixion on the Cross to His Resurrection--He is the
true measure of all God's creation.
Through Him, measuring suffering in the midst of worldly tumult,
The saints of God suffered--without pain.
! REFLECTION
To the question, "Why did the Son of God appear on earth in a human body and not in another form of creation?" the brilliant St. Athanasius replied in this manner: "If they ask why did He not appear in some other, better form of creation--for example, as the sun or the moon, or the stars or fire, or the wind--but just as a man, let them know that the Lord did not come to show Himself, but to heal and teach sufferers. For to reveal Himself only to amaze the viewers would mean to come for a show. It was necessary for the Healer and the Teacher, not only to come, but to serve for the benefit of the suffering ones, and to reveal Himself in such a way that this revelation would be bearable for the sufferers. Not one single creature was in error in the eyes of God, except man alone: neither the sun, nor the moon, nor the sky, nor the stars, nor the water, nor the wind betrayed their ranks. On the contrary, knowing their Creator and their King--the Word--they all remained as they were created. Only human beings separated themselves from good and replaced truth with deceit; and the honor belonging to God (as well as the knowledge about Him) they transferred to devils and to men carved out of stone [idols]. What, therefore, is so unbelievable in this, that the Logos appeared as a man to save mankind?" Indeed, we also ask the unbelievers of our day: "In what form would you wish God to appear, if not as a man?"
! CONTEMPLATION
Contemplate the Lord Jesus, burdened by slander and shame for the sake of our salvation:
# Burdened by slander and shame from the Jewish scribes and elders;
# Burdened by slander and shame from the many contemporary scribes and elders;
# Burdened by slander and shame from every one of us who has been baptized in His name and who has not fulfilled His commandments.
! HOMILY
! on danger
"Let your loins be girded about, and your lights burning" (Luke 12:35).
This is the commandment of Him Who knows the weaknesses of our being, and Who desires our good more than our father and mother do. This is the commandment of our man-loving Lord. When man is ungirded, does not his entire body droop? When he girds himself, does not his entire body become as erect as a candle? As a candle stands, so must our soul stand, erect before God. How will our souls stand erect before God if unrestrained physical earthly passions and lusts weigh them down? Behold, in the loins is the nest of the main physical passions. To gird one's loins means to tighten oneself with restraint and not to give in to passions at will. But to gird one's physical loins is not the goal, but the means that we utilize to easily gird our mind, our heart and our will. Physical restraint is the primary school of our Christian character; after it comes a higher school, in which we learn restraint of the mind, restraint of the heart and restraint of the will. If we gird our mind, then lustful thoughts will be unable to find a place in its narrowness. If we gird our heart, then lustful desires will be unable to find a place in it. If we gird our will, then the evil, beastly and demonic desires will be unable to find a place in it.
Brethren, by a narrow path can one enter into the Kingdom of God. Only in the narrowness of the mind, the heart and the will, can the candles of the virtues be lighted, the flames of which rise toward God. By the image of the lighted candles, we should understand Christian virtues.
O Lord, pure and sinless, the seat of all virtues, help us to gird ourselves with restraint and to walk the narrow path to Thee with the lighted candles that Thou hast brought into the world.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MACARIUS THE GREAT
Macarius was an Egyptian and one of the younger contemporaries of Anthony the Great. His father was a priest. Out of obedience to his parents, Macarius married. However, his wife died shortly thereafter and he withdrew to the wilderness, where he spent sixty years in labor and struggle, both inwardly and outwardly, for the Kingdom of Heaven. When they asked him why he was so thin, both when he ate and when he did not eat, he responded: "From the fear of God." So much did he succeed in cleansing his mind of evil thoughts and his heart of evil desires, that God bestowed upon him the abundant gift of miracle-working, so that he even raised the dead from the graves. His humility amazed both men and demons. A demon once said to him: "There is only one thing in which I am unable to surpass you. It is not in fasting, for I do not eat anything. It is not in vigils, for I never sleep." "But what is it?" asked Macarius. "Your humility," answered the demon. Macarius often told Paphnutius, his disciple: "Do not judge anyone, and you will be saved." Macarius lived to be ninety-seven years old. Nine days before his death, St. Anthony and St. Pachomius appeared to him from the other world and informed him that he would die within nine days; and it came to pass. Before his death, Macarius also had a vision in which a Cherubim revealed to him the blessed heavenly world, commended his effort and his virtue, and told him that he had been sent to take his soul into the Kingdom of Heaven. Macarius reposed in the year 390 A.D.
! THE VENERABLE MARCARIUS OF ALEXANDRIA
Macarius was born in Alexandria and was at first a fruit vendor. He was baptized at age forty, and as soon as he was baptized he immediately withdrew to lead a life of asceticism. Together with Macarius the Great, he was at first a disciple of St. Anthony. After that, he became the abbot of the Monastery called "The Cells," located between Nitria and Scetis. He was somewhat younger than Macarius the Great, and also died later. He lived to be more than a hundred years old. Tormented by demonic temptations, especially the temptation of vanity, he humbled himself by the most rigorous labors and ceaseless prayer, lifting up his mind constantly toward God. Once, a brother saw him fill a basket with sand, carry it uphill and empty it. Astonished, the brother asked him: "What are you doing?" Macarius answered, "I am tormenting my tormentor," meaning the devil. He reposed in the year 393 A.D.
! SAINT ARSENIUS, BISHOP OF CORFU
Arsenius augmented and restructured the Order of the Sacrament of Holy Unction [Anointing with Oil] to its present form. He reposed in the year 959 A.D. His relics repose in the cathedral church in Corfu.
! SAINT MARK, ARCHBISHOP OF EPHESUS
Mark was famous for his courageous defense of Orthodoxy at the Council of Florence [1439 A.D.], in spite of the opposition of the emperor and the pope. He reposed peacefully in the year 1452 A.D. On his deathbed Mark implored his disciple George (later the glorious Patriarch Gennadius) to beware of the snares of the West and to defend Orthodoxy.
! BLESSED THEODORE, FOOL-FOR-CHRIST OF NOVGOROD
Prior to his death, Theodore ran up and down the streets, shouting to everyone: "Farewell, I am traveling far away!" He reposed in the year 1392 A.D.
! HYMN OF PRAISE
! SAINT MACARIUS THE GREAT
In Egypt, in the desert,
Great loved reigned
Among the simple monks,
As in the kingdom of the saints.
Saint Macarius
Was as a Cherubim among them.
In every good deed
An example to the monks was he.
Macarius became ill.
For him, a monk went out to seek wild strawberries;
He went forth, found and brought them
To soothe his elder's pain.
Macarius did not want to eat them.
He said: "There is a brother more ill.
Bring them to him;
This gift is more needed for that brother."
The second ailing brother wept,
And to the gift-bearer said: "Forgive me!
But my neighbor is more needy
Of this charity than I."
The gift-bearer took away the gift
And, to that neighbor, gave it,
This one gave it to a third,
And that one to a fourth, all in order,
From cell to cell,
And from brother to brother,
Until the last one came with the wild strawberries
To Macarius's door!
"Behold, father, you are ill!"
Macarius began to weep,
Seeing this wonderful brotherly love--
But he did not want to eat them.
He spilled them over the hot sand,
And to God he gave thanks,
That the dead, arid desert,
Because of love had become Paradise.
A brother loves his brother
More than he loves himself.
"O Lord, this gift,
The gift of love, is a gift from Thee!"
! REFLECTION
Contemplate the Lord Jesus as the Salt of the earth:
# As the Salt which gives flavor to this life in general;
# As the Salt which preserves mankind from decay--which would otherwise be totally decayed, from one end of its history to the other;
# As the Salt of my own life.
! HOMILY
! on victory over the world
"In the world ye shall have tribulation;, but be of good cheer; I have overcome the world" (John 16:33).
The Conqueror of the World, the One and Only, with these words teaches His followers not to fear the world.
Indeed, the world appears very strong; however, is not the One Who created the world stronger than the world?
The world is very frightening for him who does not know that God rules the world, and that He has the authority to hold it in existence as long as He wills and to return it into nonexistence whenever He wills. But to him who knows this, the world is not frightening.
Compared to Christ the Lord, this world is as a fabric woven of weakness itself; while in Christ the Lord, there is not a single weakness. To him who does not know this, the world is frightening; but he who knows it has no fear of the world.
The world has loaned us a body, and because of this it wants to acquire our soul. How can the world overpower us if we stand as soldiers of the Conqueror of the world?
The Conqueror of the World gives us weapons for the battle. By His example He teaches us how to fight, reveals the hidden enemy, shows us the path of attack and retreat, holds us in His hand, protects us under His wing, preserves us with His Life-giving Body, and gives us to drink of His Life-giving Blood. Moreover, He encourages us by crying out: "Take courage!" Brethren, what then can the world do when its defeat is sealed by the victory of Christ?
O Lord, the Conqueror of the World and our victorious Commander, be close to us always, that we may not become frightened; and direct us, that we may always be close to Thee in heart, mind and soul.
To Thee be glory and praise forever. Amen.
! SAINT SYLVESTER, BISHOP OF ROME
Sylvester was born in Rome, and from his early youth was learned in worldly wisdom and in the Faith of Christ. He always conducted his life according to the Gospel commandments. He benefited much from the instruction of Timothy the priest, whose death for the Faith Sylvester himself witnessed. Observing the example of the heroic sacrifice of his teacher, he was imbued with just such a spirit throughout his entire life. Becoming Bishop of Rome at age thirty, he reformed certain Christian customs. For example, he dispensed with the fast on Saturdays, which had been practiced by many Christians up to that time, and ordered that fasting be observed only on Holy and Great Saturday, as well as on those Saturdays that fall within the fasting seasons. By his prayers and miracles, Sylvester assisted in bringing Emperor Constantine and his mother Helena to the true Faith and baptism. With the Empress Helena he took part in finding the Honorable Cross. He governed the Church of God for twenty years. His earthly life ended honorably and he entered into the Heavenly Kingdom.
! THE VENERABLE SERAPHIM OF SAROV
Seraphim was one of the greatest Russian ascetics, clairvoyant elders and miracle-workers. He was born in 1759 A.D. and he reposed in 1833 A.D. Seraphim was distinguished by great humility. When the entire world praised him, he referred to himself as "the wretched Seraphim."
! SAINT THEODOTA
Theodota was the mother of the brothers Cosmas and Damian, the Unmercenaries and Miracle-workers. Theodota lived a God-pleasing life and in such a life she instructed her sons.
! THE VENERABLE AMMON
Ammon was a great ascetic of the fifth century. He was the abbot of the Tabennisiot Monastery in Upper Egypt. Three thousand monks lived the ascetic life under his direction. He possessed the grace-filled gifts of miracle-working and clairvoyance. When a monk once asked him for advice, he said to him, "Be like a convict in prison, as he continually asks, 'When will the judge come?' So also should you ask with trembling."
! HYMN OF PRAISE
How do you respond to those who say that Christ the Miracle-worker cannot fit into our logic? Simply reply: Fit yourself into His logic. In His logic, all eternity fits and all the nobleness of time--and so, if you wish, a place will be found even for you. If a barrel cannot fit into a thimble, you can fit a thimble into a barrel. Blessed Clement of Alexandria says: "Philosophers are children until they become men through Christ. For truth is never merely thinking."
Christ came to correct man and, therefore, man's logic. He is our Logos and our Logic. That is why we must direct our reason toward Him and not Him toward our reason. He is the One Who corrects our reason. The sun is not regulated according to our clock, but our clock is regulated according to the sun.
To contemplate the Lord Jesus as the Divine Word [the Logos]:
# How the Triune God created everything by His Word, i.e., by Christ the Lord;
# How senseless is every man who distances himself from Christ, the Word of God, and in such a man there is no Christ.
! on pride
"Pride goes before disaster, and a haughty spirit before a fall" (Proverbs 16:18)
Of all that exists at the four corners of the earth, what, O mortal man, can make us proud except stupidities and demonic illusions? Did we not enter into the world naked and wretched, and are we not going to depart this world in the same manner? Everything that we have, did we not borrow it; and at our death, are we not going to return everything? Oh, how many times has this been said and ignored? The wise apostle says: //For we have brought nothing into this world, and it is certain we can carry nothing out// (I Timothy 6:7). And when we offer the sacrifice to God of ordinary bread and wine, we say: "Thine own of Thine own, we offer unto Thee" (Divine Liturgy of St. John Chrysostom). For nothing that we have in this world is ours, not even a crumb of bread or a drop of wine--there is nothing that is not of God. In truth, pride is the daughter of stupidity, the daughter of a darkened mind, born of evil ties with the demons.
Pride is a broad window through which all of our merits and good works evaporate. Nothing makes us so empty before men and so unworthy before God as does pride. If the Lord is not proud, why should we be proud? Who has more reason to be proud than the Lord, Who created the world and Who sustains it by His power? And behold, He humbles himself as a servant, a servant to the whole world--a servant even to death, to death on the Cross!
O humble Lord, burn up within our hearts the devil's sowing of pride with the fire of Thy Holy Spirit, and plant within it the noble sowing of humility and meekness.
To Thee be glory and praise forever. Amen.
! THE VENERABLE EUTHYMIUS THE GREAT
Of noble and distinguished parents, Euthymius was born in the Armenian town of Melitene near the Euphrates River, in about the year 377 A.D. He was an only child, born in answer to the prayer of his mother, Dionysia, who had a heavenly vision regarding his birth. From his youth he lived a life of asceticism, at first in the proximity of his town; but then, after he visited Jerusalem at age twenty-nine, in the desert between Jerusalem and Jericho, called Pharan. He filled his days and nights with prayer, divine contemplation, meditation and physical labors. Around him gathered many disciples, some of whom are glorious saints, such as Cyriacus the Hermit, Sava the Sanctified, Theoctistus and others. Through the gift of God, Euthymius was a great miracle-worker; he expelled demons, healed the gravely ill, brought forth water in the desert, multiplied bread, and prophesied. He taught monks the love of labor, saying: "If you eat bread not earned by your own labor, know that you are eating of someone else's labor." When some of the younger monks wanted to fast more than others, he forbade them to do so and commanded them to come to the communal table, so that they would not become prideful as a result of their excessive fasting. He also said that it was not good for a monk to move from place to place, for, he said, "A tree frequently transplanted does not bear fruit. Whoever desires to do good, can do it from the place where he is." Concerning love, he said: "What salt is to bread, love is to other virtues."
During the first week of Great Lent, he retreated to the desert and remained there in solitary silence and divine contemplation, until just before the Feast of the Resurrection. During his lifetime, a large monastery [Lavra] was established in the proximity of his cave. Down through the centuries, this monastery was completely filled with monks, as a beehive is filled with bees. Euthymius's final command was that the monastery always adhere to hospitality and that the gates of the monastery never be closed. He reposed at the age of ninety-seven. The Patriarch of Jerusalem was in attendance at his funeral. The patriarch waited all day long until the great masses of people reverenced the body of the saint, and only in the evening were they able to complete the Office for the Burial of the Dead. On the seventh day following his death, Euthymius appeared radiant and rejoicing to Dometian, his disciple. The Venerable Euthymius was a true "son of light." He reposed in the year 473 A.D.
! THE HOLY MARTYRS INNA, NIRRA [RIMMA] AND PINNA
They are considered to be the first Slavic martyrs mentioned in history. They are referred to as Scythians and disciples of St. Andrew the Apostle. They suffered for the Faith at the hands of their pagan neighbors, on the right side of the Danube River, near Varna. Tied up on the ice, Inna, Nirra and Pinna froze, and they reposed in the Lord.
! HYMN OF PRAISE
! SAINT EUTHYMIUS
The eye that sees all, the ear that hears all
Travels with everyone, everywhere they go--
Without changing place, present in every place.
Where virtue is being kneaded, God is the yeast in the dough;
Where light is sought, He gives of Himself;
Where help is cried for, He is not absent.
Quietly and silently, but always on time,
He is in time to reap and to sow the seeds,
He is in time to reproach, He is in time to reward,
To make the young old and to make the old young,
To weed, to trim and to caress fruit--
He comesv wherever He wants and whenever He wants.
Whenever a solitary person thinks, behold, He listens;
Where two people speak, as a third party He hears;
Where the weaver weaves the cloth, her threads He counts;
The universal fabric, in His mind, He weaves.
Oh, who knows His footsteps and paces?
Who could enumerate His paths and places?
Eternal and Immortal, Triune and One,
In the trackless net of the universal fabric,
Unseen and seen, regardless of whence He is viewed,
He cuts out the paths and reveals the direction.
In the trackless net, He looks at all the paths,
And does not allow even an ant to stray.
For eighty years on earth, St. Euthymius
Dedicated such thoughts to Him.
! REFLECTION
As compassionate and lenient as the saints were toward human weakness, so terribly unyielding and unbending were they with regard to the confession of the true dogmas of the Faith. Thus, St. Nicholas of Myra in Lycia struck Arius with his hand at the First Ecumenical Council [Nicaea, 325 A.D.]. St. Anthony left his desert to come to Alexandria to publicly unmask Arius. St. Euthymius, being greatly pressured by the Empress Eudocia and the false Patriarch Theodosius, and being unable to debate rationally with them, left the monastery and hid in the desert; an example followed by all other distinguished monks thereafter. Euthymius remained in the desert until the pseudo-patriarch was ousted and Orthodoxy confirmed. When, in Jerusalem, the greatest agitation surfaced in the name of the emperor against the Fourth Ecumenical Council [Chalcedon, 451 A.D.], and when the entire population was frightened by the heretics, then St. Theodosius the Great, already burdened with old age, came to Jerusalem as a fearless soldier of Christ, entered the Great Church, ascended the stairs, waved his hands and said to the people: "If anyone does not honor the Four Ecumenical Councils as he does the four evangelists, let him be anathema." (Up to that time only four Ecumenical Councils had been convened.) All who heard him were frightened by these words, and none of the heretics dared to say anything contrary to them.
! CONTEMPLATION
Contemplate the Lord Jesus as Light:
# As a Light to my life, as a Light to mankind, as a Light to every creature;
# As a Light, especially in the darkness of fear and suffering;
# As a Light in the hour of death, and after death a Light in eternity.
! HOMILY
! on the only Light in darkness
"I am the Light of the world" (John 8:12).
Since the beginning of the world and time, no one who was ever born has dared to speak these words. There have been men, and there are men, who say: "I bring light!" But only one dared to say: "I am the Light!" Only the Lord Jesus could have spoken those words boldly and convincingly. His short life on earth and His long history of nearly two thousand years have completely justified these words. He is the Light of truth, righteousness and life.
He is the Light of truth, because He revealed in Himself the truth of the true nature of God and the true nature of man, the relationship of man to man, and the relationship of man toward God. Heaven and earth shall pass away, but His words will not pass away; for heaven and earth both came into existence by His word, and His word is from Him and with Him always, and will not pass away. [//Heaven and earth will pass away, but My words will not pass away// (Matthew 24:35 - Mark 13:31)].
He is the Light of righteousness, because He revealed the might of righteousness and the weakness of unrighteousness. He revealed this in the brightest light--by what He said, by what He did, and by what He experienced--and overcame the unrighteous ones. He has revealed it through His Church over the course of twenty centuries--through His numerous righteous saints and martyrs, for righteousness' sake. Righteousness is from God, and in the long line of history, it can never be defeated. Unrighteousness is of helpless beings. Unrighteousness quickly rushes out to the rampart with its triumphant banner, but at the same time, it is quickly thrown into the grave.
He is the Light of life. His words illuminate life. His works illuminate life. His victory illuminates life. Especially His resurrection, as the most luminous sun, illuminates life by its bright light and disperses death as a weak shadow.
O Lord Jesus, Light Most-luminous, Sun of Truth, Sun of Righteousness and Sun of Life, illuminate us sinners and unworthy ones!
To Thee be glory and praise forever. Amen.
! THE VENERABLE MAXIMUS THE CONFESSOR
Maximus was a Constantinopolian by birth. At first he was a high-ranking courtier at the court of Emperor Heraclius, and after that he was a monk and abbot of a monastery not too far from the capital. He was the greatest defender of Orthodoxy against the so-called Monothelite heresy, which proceeded from the heresy of Eutyches. As Eutyches claimed that there is only one nature in Christ [Monophysitism], so the Monothelites claimed that there is only one will in Christ [Monothelitism]. Maximus opposed that claim and found himself an opponent of the emperor and the patriarch. Maximus did not frighten easily, but endured to the end in proving that there were two wills, as well as two natures, in Christ. Because of his efforts, a council was held in Carthage, and another in Rome. Both councils anathematized the teachings of the Monothelites. The suffering of Maximus for Orthodoxy can hardly be described: he was tortured by princes, deceived by prelates, spat upon by the masses of the people, beaten by soldiers, exiled and imprisoned--until finally, with his tongue and one hand severed by the torturers, he was condemned to exile for life in the land of Skhimaris [near Batumi on the Black Sea], where he spent three years in prison and gave up his soul to God in the year 662 A.D.
! BLESSED MAXIMUS THE GREEK
Maximus was born in Greece and from there was invited to the court of the Russian Tsar Basil Ivanovich, to act as the tsar's librarian and translator. He labored much, but also suffered much for the truth. He spent a long time in prison, where he wrote the well-known Canon to the Holy Spirit, which is still in use in the Church. He reposed in the Lord in the year 1556 A.D.
! THE HOLY HIEROMARTYR [PRIEST-MARTYR] NEOPHYTUS
Neophytus was born in Nicaea. While he was still a child, he worked great miracles by the grace of God. Neophytus brought forth water from a rock and raised his dead mother. He was led by a white dove to Mount Olympus, where he drove a lion from its cave and took up residence in it. At age fifteen he was tortured for Christ in Nicaea, during the reign of Emperor Diocletian. By no means would he deny Christ. After beatings and imprisonment, Neophytus was thrown into the fire, but God preserved his life. Then they placed him before a hungry lion, but the lion fawned about Neophytus. The saint, recognizing this lion as the same one in whose cave he had practiced asceticism, began to pet him and ordered the lion to return to the cave. Then Neophytus was pierced with a lance, and his soul took up its habitation in the mansions of the Lord.
! THE HOLY FEMALE MARTYR AGNES
As a thirteen year old girl, Agnes was thrown into the fire for the Faith of Christ and was then beheaded. She showed great miracle-working power during her life and after her death. Agnes suffered during the reign of Diocletian, in the year 305 A.D.
! HYMN OF PRAISE
The spacious sea breaks out on all sides.
The earth is the trunk of the celestial garden,
But like a black trunk with golden fruit.
Thus is the black earth with the starry firmament.
The earth silently extends its invisible branches,
And on the branches are stars--golden apples.
Oh, what wonderful fruit from commonplace mud,
That the mercy of God gave to the black earth!
And man is earth; his body is of earth.
In the firmament are his stars--those are his good deeds.
His thoughts are rainbows, and they go to the end of the world--
Invisible branches, with stars at their tips!
Fruit! The Lord seeks fruit from created man.
Only by fruit does He judge man's life.
When death shakes the tree, may the golden apples
Of your life fall into God's hands.
Then you will be able to say: "My life was not in vain--
For the sake of a beautiful reality, I dreamed an ugly dream!"
! REFLECTION
The Christian Faith is the only Faith in the world that has one determined and never-changing standard of values. St. John Chrysostom speaks clearly about how it measures and classifies its values. He says: "Things are divided into three categories: The first are good and cannot be evil--for example, wisdom, charity and the like. The second are evil and can never be good--for example, perversion, inhumanity and cruelty. The third, at times, become one or, at times, become the other, according to the disposition of those who make use of them." This divine teacher explains that riches and poverty, freedom and slavery, power, disease, and even death itself fall into the third category. They are neither good nor evil by themselves, but become either one or the other, according to the disposition of men and the use that men make of them. For example, if riches were good and poverty evil, then all rich men would be good and all the poor would be evil. However, we are daily convinced that, as there are good and evil rich men, so also are there good and evil poor men. The same can be applied to the healthy and the sick, the free and the enslaved, the satiated and the hungry, and those in authority and those under subjugation. Even death is not evil, for "the martyrs, through death, became more fortunate than all others."
! CONTEMPLATION
! Contemplate the Lord Jesus as //a city that is set on a hill// (Matthew 5:14):
# As a city on the hill of the Heavenly Zion, that is, above the created world in the Kingdom of eternity;
# As a city on the hill of human history;
# As a city on the hill of my own life, that is, at the peak of my ideals, at the zenith of my thoughts and yearnings.
! HOMILY
! on understanding through doing
"If any man will do His will, he shall know of the doctrine, whether it be of God, or whether I speak of Myself" (John 7:17).
It benefits little to prove by human logic and words that the teaching of Christ is the teaching from God. The fastest and most reliable way to know that this is truth is to do the will of God in the same way that Christ proclaimed it and testified to it. Whoever does this will know that the teaching of Christ is the teaching from God.
If you weep for the sake of God, you will know what a comfort He is. If you are merciful, you will know the mercy of God. If you build peace, you will know how it becomes you to be called a son of God. If you forgive men, you will know that God forgives you.
No one can ever know that the teaching of Christ is the teaching from God, except he who does the will of God. Doing the will of God and fulfilling His commandments is the only key for unlocking Paradise, in which God is seen. That is the key for understanding Holy Scripture and all the mysteries of revelation.
St. Basil writes: "In order to understand that which is hidden in Sacred Scripture, purity of life is needed."
What else does the Lord want from us, when He teaches us that through doing His will we arrive at the understanding of the divinity of His teaching? He simply wishes that we, by [the fruit of] our deeds, become convinced of the divinity of His teaching. He does not desire that we be convinced of this in an easy manner, but rather in a more difficult manner--not only by listening, but by doing, because whoever is convinced in an easy manner will easily waver and change his mind; and as for him who is convinced in a difficult manner, it would be difficult for him to change his mind. Brethren, that is why we must endeavor to fulfill the will of God, in order that we may know God and save our souls.
O Lord, all-wise, help us by the power of Thy Holy Spirit to do Thy will.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE TIMOTHY
Timothy was one of the Seventy Apostles. He was born in Lystra in Lycaonia of a Greek father and a Jewish mother. The Apostle Paul praised his mother and grandmother because of their sincere faith: //I yearn to see you again, recalling your tears, so that I may be filled with joy, as I recall your sincere faith that first lived in your grandmother Lois and in your mother Eunice and that, I am confident, lives also in you//(II Timothy 1:4-5). Timothy first met with the great Apostle in Lystra, and was himself a witness when Paul healed the one lame from birth. Later, Timothy was an almost constant traveling companion of Paul, going with him to Achaia, Macedonia, Italy and Spain. Sweet in soul, he was a great zealot for the Faith and a superb preacher. Timothy contributed much to the spreading and establishing of the Christian Faith. Paul calls him //my own son in the faith! // (I Timothy 1:1-2). After Paul's martyrdom, St. John the Evangelist was Timothy's teacher. When the Emperor Domentian banished John from Ephesus to the island of Patmos, Timothy remained in Ephesus to serve as bishop. During an idolatrous feast called Katagogium, the pagans, resentful of the Christians, disguised themselves and treacherously attacked Timothy, killing him in about the year 93 A.D. His honorable relics were translated to Constantinople and were interred in the Church of the Twelve Apostles, beside the graves of St. Luke the Evangelist and St. Andrew the First-called.
2. THE VENERABLE MARTYR ANASTASIUS!
Anastasius was a Persian by birth. His pagan name was Magundat. When Emperor Heraclius fought against the Persians, Magundat deserted to the Christians and went to Jerusalem, where he was baptized and received the name Anastasius. It was not enough for him to be baptized, but in order to give himself completely to serving the Lord, he was also tonsured a monk. Among his other ascetic labors, Anastasius joyfully read the hagiography of the holy martyrs, and in reading them, he moistened the book with his tears and ardently yearned for martyrdom. The Lord finally crowned him with a martyr's wreath. In prison for a long time, he was cruelly tortured, until Emperor Chozroes pronounced the death sentence. Anastasius was then drowned, and, after removing him from the water, the executioner beheaded him and sent his head to the emperor. He suffered on January 22, 628 A.D., in the town of Bethsaloe near Nineveh.
HYMN OF PRAISE!
SAINT TIMOTHY!
Holy Apostles warmed by the Spirit,
Spiritual athletes illumined by the Spirit.
By the victory of Christ they conquered the world;
They conquered the world and established the Church.
As great eagles, they flew mightily;
In torment and in death, they raced bravely.
From the world, they so easily departed,
But from Christ, they could never be separated.
Their love for Christ separated them from everything;
Their love for Christ glorified them for all ages.
Once they were mocked by earthly tyrants;
Now they are crowned with the radiance of eternal day.
Once they were ridiculed by earthly sages;
Now they are brothers of the angels and leaders of the saints!
Pray for us, O eagles of Christ,
That Christ may renew us sinners through the Spirit.
St. Timothy, star among stars,
Help even us by your prayers.
REFLECTION!
The Orthodox Church possesses an inexhaustible treasury of proofs of life after death. One of the numerous proofs is cited here: an example that simultaneously witnesses that the souls of men live after physical death, and that voluntary obedience leads to blessed eternity. When St. Theodosius the Great founded a monastery, he had only seven monks in the beginning. In order to confirm in these monks the remembrance of death, he ordered them to dig a grave. When the grave was finished, Theodosius stood above the grave, surrounded by the seven monks, and said: "Behold, my children, the grave is ready! Are there any among you who are ready for death, in order to be buried in this grave?" One of them, Basil by name and a priest by rank, fell to his knees and sought a blessing from Theodosius to die. Theodosius ordered that a memorial service be held for the soul of Basil on the third, the ninth and the fortieth day, as is the custom for the deceased. When the fortieth memorial service was completed, Basil, in full health, laid down and died. He was buried in the new grave. On the fortieth day after his burial, Basil appeared among the brethren in the church in the morning, and chanted with them. In the beginning, only Theodosius saw him, and he prayed to God that He would open the eyes of the others. Then the entire brotherhood looked and saw Basil among them. One brother, Letius, joyfully spread his arms and wanted to embrace Basil--but the latter vanished, and Letius heard Basil's voice saying: "Save yourselves, fathers and brothers, save yourselves."
CONTEMPLATION!
Contemplate the lack of concern of the Lord Jesus with regard to food and clothing:
# His lack of concern about Himself, which He showed in His works;
# His lack of concern about food and clothing which He preached to others: //So do not worry and say, 'what are we to eat?' or 'what are we to drink?' or 'what are we to wear?'// (Matthew 6:31).
HOMILY!
on God's omniscience and providence!
"But the very hairs of your head are all numbered" (Matthew 10:30).
Brethren, //the very hairs of your head are all numbered//--even more so are the days of your life! Do not be afraid, therefore, that you will die before your appointed time, or yet hope that you will somehow be able to extend your life for one day beyond the will of Him Who counts and measures. Let this knowledge teach you meekness and fear of God.
//The very hairs of your head are all numbered//--even more so are your sufferings on earth! Do not be afraid, therefore, that you will suffer beyond measure. Fear even less that your sufferings will remain forgotten and unaccounted for by Him Who sees all. This knowledge will teach you patience and confidence toward your Creator and Provider. //The very hairs of your head are all numbered//--even more so are your friends and enemies on earth! Do not be afraid, therefore, that you will have either too many friends or too many enemies. Neither be afraid that your enemies will overcome you, nor be assured that your friends will defend you. Concern yourself only that you have God for a friend, and do not be afraid of anything. Behold, He Who loves you unalterably is your only friend.
O Good Lord, Wise Provider, Who knows the number, measure and time of all, banish from us every fear--except the fear of Thee--that through fear of Thee, we may arrive at the pure and holy love for Thee, our Creator and Benefactor.
To Thee be glory and praise forever. Amen.////
! THE HIEROMARTYR [PRIESTLY-MARTYR] CLEMENT, BISHOP OF ANCYRA
Clement was born in the year 258 A.D. in the city of Ancyra of a pagan father and a Christian mother. His devout mother, Euphrosyne, prophesised that her son would die a martyr's death; then she herself departed this world when Clement was twelve years old. Her friend Sophia took Clement into her home as a son, and assisted in rearing him with a Christian spirit. Clement was so famous for his virtuous living that he was elected Bishop of Ancyra at the age of twenty. In his youth he attained the wisdom of a mature adult, and by great abstinence he tamed and conquered his body. Clement fed on bread and vegetables only, and did not eat anything butchered or bloody. During the reign of Emperor Diocletian, he was tortured horribly, "as no one had ever been, since the beginning of the world." He spent twenty-eight years in torments and in dungeons. Eleven different torturers tormented and tortured him. At one time, when they struck him in the face, spat upon him and broke his teeth, he cried out to Domentian, his torturer: "You are doing me great honor, O Domentian, and you are not torturing me, for the mouth of my Lord Jesus Christ was also beaten and struck in like manner--and behold: I, the unworthy one, have now been made worthy of this!" When Clement was brought to Rome before Diocletian, the emperor placed various weapons of torture on one side, and on the other side such gifts as medals, clothing, money and all that the emperor could bestow. Then he told Clement to choose. The martyr of Christ glanced with scorn at all the emperor's gifts and chose the instruments of torture. Clement was indescribably tortured: piece by piece they removed the flesh from his body, so that the white bones showed beneath the flesh. Healed of these wounds, he was beheaded by a soldier in the church in Ancyra, while he was celebrating the Divine Liturgy as bishop, in the year 312 A.D. The miracles of St. Clement are without number.
! THE SIXTH ECUMENICAL COUNCIL
The first session was held in Constantinople during the years 680-681 A.D. This Council condemned the Monothelite heresy, which erroneously taught that in Christ there was only one divine will and not a human will. The Council also passed several canons concerning the order and discipline of the clergy.
! SAINT PAULINUS THE MERCIFUL
At first, Paulinus was a Roman senator, and afterward a bishop in Nola. He followed the example of his friend, St. Ambrose, and received baptism. Following his baptism, Paulinus withdrew to the Pyrenees Mountains in Spain, where he lived a life of asceticism. But as no lighted lamp can be hidden, so also was St. Paulinus discovered and elected Bishop of Nola. He was a good and merciful shepherd. He reposed peacefully in the year 431 A.D. His relics repose in the Church of St. Bartholomew in Rome.
! HYMN OF PRAISE
! TO THE CREATOR
O Infinite Creator, in soul I bow before Thee.
When I speak Thy Name I belittle Thee;
With my every thought I belittle Thee.
What is the mind able to think before the open sea of Thy spaciousness?
What can the tongue say when it must remain silent
Before Thine awesome mountains and chasms?
Before Thine immeasurable height and width,
Before Thy plains, slopes, depths and distance--
And nearness, O God, oh yes, even nearness!
And still more miraculous, Thy humble lowliness!
Thou, as a man, didst lower Thyself to our lowliness,
Didst lower and constrain Thyself into a mortal valley,
That Thou mightest raise the valley to the heavenly firmament,
And make worn-out creation new.
Of all Thy qualities, Thy lowliness
Halts my thought. Thou bindest my lips!
What can I think, what can I say
About the hungry, thirsty and crucified God?
What can I say to Thee, O Thou Most-rich,
Who, because of me, becamest the poorest One?
Let the tongue keep silent, let tears speak:
Save, in Thy mercy, what Thy thought has created.
! REFLECTION
Compassion has always been a characteristic of a true shepherd of Christ's flock. In his glorious homilies, St. John Chrysostom did not emphasize or praise anything more strongly than compassion. St. John the Merciful, Patriarch of Alexandria, lamented every day wherein the opportunity was not given him to show compassion to someone. St. Paulinus deserved to be called the Merciful, for he was truly compassionate in the full Christian sense of the word. Once, when the Vandals looted Nola, they took many men into slavery. The Vandal Prince Rig took a certain widow's only son as a slave. The widow came weeping to her bishop and sought money from him to pay the ransom for her son. Not possessing anything, Bishop Paulinus dressed in the clothes of a simple man and asked the widow to take him before the prince and exchange him for her son. The prince released the widow's son and took Paulinus with him to Africa--where Paulinus served as the prince's gardener until, by God's Providence, he was freed and returned to Nola with the other slaves.
! CONTEMPLATION
Contemplate the Lord Jesus as Healer:
# As a Healer of bodily infirmities;
# As an Exorcist of evil spirits from the insane;
# As a Healer of the human spirit and mind, by the light of His divine teaching;
# As my own Healer of all pains and evils.
! HOMILY
! on the angelic state of the saints
"But they which shall be accounted worthy to obtain that world... Neither can they die any more: for they are equal unto the angels (Luke 20:35-36).
Thus speaks He Who knows, He Who has seen, and He Who cannot be deceived. Brethren, what have we to doubt anymore? This testimony is clearer than a summer's noon, harder than diamonds and more precious that all the riches of this world; and this is the testimony: Those who are //accounted worthy// of that world and resurrection can no longer die, but are immortal like the angels of God.
What are the angels like? Those same angels who appeared at the time of Abraham and came to the aid of men are the same ones who today appear and aid men. They are not dead but alive; they have not grown old but are young. They are the same ones who beheld Adam in Paradise and who will behold the Final Resurrection and the Judgment, and the Kingdom of the saints.
The righteous are similar to angels. The apostles, prophets, saints and martyrs live even today, and will live always and can no longer die. Hundreds and thousands of years pass, but they can neither die nor age anymore; rather //they are equal unto the angels//.
The Lord testified to us in the above words that the righteous will be crowned with immortality, and He demonstrated this by His own Resurrection, and affirmed it through His glorified saints.
O my brethren, let us awaken and labor--to become worthy to obtain that blessed world!
O resurrected and immortal Lord, help us to become worthy of Thine immortal Kingdom, in which Thou reignest with Thine angels and Thy saints throughout the ages of ages!
To Thee be glory and praise forever. Amen.
! THE VENERABLE XENIA
Xenia was born in Rome, the only daughter of a prominent senator. Drawn by love for Christ, she refused to enter into marriage as her parents wished. To avoid it, she secretly fled her home with two of her slaves, and arrived on the Island of Kos, at a place called Mylassa. There she founded a convent for virgins, where she lived an ascetic life until her death. Even though she was a frail woman, she possessed a steadfast endurance in fasting, prayer and all-night vigils. She often stood all night in prayer. She was dressed more poorly than all the other sisters, and she often sprinkled the bread she ate with ashes from the censer. At the time of her death (450 A.D.), a wonderful sign appeared over the virgins' convent: a wreath of stars with a cross in the center, brighter than the sun. Many who were sick received healing from her relics. Her female slaves [who became tonsured nuns] continued in the example of their abbess. When they reposed, they were buried, according to their wish, at the feet of Blessed Xenia.
! THE HOLY HIEROMARTYR [PRIEST-MARTYR] BABYLAS
Babylas was a priest in Sicily. He suffered for Christ with two of his disciples in the third century.
! THE VENERABLE MACEDONIUS
Macedonius was a Syrian hermit. He ate only grains of barley softened with water, and only in his old age did he allow himself baked bread. He ended his earthy life in the year 418 A.D.
! THE VENERABLE PHILO, BISHOP OF CYPRUS
When St. Epiphanius was summoned to Rome to help the sister of the Emperor Honorius by his prayer, he consecrated Philo a bishop. Philo wrote commentaries on the Pentateuch and the Song of Songs. He reposed peacefully in the fifth century.
! THE VENERABLE DIONYSIUS OF OLYMPUS
Dionysius was a miracle-worker. He lived in asceticism on Mount Olympus. He was tonsured a monk on Mount Athos, where he was the abbot of the Monastery of Philotheou. Toward the end of his life, he again withdrew into solitude on Mount Olympus, where he reposed in the sixteenth century.
! HYMN OF PRAISE
! SAINT XENIA
The virgin Xenia, like Agnes,
Or the all-glorious Thecla or Anastasia,
Did not want to be tied to a corruptible man,
But found a Bridegroom in the Immortal Christ.
With all her soul, Xenia loved His beauty,
Mercy, tenderness and radiant purity.
Even the senator's house and wealth, she left,
When the Sun of Righteousness shone in her soul.
The soul! The soul! The soul is the true bride,
While the body is poor, like the transient grass.
Xenia began to adorn the bride,
And, by many prayers, to wash and nourish her,
That the bride would take on a heavenly appearance,
Pleasant and worthy of the Heavenly Bridegroom.
The labors of Holy Xenia were pleasing to the Bridegroom,
And many wondrous gifts, upon her, He bestowed.
When her pure soul, over the flesh, gained the rule,
As calmly as a king over a vanquished city,
The the Lord crowned her with the wreath of immortality.
Into the mansions of eternal joy He led her:
Where the angels hymn the Creator in song;
Where the Lord receives His bride.
! REFLECTION
In our day, you usually hear these words from parents: "We want to secure the life of our child." That is why they work very hard to amass wealth--often unjustly--to educate their child in the calling that brings the greatest physical security and material benefit. And this is done by so-called Christians! They do this because their concept of real life and the real security of life is erroneous. Here is how a true Christian mother prepares her son for a real life: At the time of her death, Blessed Euphrosyne spoke to her son, Clement of Ancyra: "Do me the honor, O my son, and bravely stand up for Christ and confess Him firmly and without hesitation! In my heart I hope that the crown of martyrdom will soon blossom on you, in my honor and for the salvation of many. Do not be afraid of threats, or swords, or pains, or wounds, or fire. Let nothing separate you from Christ, but look up to heaven--and from there you can expect your great, eternal and rich reward from God. Fear God's majesty; be afraid of His awesome judgment; tremble at His all-seeing Eye; for all those who deny Him will receive the punishment of unquenchable fire and the eternally vigilant worm. Let this be my reward from you, my sweet son--for my pain in child-bearing and my effort concerning your education--that I may be called the mother of a martyr. Do not spare the blood that you received from me, but shed it that from this I may also receive honor. Submit your body to torture, that I too may rejoice at this before our Lord--as though I myself had suffered for Him."
! CONTEMPLATION
Contemplate the Lord Jesus as Teacher:
# As a Teacher Who teaches how a man should think in order to be saved;
# As a Teacher Who teaches how a man should talk in order to be saved;
# As a Teacher Who teaches how a man should act in order to be saved.
! HOMILY
! on the most-discerning Prophet
"Wherefore think ye evil in your hearts?" (Matthew 9:4).
When our Lord deigned to direct a rebuke to the Pharisees and scribes, they had, as yet, neither killed anyone, nor deceived anyone, nor robbed anyone. Not only that: they had not yet even offended anyone by their words. Why then did our Lord admonish them when they had not committed any sin either in works or in words? Why? Because their thoughts were evil.
An evil thought is sin! This is the great new understanding, which Christ brought into the world. In truth, an evil thought is the sinful source of all sin because, before a man says something or does something sinful, he thinks sinfully. Thought is the causative sin. All other sins are only subsequent sins. Whoever wishes to annihilate evil actions, must first uproot evil thoughts. Whoever desires to stem the flow of water, must first dry up the source. Therefore, let no one justify himself by saying: "I am not a sinner, for I have not killed anyone, robbed anyone, profaned anyone, or lied to anyone!" Behold, we are full of deadly robbing, profaning and deceiving thoughts! If we have not committed sin by our deeds, this is simply a matter of the mercy of God and external circumstances. But, if God had allowed it, and if the circumstances had been favorable, we would have committed all those sins that we thought of. The serpent is venomous not only when it bites but also when it does not bite--because it carries the venom in itself.
Therefore, not only is thought a sin, but it is also the source of sin, the beginning of sin, the seed and the root of sin. That is why the All-seeing and All-knowing Lord rebuked those who had evil thoughts. //Wherefore think ye evil in your hearts?//
O Lord, all-seeing and all-knowing, help us to cleanse our hearts and minds from evil thoughts, so that our words and deeds may be pure.
To Thee be glory and praise forever. Amen.
! ST GREGORY THE THEOLOGIAN, ARCHBISHOP OF CONSTANTINOPLE
Gregory was born in Nazianzus of a Greek father [who later became a Christian and a bishop] and a Christian mother. Before his baptism, he studied in Athens with Basil the Great and Julian the Apostate. Gregory often prophesied that Julian would become an apostate and a persecutor of the Church, and this actually happened. Gregory's good mother, Nonna, had an especially great influence on him. When he had completed his studies Gregory was baptized. St. Basil consecrated him as Bishop of Sasima, and Emperor Theodosius the Great summoned him to fill the vacant archepiscopal throne of Constantinople. He wrote numerous works, the most famous of which are those on theology, for which he is called The Theologian. Especially known, because of its depth, is his work //Homilies on The Holy Trinity//. Gregory wrote against the heretic Macedonius, who erroneously taught that the Holy Spirit is a creation of God. He also wrote against Apollinarius, who erroneously taught that Christ did not have a human soul, but that His divinity was in lieu of His soul. Additionally Gregory wrote against Emperor Julian the Apostate, his one-time fellow student. In 381 A.D., when a debate began regarding his election as archbishop, he withdrew on his own and issued a statement: "Those who deprive us of our archepiscopal throne cannot deprive us of God." Afterward he left Constantinople and went to Nazianzus, and there he lived a life of solitude and prayer, writing beneficial books. Although he was in poor health throughout his entire life, Gregory nevertheless lived to be eighty years old. His relics were later transferred to Rome. A reliquary containing his head reposes in the Cathedral of the Dormition in Moscow. He was, and remains, a great and wonderful light of the Orthodox Church, as much by his meekness and purity of character as by the unsurpassable depth of his mind. He reposed in the Lord in the year 390 A.D.
! THE VENERABLE PUBLIUS
At first Publius was a senator. Recognizing the light of Christ, he left his worldly honors, distributed his possessions to the poor, and devoted himself to a life of asceticism in the proximity of his town, Zeguma, on the Euphrates River. He established two monastic communities and reposed in the year 380 A.D.
! THE VENERABLE MARES
Mares was distinguished by physical beauty and a sweet-sounding voice. He withdrew from the world and lived in a hut for thirty-seven years, in fasting and cleansing the heart of impure thoughts. Mares reposed in the Lord at the age of ninety, in the year 430 A.D.
! THE HOLY FEMALE MARTYR FELICITAS AND HER SEVEN SONS
As a Christian, Felicitas was condemned to death with her seven sons during the reign of Emperor Antoninus, in the year 164 A.D. She implored God only that she not be killed before her sons and that she might be able to encourage them during their torture and death, so that they would not deny Christ. According to God's providence, it so happened. With joy, this superb mother accompanied her sons one by one, until she had witnessed the death of all seven. Then she herself, with gratitude to God, received a martyr's death. She and her sons suffered in Rome, where their relics are now.
! HYMN OF PRAISE
! SAINT FELICITAS
Felicitas prayed to God:
"I have a crown of seven pearls,
I wish to wrap them in purple,
And in purple to present them to Thee.
O dear Lord, receive these gifts!"
Seven sons, seven pearls;
And purple, the blood of the martyrs.
The prayer of the mother ascended,
And as incense reached unto God.
The Roman emperor sentenced her sons
To bitter death and bitter tortures;
The mother was happy--and all were amazed at her!
Felicitas encouraged her sons:
"This is why I gave birth to you, my children;
This is why I nursed you, my children,
So that I can make a gift of you to God.
For God gave you to me."
This having been said, the executioner began his work:
The first fell, the mother bowed;
The second fell, the mother bowed twice;
The third fell, the mother bowed thrice;
With the fourth, four times she bowed;
The fifth fell, five times she bowed;
The sixth fell, six times she bowed;
The seventh fell, seven times she bowed;
The mother, bowing, gave thanks to God.
The eighth time, she bowed for herself,
And on the block she rested her head.
The sword gleamed, her head was severed--
The mother kissed her children in Paradise.
! REFLECTION
They deceive themselves who speak self-confidently that they know men well enough, and that they do not allow themselves to be deceived. Who can know what kind of spirit is in a man--except only God, Who knows the secrets of the heart? Even the great saints were mistaken about people. For example: for a long time St. Basil considered a certain hypocritical heretic to be a holy man, and he defended him from many attackers until, finally, convinced of the heretic's falseness, Basil was bitterly disappointed. St. Gregory the Theologian baptized a certain philosopher, Maximus by name, and liked him so much that he kept the philosopher in his home, sharing his table with him. However, this Maximus was as dangerous and cunning as a serpent. After a period of time, through intrigue and bribes, Maximus convinced numerous Constantinopolians to recognize him as patriarch in place of St. Gregory. When, after great confusion, this trial was removed, some rebuked Gregory for having kept his greatest enemy with him. The saint replied: "We are not to blame if we do not discern someone's evil. God alone knows the inner secrets of a man. And we are told by the commandments to open our hearts with fatherly love to all who come to us." A good man cannot easily understand the malice of a malevolent man.
!
! CONTEMPLATION
Contemplate the Lord Jesus as King:
# As Ruler over nature, which He tames and places in service to Himself;
# As Ruler over demons, over disease and over death;
# As Ruler over the Immortal Kingdom of angels and saints.
! HOMILY
! on Who Christ is
"Who do men say that I am?" (Mark 8:27).
Brethren, it is almost two-thousand years from that day when our Lord Jesus posed this question to His disciples. From then until today, this question has been put to every generation of men, to every bright day and every dark night. And every generation of men--and every bright day and every dark night--has had to give an answer to this question. This question is the question of life or death, and the answer to it is life-bearing or death-bearing. //Thou art the Christ, the Son of the Living God// (Matthew 16:16), the Apostle Peter responded. And that reply was approved and praised by the Lord Jesus.
"Who is Christ?" men ask today. Some say, along with the Jews, that He is a destroyer of the Law and a self-styled Messiah. Others say, along with Pilate, that on the whole they cannot arrive at the truth about this man. The third say, along with the apostles, that He is the Christ, the Son of the Living God, the Savior, the Redeemer of the human race from sin and death, the Resurrected and the Resurrector, the Living One and the Giver of Life. And all of us, who are baptized in the name of the Holy Trinity, agree with the apostles and the Holy Apostolic Church, which with her universal voice thus confesses Christ the Lord.
O Lord, Only-begotten Son of God, help us, that we may all the days of our life believe in Thee in our hearts and confess Thee with our lips, as our God and our Savior, //as the power of God and the wisdom of God// (I Corinthians 1:24).
To Thee be glory and praise forever. Amen.
! THE VENERABLE XENOPHONT AND MARIA, AND THEIR SONS JOHN AND ARCADIUS
They were prominent and wealthy citizens of Constantinople. Xenophont and his wife, Maria, lived a God-pleasing life and dedicated all their attention to the Christian upbringing of their sons. When their sons came of age, they were sent to study in Beirut, but it so happened that a storm capsized their boat. By the providence of God, John and Arcadius were somehow saved. They were tossed ashore by the waves, but in two different places, so that each thought the other had drowned. Out of grief for each other, they both became monks in two different monasteries. After two years, their grieving parents came to Jerusalem on a pilgrimage to venerate the holy shrines. There the brothers met, and after that the parents met their children, all with the help of the clairvoyance of a certain spiritual father. Out of gratitude to God, Xenophont and Maria distributed their entire estate to the poor, and both of them were tonsured. The history of these four souls is touching, and it shows how the Lord wonderfully guides the fate of those who believe in Him: how He permits pain and sorrow to come upon them that later, having been yet more strengthened in faith, they may be led into still greater joy. They lived and reposed in the Lord in the fifth century.
! THE VENERABLE SIMEON THE ANCIENT [VETNI]
Simeon was a companion and friend of St. Palladius. From his early youth until his death, Simeon lived a life of asceticism in a cave. He established two monasteries and reposed in the Lord in the year 390 A.D. He is called the Ancient to distinguish him from Simeon the Stylite, who labored somewhat later.
! SAINT DAVID, KING OF GEORGIA
David (1089-1130 A.D.) renewed and strengthened the Georgian state. A great zealot for the Christian Faith, he built many new churches and restored the old ones throughout Georgia. David is considered to be the regenerator of the Orthodox Faith in Georgia.
! HYMN OF PRAISE
This world is a foreign land, and we are exiles.
With other royal sons, like slaves in a prison,
Wayward children in sorrow seek their Father.
The foreign land beckons them and pacifies them with sweetness.
With what will the spirits of heroes be pacified,
In a foreign land whose every sweetness is death?
This foreign land breathes death and smells of death,
And what is written in the morning is erased in the evening.
But the exiled crown prince sighs for the Kingdom--
For the Immortal Kingdom, high above the firmament,
Where his Father rules and nothing is foreign,
Where nothing is known of death or moldy odor.
O amazing world, a frightening cage!
He who is bound to Christ breaks your bonds,
And becomes free of everything and everyone,
Such a one neither walks with you nor flees from you,
But prepares worthily to depart from you,
Into the Father's embrace, into the Kingdom of freedom.
! REFLECTION
The greatest treasure of any realm is the saintly and good men who live in it. Compared to this wealth, all other wealth is as nothing. Devout Christian emperors considered holy men within their realms as the greatest of God's blessing. The holy Emperor Constantine the Great said: "I give thanks to the Lord Jesus Christ that in my days there exist three divine lights: Blessed Abba Anthony, Abba Elonius and Abba Euchius." Before the battle of Kulikovo, crucial for the Russians, the devout Prince Dimitri Donskoy went to the forest of Radonez with his chief assistants and dukes, to seek out the Venerable Sergius, and he implored his intercession before God. Even though the prince prepared his army for a war of liberation against the Tartars, he placed greater hope in the prayers of one holy man than in a vast army and many weapons.
! CONTEMPLATION
Contemplate the Lord Jesus as a Prophet:
# As a Prophet Who clearly prophesied to individuals (such as Peter, John, Judas and the other apostles) what would happen to them in the future;
# As a Prophet Who clearly prophesied the future of Jerusalem and other cities, of the Jewish people, and of the Church of God;
# As a Prophet Who clearly prophesied the end of the world--and His Second Coming.
! HOMILY
! on the confusion of those darkened by sin
"Who is this that forgiveth sins also?" (Luke 7:49).
Thus asked the unrepentant sinners: "Who is this?" This is He Who feels most the sting of human sin, and upon Whom all the sins of mankind fall as blows. This is He Who, once in Paradise looked upon sinless man. This is He Who created man without sin, and this is He Who Himself is without sin, from all eternity and forever.
Only he can forgive who can also seek revenge. The strong man seeks revenge by reprisal. The weak man seeks revenge by hatred. If you are able to return the delivered blow and you do not do it, it still does not mean that you have forgiven, until you uproot the anger from your heart. Great is the One Lord, Who can both seek revenge and forgive. Great is He in His justice, for He will seek revenge on the unrepentant sinner. Great is He in His mercy, for He will forgive the penitent sinner.
Oh, if only men would know the power of the forgiveness of sins! Behold, when the sins of the blind man were forgiven, he saw. When the sins of the deaf man were forgiven, he heard. When the sins of the hunchbacked woman were forgiven, she stood erect. When the sins of the woman with the issue of blood were forgiven, she also was healed. When the sins of the man afflicted by insanity were forgiven, he became sane. When the sins of the man possessed with demons were forgiven, he was freed. When the sins of the harlot were forgiven, she too was cleansed. When the sins of the dead man were forgiven, he lived again!
Oh, how terrible is the chain of sins! How heavy are the chains of many sins! These chains are not loosened by sinful hands. But when the hands of the All-Pure Lord touch them, they become loosened and fall apart of their own accord. When the voice of the Pure One reaches them, they fall apart. And from the glance of the Pure One, they fall apart. Yes, even from the thoughts of the Pure One, they fall apart--these terrible chains of sins.
//Who is this that forgiveth sins also?// O sinners, this is the Lord, all-pure--and because of purity, almighty.
O Lord, all-pure and almighty, free us from the chains of sins.
To Thee be glory and praise forever. Amen.
! SAINT JOHN CHRYSOSTOM, THE GOLDEN TRUMPET OF ORTHODOXY
The memory of this luminary of the Church is celebrated on November 13 and January 30, but on this date the Church celebrates the translation of his honorable relics from the Georgian village of Comana, where he had reposed in exile, to Constantinople, where he had previously governed the Church. Thirty years after the death of St. John, Patriarch Proclus delivered a homily in memory of his spiritual father and teacher. He so inflamed the love of the people and the emperor, Theodosius the Younger, toward this great saint, that all of them desired that Chrysostom's relics be translated to Constantinople. It was said that the sarcophagus containing the relics of St. John Chrysostom did not allow itself to be moved from its resting place until the emperor wrote a letter to Chrysostom begging him for forgiveness (for Theodosius' mother, Eudoxia, was responsible for the banishment of this saint) and appealing to him to come to Constantinople, his former residence. When this letter of repentance was placed on the sarcophagus, its weight became extremely light. At the time of the translation of his relics, many of the sick who touched the sarcophagus were healed. When the relics arrived in the capital, the emperor, in the name of his mother--as though she herself was speaking over the relics--again prayed to the saint for forgiveness: "While I lived in this transient life, I did you ill; and now, when you are living the immortal life, be of aid to my soul. My glory passed away and did not help me at all. Help me, Father; in your glory, help me before I am condemned at the Judgment of Christ!" When the saint was brought into the Church of the Twelve Apostles and placed on the patriarchal throne, the masses of people heard from St. John Chrysostom's mouth the words: "Peace be unto all." The translation of the relics of St. John Chrysostom took place in the year 438 A.D.
! THE VENERABLE TITUS OF THE MONASTERY OF THE KIEV CAVES
At first, Titus was a soldier. When he sustained a head injury in battle, Titus withdrew from the world to the Monastery of the Kiev Caves, where he was healed and then tonsured as a monk. Titus spent his time in unceasing mourning for his earlier sins. Before his death, he was informed, through a heavenly apparition, that all of his sins had been forgiven. His relics lie in the Caves of Theodosius.
! HYMN OF PRAISE
! SAINT JOHN CHRYSOSTOM
Saint John, a trumpet forged of gold,
Heralded to mankind the mercy of God--
Wondrous mercy, which even loves sinners;
Marvelous mercy, which shines through the sun,
And with the moon amazes the earth,
Rocking in the cradle of the stars.
The awesome mercy from bloody Golgotha,
Where the crucified God forgives the crime of the world.
Mercy of fear, forgiveness and glory,
Mercy of which the angels sing,
Of which the whole of creation drinks,
Which only the saints glorify;
Mercy which is a balm to the ill,
Joy to the simple, foolishness to the scribes,
Antidote for the proud and punishment for the vain.
The mercy of God, which all creation enjoys,
Which is poured out like a current of air;
Mercy that covers all sins:
Such mercy--unknown until Christ--
An eternal glow, from Christ radiated.
O Teacher of God's mercy,
Pray to God that He forgive our sins.
! REFLECTION
Fasting is a great thing, but love is even greater. If, through fasting, demons are cast out, passions tamed, the body pacified, and the spirit steadied; then, through love, God takes up His abode in man. The Lord Himself emphasized fasting as necessary, but stressed love as the main commandment. In the first half of the nineteenth century, Jeladin Bey ruled in Ohrid--a renegade from the Sultan and an independent ruler. At that time, the Church was governed by Metropolitan Callinicus. Even though of different faiths, Jeladin Bey and Callinicus were very good friends, and they often visited one another. It happened that Jeladin Bey condemned twenty-five Christians to be hanged. They were scheduled to be hanged on Great and Holy Friday. The metropolitan, completely disturbed by this, went to Jeladin Bey and began to implore him to be more lenient with the sentence. While they were conversing, the time for lunch arrived and the bey invited the metropolitan to dine. Lamb had been prepared for lunch. The metropolitan excused himself, saying that because of the fast he could not remain for lunch, and he prepared to leave. The bey was sorry and said to the metropolitan: "Choose--either you dine with me and free twenty-five men from the gallows, or you do not dine and allow them to be hanged." The metropolitan crossed himself and sat down to eat, and Jeladin freed the condemned from the punishment of death.
! CONTEMPLATION
Contemplate the Lord Jesus as High Priest:
# Who offers to God, as a sacrifice, the entire time of His life on earth;
# Who offers to God, as a sacrifice, His every word, His every feeling, His every thought, His every labor and His every tear;
# Who finally offers Himself to God completely as a man, on behalf of man.
! HOMILY
! on the confusion of those of little faith
"What manner of man is this, that even the winds and the sea obey Him?" (Matthew 8:27).
The apostles questioned thus among themselves, not yet knowing the Lord Jesus, yet seeing how He calmed the turbulent sea and winds: //What manner of man is this, that even the winds and the sea obey him?// This is He Who created the winds and the sea. Therefore, what kind of miracle is it that His own created things obey Him? Is not the axe an obedient tool in the hands of him who made it? The Lord created everything by His word; that is why all things submit to His word.
Brethren, what sort of man is this? Who is He? This is the same One Who aforetime raised the winds and quieted them, and Who agitated the sea and subdued it. This is the same One Who also does this today. As a man, He stood before men and rebuked the animated wind and unbridled sea, in order to dispel the superstitions of men--that the winds and the sea are moved and calmed either by blind chance or by some evil power--and to reveal the truth forever, that the wise and beneficial power of the Creator directs and commands all the elements, according to His providence.
The apostles asked: "Who is He?" O Holy Apostles, He is the sinless Son of God, Whose name you will spread throughout the whole world, and for Whose name you will be tortured and slain as lambs by wolves. Who are the wolves? The wolves are those who think that the wind moves and the sea agitates and calms either of themselves only or of the devil. O Holy Apostles, you who asked and who received a true reply and proclaimed the whole truth to the whole world, pray for us so that we too may be enlightened by that truth.
O Lord, all-wise and all-powerful, calm the winds of sin and subdue the storm of our filthy and unworthy passions.
To Thee be glory and praise forever. Amen.
! THE VENERABLE EPHRAIM THE SYRIAN
Ephraim was born in Syria of poor parents during the reign of Emperor Constantine the Great. He spent his youth rather tempestuously, but suddenly a change took place in his soul, and he began to burn with love for the Lord Jesus. Ephraim was a disciple of St. James Nisibis (January 13). Due to the great grace of God, wisdom flowed from his tongue like a stream of honey, and ceaseless tears flowed from his eyes. Industrious as a bee, Ephraim continually wrote books, orally taught the monks in the monastery and the people in the town of Edessa, and dedicated himself to prayer and contemplation. Numerous are his books and beautiful are his prayers, the most famous of which is his prayer recited during the season of Great Lent: "O Lord and Master of my life, a spirit of idleness, despondency, ambition and idle talking give me not; but rather a spirit of chastity, humility, patience and love bestow upon me, Thy servant. Yea, O Lord and King, grant me to see my own faults and not condemn my brother; for blessed art Thou unto the ages of ages. Amen." When they wanted to appoint him a bishop by force, he pretended to be insane and began to race through the city of Edessa, dragging his garment behind him. Seeing this, the people left him in peace. Ephraim was a contemporary and friend of St. Basil the Great. St. Ephraim is especially considered to be the apostle of repentance. Even today, his works soften many hearts hardened by sin and return them to Christ. He reposed in extreme old age in the year 378 A.D.
! THE VENERABLE ISAAC THE SYRIAN
Isaac was born in Nineveh, and in his youth he lived an ascetic life in the Monastery of Mar [Saint] Matthew, in the proximity of Nineveh. When Isaac became known because of the sanctity of his life and his many miracles, he was elected Bishop of Nineveh and was forced to accept that rank. After only five months, however, he left the bishopric and secretly withdrew into the wilderness, to the Monastery of Rabban-Shabur. He compiled many works, of which about a hundred homilies on the spiritual life and asceticism, written primarily from his personal experience, have come down to us today. He was unequaled as a psychologist and director in the spiritual life. Even such saints as St. Simeon [the New Stylite] of the Wonderful Mountain sought counsel from him. Isaac reposed in extreme old age toward the end of the seventh century.
! THE VENERABLE PALLADIUS, HERMIT OF SYRIA
Palladius was a great ascetic and miracle-worker. Once, the corpse of a certain wealthy man, whom brigands had killed and robbed, was found in front of his cell. Palladius was accused of the crime. When Palladius was brought to court, he prayed to God in order to be spared misfortune, and through prayer he resurrected the dead man. Palladius reposed in the fourth century.
! THE VENERABLE EPHRAIM OF THE MONASTERY OF THE KIEV CAVES
Ephraim reposed in 1096 A.D. He instituted the Feast of the Translation of the Relics of St. Nicholas to Bari [Italy], which is celebrated on May 9.
! HYMN OF PRAISE
! SAINT EPHRAIM THE SYRIAN
Ephraim's heart burns
With love for Christ,
And Ephraim's tongue speaks
Of the pure wisdom of the Gospel.
Ephraim, the honey-bearing bee;
Ephraim, the fruit-bearing rain!
With repentance, Ephraim breathes;
With tears, he proclaims repentance.
Ephraim writes: "Repent ye!
For God glorifies penitents!"
A wondrous leader and teacher,
Through his life and through his books.
Ephraim, comforter of the sorrowful,
And terrible scourge of the careless.
Toward others, the honey of mercy;
Toward himself, a sword of austerity.
Of Ephraim the Church is proud.
The angels call him brother;
And this becomes Ephraim,
This self-effacing theologian.
The Church glorifies its Syrian,
The glorifier of God's Son.
Ephraim, the honey-bearing bee;
Ephraim, the fruit-bearing rain,
Intercessor, day and night:
Ephraim. the mighty monk!
Toward himself, a sword of austerity,
Toward others, the honey of mercy!
The Church glorifies its Syrian,
The glorifier of God's Son.
! REFLECTION
The absence of envy among the saints is a startling and wonderful phenomenon. Not only did the saints not allow envy to seize their hearts, but they labored to uplift their companions and to diminish themselves with all their might. On one occasion, when St. Hilarion of Palestine visited St. Anthony in Egypt, St. Anthony exclaimed: "Welcome, O morning star!" To that St. Hilarion replied: "Greetings and health be to you, O shining pillar who sustains the universe!" When they praised St. Macarius as a monk, the saint replied: "Brethren, forgive me. I am not a monk--but I have seen monks!" When some people told St. Sisoes that he had attained the same level of perfection as St. Anthony, Sisoes replied: "If only I had but a single thought as does Anthony, I would be all aflame."
! CONTEMPLATION
Contemplate the Lord Jesus as a Servant:
# How He voluntarily descended among men to be a Servant to all;
# How He never refused anyone a good service which was requested of Him;
# How even today, as always, He invisibly and silently serves the whole world.
! HOMILY
! on the Man Whom no one knows
"Who are Thou?" Jesus said to them: "The beginning..." (John 8:25).
The Lord Jesus is the beginning of creation, the beginning of restoration, the beginning of salvation, the beginning of resurrection, and the beginning of immortal glory.
Wherever there is any evil in the world that needs to be uprooted, He is the beginning. Without Him it is impossible. Wherever there is any good that is desired to be done in the world, He is the beginning. Without Him it is impossible. If anyone desires to uproot dissent and malice in a family, in a village, in a town, in the entire world, without Him it is impossible. One must begin with Him. If anyone desires to instill good will, peace, love and unity in a family, in a village, in a town, among the peoples in the entire world, without Him it is impossible. He is the beginning.
Why is it that one cannot uproot evil or sow good without Christ? Because all evil is from sin, and only He can forgive sins. When He (and only He) forgives sin, then sin is plucked out by the root. No manner of good is possible to be sown without Him, because in Him is the treasury of all good--all the seeds of good. He is the only Sower of Good in the field of the world.
The Apostle Paul, who understood all of this better than we, said: //I can do all things through Christ which strengtheneth me// (Philippians 4:13). Without Jesus Christ, who can begin to heal himself of evil, to heal others from evil, to sow good in himself and to sow good in others? No one, truly no one.
Therefore, brethren, if we are determined to uproot evil in ourselves and in others, and in place of evil to sow good in ourselves and in others, let us begin with the Beginning--that is, let us begin with the Conqueror over evil and the Sower of good, with the Lord Jesus Christ.
O Lord Jesus Christ, be Thou to us the Beginning in every struggle against sin and in every good work.
To Thee be glory and praise forever. Amen.
! THE HOLY HIEROMARTYR [PRIESTLY-MARTYR] IGNATIUS THE GOD-BEARER
The principal feast of St. Ignatius is celebrated in winter, on December 20. On this date we commemorate the translation of his relics from Rome, where he suffered martyrdom, to Antioch, where he had earlier been bishop. When St. Ignatius was summoned to Rome to account for his faith before Emperor Trajan, he was accompanied on this long journey by several citizens from Antioch, who were motivated in this by a great love toward their wonderful archpastor. Since he would never deny his faith in Christ, this saint of God, who abhorred all the adulation and promises of Emperor Trajan, was condemned to death and thrown to wild beasts in the Circus Maximus. The wild beasts tore him apart, and he surrendered his soul to God. His companions then gathered his exposed bones, took them to Antioch, and honorably buried them. When the Persians captured Antioch in the sixth century, the relics of St. Ignatius were again translated from Antioch to Rome.
! THE HOLY MARTYRS ROMANUS, JAMES, PHILOTHEUS, HYPERECHIUS, ABIBUS, JULIAN AND PAREGORIUS
They all suffered martyrdom for the Lord Jesus Christ in Samosata during the reign of Emperor Maximilian, in the year 297 A.D. Philotheus and Hyperechius were aristocrats and the others were young men of noble birth. The pagans inflicted a terrible death upon them, hammering nails into the heads of each of them. They suffered martyrdom honorably and entered into eternal joy.
! THE VENERABLE LAWRENCE OF THE MONASTERY OF THE KIEV CAVES
Lawrence voluntarily chose the life of a recluse, following the examples of the earlier recluses Isaac and Nicetas. However, he guarded himself against the diabolical delusions which befell the other two in the beginning. With great abstinence, prayer and divine contemplation, Lawrence attained a high state of perfection. He learned from a terrified demon that, of the 118 monks in the Monastery of the Caves, 30 had been given by God authority over evil spirits. Lawrence went to the Lord in the year 1194 A.D.
! HYMN OF PRAISE
! SAINT IGNATIUS THE GOD-BEARER
The bitter death of Christ dulled the sting of death
And banished forever the irrational fear of death.
A host of martyrs flocked to Christ in death,
But without fear, complaints or shrieks.
Many, with rejoicing, hurried to death,
Because, before their deaths, they saw angels and heaven.
St. Ignatius traveled to Rome.
Along the way, to the Living God, he prayed
As a son would pray to his parents,
That the teeth of the beasts would grind him!
That for which he prayed, God granted him.
Behold, the saint, having been ground, remained alive!
Alive and whole he remains, before the Table of Heaven,
Bread made tender by torture for Christ--
St. Ignatius, the courageous God-bearer.
Throughout the ages he imparts courage to those being tortured.
There can only be two kinds of sufferings:
For the truth or for sins--this cannot be concealed.
Pain for one's sins is pain without hope,
But pain for the truth is joy without sorrow.
As light through rain paints the rainbow,
Thus does joy through tears and gentle sorrow
Depict, in the spiritual heavens, Paradise and God,
Strengthening the souls of the holy martyrs.
! REFLECTION
The more a man advances in spiritual knowledge and in purification of the heart, the more it appears to him that the depth in which he finds himself is even lower than he had previously thought, and that the height to which he strives is even higher. When one spiritual giant, who was on his deathbed, heard that his companions were praising him because of his great asceticism, he began to weep, and said, "My children, I have not even begun my spiritual life." When St. Ignatius the God-bearer lay chained in the dungeon, he wrote to the Ephesians: "I do not command you as though I were someone significant. Even though I am in chains for the name of Jesus Christ, nevertheless, I still have not perfected myself in Him. Now I am beginning to be His disciple, and I speak to you as to an assembly of my teachers."
! CONTEMPLATION
Contemplate the Lord Jesus in the simplicity of His behavior:
# How He behaved simply with fishermen, as well as with the scribes and princes;
# How He responded to everyone and entered into the home of everyone who invited Him;
# How His royal dignity clearly radiated through all the simplicity of His behavior.
! HOMILY
! on perfection through the fulfilling of the will of God
"Jesus saith unto them, 'My meat is to do the will of Him that sent me, and to finish His work' " (John 4:34).
Here is a saving example given to us by our Savior! He Who had such power, authority and wisdom says that He came into the world to do not His own will but the will of the Father, and to do not His own work but the work of His Father--but we, even though we are as weak as a cobweb, continuously emphasize our will and, some of us, even our work! The Son is equal to the Father, as He says in another place: //I am my Father are one// (John 10:30). Nevertheless, the Lord Jesus says that He came into the world to do His Father's will and to accomplish His Father's will. He is not saying this in order show the smallness of His being before the Father's being--for Their being is one--but, rather, to show the greatness of His love toward the Father, and in order to motivate us, out of love toward God, to totally adopt His will.
All of our misery in this life comes from the fact that we do not implement the will of Him Who sent us into this world. We do not implement His will because we do not have love toward Him. For whoever loves someone acts according to his will. The Lord Himself said: //If ye love Me, keep My commandments// (John 14:15). By what means could the Lord proclaim His love toward the Father, if not by fulfilling the will of the Father? And by what means can we proclaim our love toward the Lord Jesus, crucified for us on the Cross, if not by fulfilling His will?
Our will, O my brethren, is as deceitful as a shadow. Let us not follow it, that we may not perish. Rather, let us follow the will of the Lover of mankind, the Lord, Who alone knows what is best for us.
O humble and man-loving Lord, teach us to do Thy will.
To Thee be glory and praise forever. Amen.
! THE PROPHET MALACHI
Chronologically, Malachi was the last of the prophets. He was born after the return of the Hebrews from the Babylonian Captivity in 538 B.C. He was unusually handsome in countenance. According to tradition, the people called him an angel, perhaps because of his external beauty or because of his spiritual purity, or even perhaps because of his association with an angel of God. On many occasions he spoke face to face with an angel. When this occurred, others heard the angel's voice, but they were not worthy to see the face of the angel. The young Malachi prophesied that which the angel proclaimed. He cried out against ungrateful Israel and against the lawless priests. Five hundred years before Christ, Malachi clearly prophesied the coming and the mission of John the Baptist: //Lo, I am sending my messenger to prepare the way before me//(Malachi 3:7). Mainly, he is chiefly the prophet of the day of the Dreadful Judgment. //Before the day of the Lord comes, the great and terrible day// (Malachi 3: 23-24). He reposed in the Lord while still young. Following him, there were no more prophets in Israel until John the Baptist.
! THE PRIEST-MARTYR GORDIUS
Gordius was born in Caesarea of Cappadocia. He was an officer in the Roman army during the reign of Emperor Licinius. When a terrible persecution of the Christians broke out, Gordius left the army and his rank and withdrew to the wilderness of Sinai. Alone on Mount Horeb, Gordius spent his time in prayer and contemplation on the mysteries of heaven and earth. He especially pondered the vanity and worthlessness of all that men strive and fight for on earth, and finally came to the desire to die and enter into the eternal and incorruptible life. With this desire he descended into the town at the time of certain pagan races and games. Gordius presented himself to the governor of that town, declaring that he was a Christian. In vain did the governor try, through flatteries and threats, to dissuade him from the Faith. Gordius remained unwavering and firm as a diamond, saying: "Is it not sheer folly to purchase, with this short-lived life, a life of eternal torment and spiritual death?" Being condemned to death, he joyfully hurried to the scaffold and, along the way, spoke to the executioners of the glorious and sweet teachings of Christ. With the name of Christ on his lips, Gordius offered his young body to the sword and his righteous soul to God, in the year 320 A.D.
! SAINT GENEVIEVE
Genevieve is the patroness of the city of Paris. Through fasting, prayer and almsgiving she was made worthy of the Kingdom of God, and died on January 3, 512 A.D., in the eighty-ninth year of her life.
! HYMN OF PRAISE
God permits humiliation and ruin to befall a proud man when he thinks that his strength is secured forever. When the pernicious Roman eparch [Governor] Tarquinius beheaded Blessed Timothy, he summoned St. Sylvester and threatened him with death if he did not reveal the whereabouts of Timothy's inheritance and, in addition, immediately offer sacrifice to the idols. Without fear and trembling, this clairvoyant saint responded to the eparch with the words of the Gospel: //You fool, this night your soul shall be required of you//(St. Luke 12:20), //and that with which you boast you will bring to me// (i.e. death) //will occur to you.// The proud eparch shackled Sylvester in chains and threw him into a dungeon, intending to kill him shortly. Having done this, the eparch sat down to eat lunch, but a fish bone became caught in his throat. From noon to midnight, the physicians struggled to save his life, but all in vain. At midnight, Tarquinius gave up his proud soul in the greatest torments. And so the prophecy of St. Sylvester was fulfilled, as also were the Biblical words: //Pride goes before disaster// (Proverbs 16:18).
To contemplate the guardian angel:
# How he stands at my right side upholding me in everything, until I depart from the Law of God;
# How I have offended him on numerous occasions and how I have driven him away from me by transgressing the Law of God.
! HOMILY
! on how the Kingdom of God is gained with the heart and not with the tongue
"Not everyone that saith unto Me, Lord, Lord shall enter into the Kingdom of Heaven" (Matthew 7:21).
Brethren, one does not gain the Kingdom of God with the tongue, but with the heart. The heart is the treasury of those riches by which the kingdom is purchased--the heart, and not the tongue! If the treasury is filled with the riches of God (i.e., strong faith, good hope, ardent love and good deeds), then the herald of those riches--the tongue--is faithful and pleasant. If the treasury is devoid of all those riches, then its herald is false and impudent. As the heart is, so are the words. As the heart is, so are the deeds. All, all depends on the heart.
Hypocrisy is helpless before men and is even more helpless before God. //If then, I am a father,//says the Lord through the Prophet Malachi, //If then I am a father, where is the honor due to Me? And If I am a master, where is the reverence due to Me?// (Malachi 1:6). That is: "I hear you call Me 'Father,' but I do not see you honoring Me with your heart. I hear you call Me 'Master,' but I do not see fear of Me in your hearts."
Our prayer, "Lord! Lord!" is beautiful and beneficial only when it emerges from a prayerful heart. The Lord Himself commanded that we pray unceasingly, not only with the tongue to be heard by men, but rather enclosed in the cell of the heart, so that the Lord can hear and see us.
O Lord, majestic and wonderful, deliver us from hypocrisy and pour Thy fear into our hearts, so that our hearts may stand continually upright in prayer before Thee.
To Thee be glory and praise forever. Amen.
! THE THREE HIERARCHS: SAINT BASIL THE GREAT, SAINT GREGORY THE THEOLOGIAN, AND SAINT JOHN CHRYSOSTOM
Each of these saints has his own feast day: St. Basil the Great, January 1; St. Gregory the Theologian, January 25; and St. John Chrysostom, January 27. This combined feast day, January 30, was instituted in the eleventh century during the reign of Emperor Alexius Comnenus. Once, a debate arose among the people concerning who among the three was the greatest. Some extolled Basil because of his purity and courage; others extolled Gregory for his unequaled depth and lofty mind in theology; still others extolled Chrysostom because of his eloquence and clarity in expounding the Faith. Thus some were called Basilians, others Gregorians, and the third were called Johannites. This debate was settled by divine providence, to the benefit of the Church and to the even greater glory of the three saints. Bishop John of Euchaita (June 14) had a vision in a dream: At first all three of these saints appeared to him separately in great glory and indescribable beauty, and after that, all three appeared together. They said to him: "As you see, we are one in God and there is nothing contradictory in us; neither is there a first or a second among us." The saints also advised Bishop John to write a common service for them and to order a common feast day of celebration. Following this wonderful vision, the debate was settled in this manner: January 30 would be designated as the common feast of these three hierarchs. The Greeks consider this feast not only an ecclesiastical feast, but also their greatest national school holiday.
! THE HIEROMARTYR [PRIESTLY-MARTYR] HIPPOLYTUS, BISHOP OF ROME
Hippolytus suffered for the Faith during the reign of Claudius. When the virgin Chrysa was mercilessly tortured for Christ in Rome, St. Hippolytus interceded on her behalf before the torturers and denounced them. Because of this protest, Hippolytus also was brought to court and condemned and, after prolonged tortures, was sentenced to death. They bound his hands and feet and drowned him in the sea. Along with Hippolytus and Chrysa, twenty other martyrs also suffered. St. Hippolytus suffered in the year 269 A.D.
! THE HOLY MARTYR THEOPHILUS THE NEW
As a commander of the Emperor Constantine and the Empress Irene, Theophilus was enslaved by the Hagarenes and was kept in prison for four years. When he refused all pressures of the Moslems to abandon the Christian Faith, Theophilus was beheaded with the sword, taking up his aode with the Lord in the year 784 A.D.
! SAINT PETER, KING OF BULGARIA
Peter, the son of Simeon, was a great admirer of St. John of Rila. He gained independence from Constantinople for the Bulgarian Church, and preserved Orthodoxy in Bulgaria from the Bogomils. After an unsuccessful war with the Hungarians and Russians, Peter reposed in 967 A.D., in the fifty-sixth year of his life.
! HYMN OF PRAISE
! THE THREE HIERARCHS: SAINT BASIL, SAINT GREGORY THE THEOLOGIAN,
AND ! SAINT JOHN CHRYSOSTOM
Fasting and Faith--Basil,
Theology--Gregory,
Acts of Charity--Chrysostom,
Golden mouths, mouths of honey!
All laborers of one work;
Three separately--three angels,
The three together, as God is one,
No one is chief, no one is secondary.
In eternity they all agree,
You invoke one, all three help;
You hymn one, all three hear;
You glorify one, all three rejoice.
Three men, one whole;
Three hierarchs, one work;
Three names, one glory;
To all three of them, Christ is the Head.
! REFLECTION
Here is an example of how emperors seek counsel from the saints, how the saints avoid vanity and riches, and how they counsel emperors. The Orthodox King Peter of Bulgaria set off with his retinue for Rila Mountain, driven by the insatiable desire to see St. John of Rila and to benefit from his instruction. The king sent men ahead to inform the saint of his arrival, but the saint did not agree to meet with the king. The saddened king again sent some men with foodstuffs and an ample amount of gold, as well as a petition requesting the saint to write some counsel for him. John accepted the food but returned the gold, not even wanting to touch it; and he replied to the king: "If you desire the Heavenly Kingdom, be merciful like the Heavenly Father. Do not trust in injustice and do not be covetous; be meek, quiet and accessible to everyone. Do not accept praises from your noblemen. Let your purple robe radiate with virtues. May the remembrance of death never depart from your soul. Humble yourself before the feet of our Mother Church; bow your head before her chief hierarchs so that the King of kings, seeing your sincerity, may reward you with goodness such as never entered into the heart of man." Receiving that letter, the king kissed it, and he later read it frequently.
! CONTEMPLATION
Contemplate the Lord Jesus as the Friend of children:
# As the Friend of the angels in heaven, who, like children, are innocent, obedient and without passions;
# As the Friend of little children on earth, who easily and simply believe in God;
# As the Friend of the saints, who by labor and grace are purified from sin and become innocent as children.
! HOMILY
! on how men must become like children in order to be sons of God
"Verily I say unto you, Except ye be converted, and become as little children, ye shall not enter into the Kingdom of Heaven" (Matthew 18:3).
Thus speaks the Lord, and His word is holy and true. What advantage do children have over adults? They have three advantages: in faith, in obedience, and in forgiveness. The child asks his parent about everything, and no matter what his parent replies, the child believes his parent. The child is obedient to his parent and easily subordinates his will to the will of his parent. The child is forgiving, and even though he provokes easily, he forgives quickly. Our Lord requires these three from all men, that is, faith, obedience and forgiveness. He desires that men believe in Him unconditionally, as a child believes in his parent; that they be unconditionally obedient to Him, as a child is to his parent, and that they be forgiving in relation to one anther, not remembering evil and not rendering evil for evil.
Faith, obedience and forgiveness are the three main characteristics of a child's soul. Purity and joy are in addition to these. A child is not greedy, a child is not lustful, and a child is not vainglorious. The child's eye is unspoiled by vices, and his joy is unspoiled by worries.
O brethren, who can make us over again into children? No one, except the one Christ. He can make us over into children and help us to be born again by His example, by His teaching and by the power of His Holy Spirit.
O Lord Jesus, perfect in obedience and meekness, Eternal Child of the Heavenly Father, help us to become as infants by faith in Thee, by obedience toward Thee, and by forgiveness toward one another.
To Thee be glory and praise forever. Amen.
! CYRUS AND JOHN, UNMERCENARIES AND MIRACLE-WORKERS
These charitable and glorious saints were not blood brothers, but were brothers in the spirit. Cyrus began in Alexandria, and as a physician he healed people by the power of Christ and by his knowledge of medicine. Learning that sickness mostly befalls man because of sin, Cyrus always directed the sick to purify their souls from sin through repentance and prayer, and thereby to restore health to their bodies. When Diocletion's persecution against Christians began, Cyrus withdrew to Arabia, where he received the monastic tonsure. He became as famous in Arabia as he had been in Alexandria, so that people there also resorted to him for assistance. Hearing about Cyrus, John--then a Roman officer in Edessa--came to Arabia to see him. Upon meeting, they loved one another as a brother loves a brother, and remained together to live a life of asceticism. At that time, a certain Christian woman named Anastasia and her three daughters were tortured by the persecutors in the town of Canopus. Hearing of this, Cyrus and John came to Canopus to encourage the mother and her daughters not to abandon the Faith. Truly, thanks to the counsel of these saints, Anastasia endured all tortures, and with her daughters she was martyred for Christ. The daughters of Anastasia were: Saints Theoctista, age fifteen; Theodora, age thirteen; and Eudocia, age eleven. The tormentors then captured Cyrus and John, who were beheaded after imprisonment and torture in the year 311 A.D. Numerous miracles were wrought by these martyrs, both during their lives and after their deaths. Their relics were translated to Rome during the reign of Emperor Arcadius. These saints are invoked for assistance, especially during the Blessing of Water, in the Sacrament of Holy Unction, and by those suffering from insomnia.
! THE HOLY MARTYR TRYPHAENA
Tryphaena willingly and courageously endured many tortures for Christ. Because she did not want to deny her Faith, a wild ox was goaded to attack her, and gored her to death. This occurred in the first century. St. Tryphaena is invoked by mothers who are unable to nurse their children.
! THE VENERABLE NICETAS OF THE MONASTERY OF THE KIEV CAVES
As a monk in disobedience to his superior, Nicetas left the monastery and closed himself in a cell. Because of his disobedience, God permitted great temptations to befall him. Once, when Nicetas was at prayer, the devil appeared to him under the guise of a radiant angel and said to him: "Do not pray anymore, but rather read books and I will pray for you!" Nicetas obeyed, ceased to pray, and began to read books. He only read the Old Testament. He was unable to open the New Testament, for the power of the devil prevented him from doing so. With the help of the devil, Nicetas prophesied--but only about crimes, thefts, arson and other evil deeds which are known to the devil and in which he participates. Finally, the Holy Fathers of the Caves realized that Nicetas had fallen into demonic delusion, and they began to pray to God for him. Nicetas returned to the monastery, realized the state of ruin he was in, repented bitterly over his disobedience and pride, and directed himself on the right path. After prolonged repentance and many tears, God forgave him and bestowed upon him the gift of miracle-working. He reposed in the year 1108 A.D.
! HYMN OF PRAISE
! SAINT NICETAS OF THE KIEV CAVES
Nicetas, to the Creator, prayed
That the Creator make him worthy
To be able to see the Creator.
"Appear to me, O God, O God!"
O Nicetas, sin is pursuing you,
If this, from God, you implore!
Make yourself worthy and you will see
The All-eternal One in eternity.
The Immortal God does not allow
That mortal eye upon Him gaze.
Even to the celestial world it is frightful
To gaze upon the Almighty.
To us is given this life
In which to prepare ourselves,
That we become worthy, only after death,
To gaze upon the eternal Light.
But Nicetas implored and prayed
That the Creator make him worthy
To be able to see the Creator:
"Appear to me, O God Most-high."
Then, to him, the devil appeared:
"Bow down before me!" said he.
And Nicetas, as quickly as possible,
Bent the knee before him!
He thought it was an angel,
But it was the devil all aglow
With the glow of falsehood,
Which filled Nicetas's entire cell.
O my brother, do not tempt God:
This age is the age of preparation.
In this age is faith;
In that age, however, is vision.
First the battle, then the victory;
First the pain, then delight;
All occurs in its own time.
! REFLECTION
Although the Holy Fathers praised monasticism as the angelic state, and although many of the greatest saints lived their lives and attained perfection in the soundless and lifeless desert, nevertheless, the Orthodox Church does not recommend the tonsure to all the faithful. "Neither were all those in the desert saved nor were all those in the world lost," said one saint. To a city dweller who, with no inclination for monasticism, desired to enter the monastery, St. Niphon said: "My child, a place neither saves nor destroys a man, but deeds save or destroy. For him who does not fulfill all the commandments of the Lord, there is no benefit from a sacred place or from a sacred rank. King Saul lived in the midst of royal luxury and he perished. King David lived in the same kind of luxury and he received a wreath. Lot lived among the lawless Sodomites and he was saved. Judas was numbered among the apostles and he went to hades. Whoever says that it is impossible to be saved with a wife and children deceives himself. Abraham had a wife and children, 318 servants and handmaidens and much gold and silver, but, nevertheless, he was called the Friend of God. Oh, how many servants of the Church and lovers of the desert have been saved! How many aristocrats and soldiers! How many artisans and field-workers! Be pious and be a lover of men, and you will be saved!"
! CONTEMPLATION
Contemplate the Lord Jesus, as the Host in His house:
# How He walks about this world as One Who has authority, commanding nature and expelling demons;
# How He diligently laborers over each man with whom He encounters, as a Host over the members of His household;
# How He acts in the Temple as a Host in His house, cleansing the Temple of the money-changers.
! HOMILY
! against mediocrity and on fulfilling all the laws of God
"These ought ye to have done, and not to leave the other undone" (Luke 11:42).
The Law and mercy are referred to in this text. In the souls of the Pharisees and sectarians, the Law and mercy do not stand together; that is, they are unable both to fulfill the regulations of the Law and to show mercy--but they argue about which is more important of these two: one they omit and to the other they adhere. The Pharisees observed the letter of the Law literally, but they completely abandoned mercy and love for men. Likewise, sectarians flatter themselves that they adhere to God's justice, but they totally reject the prescriptions of the Church laws.
Orthodoxy represents the fullness of the Faith. The Church commands that we do this, and not omit that. The Church is careful about external prescriptions of the Faith, as a man walking among clay vessels is careful not to break them. The Church is even more careful about the justice and mercy of God, as a man who, walking among the clay vessels, values them and protects them--not because of the earth from which the vessels are made, but because of the priceless contents within them. Empty vessels that are never filled with any drink are as worthless as the empty legal formalisms of the Pharisees. On the other hand, a drink, when poured into the wind, is spilled and wasted, because it is not poured into the vessels designated for it.
And so, in Orthodoxy there is no one-sidedness, as there is none in the Lord Jesus. The Lord says to John the Baptist, who breathes with the justice and mercy of God, that it is necessary to fulfill the Law; but to the Pharisees--empty legalists without the justice and mercy of God--He says: //For it is mercy that I desire, not sacrifice!//(Hosea 6:6). It is evident that that which //ye ought to have done// is more important than that //other// that should not be left undone. But it does not mean that what is less important is unnecessary. In the human organism, there are many important organs and many organs of lesser importance, but together they constitute the body of man.
O Lord, all encompassing, do not allow us to become one-sided, but help us to fulfill Thine entire will.
To Thee be glory and praise forever. Amen.
! THE SYNAXIS [ASSEMBLY] OF THE SEVENTY HOLY APOSTLES
Besides the Twelve Greater Apostles, the Lord chose seventy lesser apostles and sent them to preach the Gospel: //Behold, I send you forth as lambs among wolves! //(Luke 10:3). But just as Judas, one of the Twelve, fell away from the Lord, so some of the Seventy abandoned the Lord--not with the intention of betrayal, but because of human weakness and faintheartedness. //As a result of this, many of His disciples returned to their former way of life and no longer accompanied Him// (John 6:66). As Judas' place was filled by another apostle, so also were the places of these lesser apostles filled by others that were chosen. These seventy lesser apostles labored at the same work as did the Twelve Great Apostles; they were co-workers with the Twelve in spreading and establishing the Church of God in the world. They endured many sufferings and malevolent acts from men and demons, but their strong faith and fervent love for the resurrected Lord made them victors over the world and inheritors of the Kingdom of Heaven.
2. EUSTATHIUS [JEVSTATIJE], ARCHBISHOP OF THE SERBS!
Eustathius was born in the district of Budim, of God-fearing parents. As a young man he was tonsured a monk in Zeta; then he entered a higher form of asceticism in the Hilandar Monastery [on Mount Athos]. In time, Eustathius became the Abbot of Hilandar. As abbot, he was elected Bishop of Zeta and, after a certain period of time, was elected Archbishop of Serbia. Eustathius was a man of great charity, who governed Christ's flock with zeal and love. He reposed peacefully at great age in the year 1279 A.D., crying out before his death: "Into Thy hands, O Lord, I commend my soul." His relics are interred under the floor of the church at the Patriarchate of Peć.
3. THE EUNUCH OF QUEEN CANDACE!
The Apostle Philip baptized this Ethiopian eunuch (Acts 8:26-40). Following his baptism, he returned to his home and began to preach Christ. This eunuch was the first apostle of the Faith among the Ethiopians. He died a martyr and was found worthy of the Kingdom of God.
4. THE VENERABLE MARTYR ONUPHRIUS OF HILANDAR MONASTERY [MOUNT ATHOS]!
In his youth, Onuphrius became angry with his parents and declared before the Turks that he was going to convert to Islam. Immediately afterward, he repented of these words and went to Hilandar Monastery, where he was tonsured a monk. Tormented by his conscience, Onuphrius resolved upon martyrdom. Because of his determination, and with the blessing of his spiritual father, he departed for Trnovo, Bulgaria, where he reported to the Turks, proclaimed himself a Christian, and ridiculed Muhammad. Because of that, Onuphrius was beheaded on January 4, 1818 A.D., in his thirty-second year. The body of this spiritual knight is not preserved, for the Turks threw it into the sea.
HYMN OF PRAISE!
THE SEVENTY HOLY APOSTLES!
O knights of the Cross, sons of light,
You have not yet passed, O children of the future,
You are not dead, just as Christ is not dead,
But live with a Life that never decays.
The Lord, the Wreath-Giver, beautifully crowned you,
Because His holy Name you loudly proclaimed
Before emperors and princes, before terrible executioners.
God, you served, but with torment the world repaid you.
You walked after Christ, O bees of Christ!
The world you filled with honey, the vessels you filled!
Souls you calmed, you mortified passions;
With evangelical sweetness you sweetened life;
With the fragrance of Christ you censed the earth;
Salt, light and incense to the world, you were.
Seventy Companions, all with the same love:
As branches to a tree, with Christ, you were united.
Seventy Stars around the Sun--Christ--
Where the angels are, and the Virgin All-Pure;
Where there is unutterable delight and unprecedented joy.
Glorious victors of this transitory time,
Holy Apostles, glory and praise be to you.
From your blood, truth blossomed.
REFLECTION!
God hears the prayers of the just. This is clearly seen from the lives of Moses, Elijas, and the other Old Testament righteous ones and prophets, as well as from the lives of the apostles and saints. While St. Genevieve lived a life of asceticism as a nun in Paris, it so happened that Attila with his savage Huns surrounded Paris. Fear and terror overcame the entire population, who awaited at any moment the capture of the city by the enemy. Then St. Genevieve called upon the people to fast and to pray to God that the calamity might be averted. Many men and women responded to the call of this saint and began to fast and pray to God. Genevieve herself fasted more strictly than all, and prayed most ardently to God. After a short while, the enemy turned away from Paris without any visible reason and departed for another place. That which the sword of many sinners cannot do, the prayer of the righteous person can.
CONTEMPLATION!
Contemplate the richness of God's power, wisdom and love:
# How the richness of that power, wisdom and love is manifested in created nature;
# How the richness of that power, wisdom and love is revealed to the world through the Lord Jesus Christ.
HOMILY!
on the citizens of the other world!
"They are not of the world, even as I am not of the world" (John 17:16)
Christ the Lord is not of this world, but rather is only in the vesture of this world. This is the Commander clad in the clothing of a slave in order to save the captive enslaved by sin, matter and Satan. As is the Commander, so are His soldiers. Even they, according to the spirit, are not of this world: they are not captives but free; they are not slaves but masters; they are not corruptible but immortal; they are not fallen but are saved. Such are all those whom Christ recruited and who, having tasted immortal life, willingly rejected the world and united themselves with Him, remaining faithful to Him until the end of their lives on earth. Abba Moses said: "No one can enter the army of Christ if he is not totally as fire, if he does not abhor honors and comfort, if he does not sever all bodily desires, and if he does not keep all of God's commandments." Judas was recruited, but he fell away and loved prison more than the royal court, slavery more than freedom, corruption more than immortality, and destruction more than salvation. But the other apostolic recruits, greater and lesser, remained faithful to Him to the end and achieved victory--that is why they are glorified both on earth among men and in heaven among the angels. All who are glorified by the world perish with the world, but those who are glorified by Christ are saved by Christ. The glory of the world is death, but the glory of Christ is life--life eternal and without death.
O Immortal Lord, even though we are of the world according to the body and sin, recruit us into Thine army--the army which, by Thy Spirit, power, wisdom and love, is not of this world. Do this so that, even when we die in this world, we may live in Thine Immortal Kingdom with the angels, apostles and saints, because of the love and prayers of Thy holy apostles.
To Thee be glory and praise forever. Amen.////
! THE HIEROMARTYR [PRIESTLY-MARTYR] THEOPEMPTOS AND THE MARTYR THEONAS
When Diocletian began his persecution of the Christians, Theopemptos, Bishop of Nicomedia, was among the first to suffer martyrdom for Christ. Theopemptos was brought before the emperor, who threatened him with the punishment of death if he did not deny Christ. To that threat, the courageous bishop responded to the emperor: "It stands written: //Fear not them which kill the body, but are not able to kill the soul// (Matthew 10:28). O Emperor, you have authority over my body; do with it as you please." Theopemptos was severely beaten, starved and tortured in various ways. Finally, the emperor summoned a certain magician, Theonas by name, to outwit this godly man through magic. Theonas dissolved the most potent poison in water and gave it to Theopemptos to drink. Theopemptos traced the sign of the Cross over the glass and drank the poison. On seeing that the poison had no effect on Theopemptos, Theonas turned to the emperor and shouted: "I too am a Christian, and I bow down before the Crucified One." Both were sentenced to death in the year 298 A.D.; Theopemptos was beheaded and Theonas was buried alive. They suffered honorably and became citizens of the Kingdom of Christ.
! THE HOLY PROPHET MICAH THE FIRST
! Micah [Micaiah] was a contemporary of the Prophet Elijah. He foretold the death of the pernicious King Ahab in battle against the Assyrians (I Kings 22; II Chronicles 18). Micah prophesied orally and did not put anything into writing. He is to be disctinguished from the other Prophet Micah (August 14), who prophesied the birth of the Lord in Bethlehem and authored one of the prophetic books.
! THE VENERABLE MOTHER SYNCLETICA
Syncletica was of Macedonian descent. She was educated in Alexandria. As a wealthy and distinguished maiden she had many suitors, but she rejected them all and fled from her parents' home to a convent. In great self-restraint, vigil and prayer, Syncletica lived to her eightieth year. Her counsels to the nuns have always been considered true spiritual pearls, for this righteous one did not attain the heights of wisdom through books but through sufferings, pains, daily and nightly contemplation, and spiritual communication with the higher world of the Divine. Her soul took up its habitation in that higher world in the year 350 A.D. Among other things, St. Syncletica was known to say: "If it is the season for fasting, do not dismiss fasting, claiming illness, for behold, even those who do not fast succumb to the same illness." She further said: "As a treasure, when uncovered, is quickly seized, so it is with virtue: when it is made public it becomes eclipsed and is lost."
! THE VENERABLE APOLLINARIA
Apollinaria was the daughter of Anthemius, the regent of the adolescent Emperor Theodosius the Younger. She was her father's eldest daughter. His younger daughter was insane. Apollinaria did not wish to marry because in her heart she was betrothed to Christ, and she withdrew into the Egyptian wilderness. In men's attire and under the masculine name of Dorotheus, Apollinaria entered a monastery for men, where she lived an ascetical life, lifting up her spirit continuously toward God and burning with love toward her Creator. Someone advised the imperial regent, Anthemius, to send his insane daughter to the ascetics to have prayers said for her. According to the providence of God, it so happened that the elder sister healed her insane sister through the power of prayer. Only when Apollinaria reposed was her secret revealed--that she was not a man but a woman. The bravery of this holy virgin has remained an example and stimulus to many throughout the ages who contemplate their salvation. She reposed in the year 470 A.D.
! HYMN OF PRAISE
! SAINTS APOLLINARIA AND SYNCLETICA
These innocent virgins, for the sake of God and their souls,
Became faithful followers of Christ.
Pleasures, luxuries and laughter they abandoned,
And to the angelic world, lifted up their souls.
In their weak bodies were lighted torches;
Their souls, by the Holy Spirit, were wondrously illuminated,
For centuries shining and showing the way,
Rejoicing in heaven with the angels holy.
O Apollinaria and Syncletica!
In your hearts the Holy Spirit glows.
He strengthens you, leads and teaches you;
He has wedded you and betrothed you to Christ.
Pray for us, O wondrous ascetics,
Heroines brave, immortal virgins.
! REFLECTION
Fruit, fruit, and only fruit does the Lord seek from every living tree, which is called a man. Good fruit is a God-loving heart, and evil fruit is a self-loving heart. Everything else that a man possesses and enjoys--position, authority, honor, health, money and knowledge--are but the leaves on the tree. //Therefore every tree which bringeth not forth good fruit is hewn down, and cast into the fire// (Matthew 3:10). Even the non-Christian peoples valued good deeds more than fine words. How much more must it be the rule for the followers of Christ. At a council of the Athenians, at which were present representatives of the Spartans, a certain elderly man moved from bench to bench, seeking a place to sit. The Athenians mocked him and did not relinquish a seat to him. When the old man approached the Spartans, everyone rose to their feet and offered him a seat. Upon seeing this, the Athenians praised the Spartans in eloquent terms. To this the Spartans replied: "The Athenians know what is good, but they do not do good." Whoever performs good deeds resembles a tree that brings forth good fruit for his householder. The source of goodness in man is a good, God-loving heart.
! CONTEMPLATION
Contemplate the perfection of Adam, the first man:
# His closeness to God;
# His strength, wisdom and beauty, given by God;
# The voluntary submission of the whole of nature to the authority of the sinless Adam.
! HOMILY
! on our helplessness without Christ the Lord
"For without Me ye can do nothing" (John 15:5)
Our Lord did not have the habit of exaggerating in His speech. No words in this world are weighed more than His words. When He says that we can do nothing without Him, this must be taken and understood literally. Here, He speaks of good and not of evil. We can do no good without Christ, aside from Christ or contrary to Christ. He is the Proprietor, the Giver and the Inspirer of all good. No type of good stands outside Him; likewise, no type of evil is contained in Him. Our Lord said: //I am the Vine, ye are the branches// (John 15:5). What can the branches do without the Vine? Can they grow and bring forth fruit? No, they can do nothing but become firewood.
Man can think as hard as he wants, but he cannot conceive of one true good that is not in Christ and that does not stem from Christ. If someone were to say that he does good and humane works outside of Christ, know that his works are spoiled to the core and corroded, be it from vanity or from hidden selfishness. Man without Christ is the same as branches without the vine. He Himself told us this. The Vine is hidden and unseen, but the branches are seen. Nevertheless, the grapes on the branch and the branch itself depend on the Vine. The Vine of all-encompassing good grows from the heart of God the Father and is watered by the sweetness of the Holy Spirit. O Triune Lord God, have mercy on us and save us!
To Thee be glory and praise forever. Amen.
! THE THEOPHANY [EPIPHANY] OF OUR LORD AND SAVIOR JESUS CHRIST
When our Lord reached thirty years from His physical birth, He began His teaching and salvific work. He Himself signified this "beginning of the beginning" by His baptism in the Jordan River. St. Cyril of Jerusalem says: "The beginning of the world is water; the beginning of the Gospel is the Jordan." At the time of the Baptism of the Lord in water, the mystery was declared to the world--the mystery that was prophesied in the Old Testament; the mystery that was known only in fables in ancient Egypt and India--the mystery of the Divine Holy Trinity. The Father was revealed to the sense of hearing, the Spirit was revealed to the sense of sight, and the Son was revealed to the sense of touch. The Father uttered His witness about the Son, the Son was baptized in the water, and the Holy Spirit in the form of a dove hovered above the water. When John the Baptist bore witness to Christ, saying: //Behold, the Lamb of God, which taketh away the sin of the world// (John 1:29), and when John immersed and baptized the Lord in the Jordan, the mission of Christ in the world and the path of our salvation were shown. That is to say, the Lord took upon Himself the sins of mankind and died under them (immersion) and rose again (the coming out of the water); and we must die to the old sinful man and rise again as cleansed, renewed and regenerated. This is the Savior and this is the path of salvation. The Feast of the Theophany is also called the Feast of Illumination. The event in the Jordan River illuminates us by manifesting God to us as Trinity, consubstantial and undivided. That is one way that we are illumined. And the second way is that every one of us through baptism in water is illumined, in that we become adopted by the Father of Lights through the merits of the Son and the power of the Holy Spirit.
! HYMN OF PRAISE
! THE HOLY TRINITY
O Holy Lord, holy in creating:
All that Thou makest by Thy Word, Thou doest consecrate by the Spirit.
O Mighty Lord, mighty in suffering:
For the sake of the world Thou goest to Thy death; for the sake of the world Thou dost resurrect.
O Immortal Lord, with our voices we hymn Thee:
Father, Son, Holy Spirit--God, have mercy on us!
The Father, Who appeared over Jordan as a Voice;
The Spirit, Who hovered as a milk-white Dove;
The Son, Who by the Prophet John was baptized:
Three rays of Light, one Light shone.
O Trinity manifested, with our voices we hymn Thee:
Father, Son, Holy Spirit--God, have mercy on us!
! REFLECTION
At one time the fables of the heretics plagued the Church of God, and now the Church is plagued by the fables of the apostates from God. By perseverance in the Faith, by diligence in prayer, by confession of the Faith, and even by martyrdom for the Faith, the Church has remained undefeated. Only by these methods will these new plagues be defeated. The Church of God, the Vessel of Divine Truth, will triumph in the end: //The swords of the enemy have utterly failed// (Psalm 9:6). Blessed Clement of Alexandria, speaking about heretics who left the Church, said: "He who has fallen into heresy travels through an arid desert, abandoning the One True God. Alienated from God, he seeks water in dry places, he gathers barren fruit with his hands, and enters into an uninhabited and thirsty land." This also can be said today about the many theoreticians and inventors of scientific hypotheses who are led by their imaginations and not by the truth of God.
! CONTEMPLATION
Contemplate the event of the Baptism of the Lord:
# His humble coming to the Jordan River, unknown to all except John;
# His immersion in the water, the hovering of the Dove over Him, and the Voice from on High.
! HOMILY
! on the mystery of the Divine Trinity
"For there are three that bear record in heaven, the Father, the Word, and the Holy Spirit: and these three are one. And there are three that bear witness in earth, the spirit and the water and the blood: and these three are together" (I John 5: 7-8).
When we read Holy Scripture, we should be alert to keep an eye on every word. To the rapid reader, for example, this distinction which the Evangelist draws between the Heavenly Trinity and the earthly trinity will not become apparent. Concerning the Heavenly Trinity, he says, //and these three are one;//and concerning the earthly trinity, he says, //and these three are together.// There is an enormous difference between "being one" and "being together." The Father, Son and the Holy Spirit are One, whereas the spirit, the water and the blood are only together and are not one. Even enemies could be together, but are not one. All the people on earth are together, but they are not one. Water and blood constitute the body, and the spirit is the spirit. //For the flesh has desires against the spirit and the spirit against the flesh// (Galatians 5:17). They are not one, but they are still together. When man dies, the union is broken and ceases to exist. Blood and water go to one side, and the spirit goes to another side. However, the Persons of the Divine Trinity in the heavens are not only together, but They are also One.
There is also another trinity in the inner heaven of man which should be not only a unity but a oneness, so that man may be blessed in this world and in the other world. That is the union of the mind, heart and will. As long as these three are only in togetherness, man will be at war with himself and with the Heavenly Trinity. However, when these three become one, so that none rules and none is enslaved, then man becomes filled with //the peace of God, which surpasseth all understanding// (Philippians 4:7), that surpasses man's every word, every explanation, every fear and every sorrow. Then the small heaven in man begins to resemble that great heaven of God, and the "image and likeness of God" become apparent in man.
O Triune God, help us to at least resemble those who resemble Thee.
To Thee be glory and praise forever. Amen.
! SAINT JOHN THE BAPTIST
Because John's main role in his life was played out on the day of the Theophany (Epiphany), the Church has from earliest times dedicated the day following Theophany to his memory. An incident with the hand of the Forerunner is also linked to this feast. The Evangelist Luke desired to remove the body of John from Sebaste, where the great prophet was beheaded by Herod, to Antioch, his place of birth. He succeeded, though, in acquiring and translating only one hand, which was preserved in Antioch until the tenth century. After this it was transferred to Constantinople, where it disappeared during the time of the Turks.
Feasts of St. John are celebrated several times throughout the year, but this day, January 7, has the most //Svečara//.//) Among the Gospel personalities who surround the Savior, John the Baptist occupies a totally unique place by the manner of his entry into the world, and by the manner of his life in this world; by his role in baptizing people for repentance; by his baptizing the Messiah; and, finally, by his tragic departure from this life. He was of such moral purity that, in truth, he could be called an angel--as Holy Scripture calls him--rather than a mortal man. St. John especially differs from all other prophets in that he had that privilege of being able, with his hand, to show the world Him about Whom he prophesied.
It is said that every year on the feast of the saint, the bishop brought the hand of St. John before the people. Sometimes the hand appeared open and other times the hand appeared clenched. In the first case it signified a fruitful and bountiful year, and in the second case it meant a year of unfruitfulness and famine.
--------------------
//) That is, those Orthodox Serbs who honor St. John the Baptist as their //Krsna Slava//, or the Patron Saint of their family. The //Krsna Slava//is the day on which Orthodox Serbian families commemorate the baptism of their ancestors into Christianity.--//Trans.//
!
2. THE HOLY MARTYR ATHANASIUS!
This martyr of Christ was a man simple and poor, but rich in faith and wise through the Spirit of God. Once, Athanasius unintentionally entered into a debate about the Faith with a certain Turk. The Turk was educated and adroit with words, but Athanasius endeavored with all his strength to emphasize and establish the truth of the Christian Faith and its superiority over Islam. After that they departed. The next day Athanasius was summoned before the judge. This Turk stood there as his accuser. When the judge called upon Athanasius to deny the Faith of Christ, as he had supposedly done before his companion the previous day, and to embrace Islam, Athanasius cried out: "I would rather die a thousand deaths than renounce the Faith of Christ." For this, he was condemned to death and beheaded in the year 1700 A.D., in Smyrna. His body was buried in the Church of St. Parasceva in the same city.
HYMN OF PRAISE!
SAINT JOHN THE FORERUNNER AND BAPTIST!
Thirty years of fasting and silence--
This, not even the mountain beasts can endure!
The lion alleviates his hunger with the music of roaring,
And the tree rustles when the wind approaches.
But you neither rustle, nor moan.
Neither your lament nor your song through the wilderness echoes!
Tell me, are you a man? What is your name?
Will you ever want to speak with someone?
"The voice, the voice, the voice: I am the voice--
But the Word of God, He is.
To the children of Israel I was sent to cry out:
Repent, O people; behold, He comes.
Bring forth good fruit, each according to your strength.
Behold, behold He comes--oh, wonder of wonders!
In the midst of the water, fire from heaven is concealed!
Behold, the Lamb of God, among the wolves, walks.
Wolves, your lupine temper in the water, cleanse!"
Thirty years of silence and fasting:
Of your body, what remains, save your voice?
Your withered body is but a shadow of your voice,
Which proclaims the news: Behold, God is come to us!
Your withered body was a reed, which Herod broke.
But the voice goes on and on, with no one to silence it.
Whose voice is that, at which even the centuries tremble?
A hungry lion! No, No--a man of faith.
!
RELFECTION!
! St. Basil the Great said: "Man is not something visible." Just as one house resembles another, so the outward appearance of one man resembles that of another. To the house is given honor according to the one who dwells in the house; so it is with man, according to the spirit that dwells in him. To the bodily sight, it is obvious that the house is not the master, but just a house in which the master dwells; but only to the spiritual sight is it obvious that the body is not the man, but only the house in which the man dwells.
CONTEMPLATION!
! Contemplate the departure of the Lord to the Mount of Temptation:
# How, after His baptism, He immediately directs Himself to fasting and to prayer;
# How, for a baptized man, the devil works his wile especially during the time of fasting and of prayer;
# How He--meek as a lamb, yet decisively, as the Master--rejects all the temptations of the devil.
HOMILY!
on submission to the will of God!
"Thy will be done, in earth as in heaven" (Matthew 6:10).
Blessed be John the Baptist, for he fulfilled the Gospel before the arrival of the Gospel! Going into the wilderness, he gave himself up completely to the will of God, both body and soul. The will of God was carried out in his body on earth as well as in the heaven of his soul. Neither hunger nor wild beasts did harm to his body throughout the many years that he spent in the wilderness. His soul was harmed neither by despair in loneliness nor by pride in heavenly visions. He sought neither bread nor knowledge from man. God granted him everything that was necessary for him, because he gave himself up completely to the will of God.
He directed his footsteps neither into the wilderness nor away from the wilderness. An invisible rudder from on high steered his life. For when it was necessary for him to depart from the wilderness and go out to meet the Lord, it is said: //The word of God came unto John//(Luke 3:2). Like an innocent youth, John spoke simply about his communication with the powers of heaven: //And I knew Him not: but He that sent me to baptize with water, the same said unto me, Upon Whom thou shalt see the Spirit descending, and remaining on Him, the same is He which baptizeth with the Holy Spirit. And I saw, and bare record that this is the Son of God //(John 1:33-34). How tenderly and simply he speaks about heavenly things! How terrifying like a lion he is when he speaks out against the injustice of men, against Herod and Herodias! The lamb and the lion dwell in him together. Heaven is as close to him as a mother is to her child. The will of God is as accessible and clear to him as it is to the angels in heaven.
O Lord, most wise, direct the lives of us sinners in the wilderness of this life ! according to Thy will, as Thou didst direct the life of St. John the Baptist.
To Thee be glory and praise forever. Amen.!
! THE HOLY MARTYRS JULIAN AND BASILISSA
Julian and Basilissa were of noble and wealthy parents. United in marriage, they vowed to live chastely as brother and sister. They distributed all of their property to the poor and both were tonsured. Julian founded a monastery and Basilissa founded a convent. Julian had about ten-thousand monks and Basilissa about a thousand nuns. When a terrible persecution began under Diocletian, Basilissa implored God that none of her nuns would become frightened of the tortures and would not fall away from the Orthodox Faith. The Lord heard the prayers of His worthy handmaiden and, in the course of six months, received unto Himself all the nuns, one by one, and finally their abbess, Basilissa. Before her death, Basilissa had a vision of her nuns from the other world. All of them appeared to her radiant and joyful as angels of God, and beckoned their spiritual mother to come to them as soon as possible. Unlike Basilissa's convent, Julian's monastery was set ablaze by the persecutors, and Julian was inhumanly tortured and reposed amidst the most difficult sufferings. During his tortures, the Lord watched over him and strengthened him, so that he heroically endured, preserved his Faith, and glorified the name of Christ. Beheaded with Julian were Celsus and Maronilla, the son and the wife of the tormentor Marcian, who--witnessing Julian's heroism in suffering and torture--were themselves converted to the Christian Faith. Also beheaded were twenty Roman soldiers, seven brothers from that town, the presbyter Anthony, and a certain Anastasius, whom Julian, at the time of his torture, resurrected from the dead by prayer. All suffered honorably for Christ and became citizens of the Heavenly Kingdom in about the year 313 A.D.
! THE VENERABLE GEORGE THE CHOZIBITE
George lived an ascetical life in the seventh century in the Choziba Monastery in Jericho on the road from Jerusalem, the monastery where the Venerable John the Chozibite first led an ascetical life.
! SAINT DOMNICA
During the reign of Emperor Theodosius, Domnica, unbaptized, came from Carthage to Constantinople with four other pagan maidens. Patriarch Macarius baptized them and gave his blessing to them to live as nuns. With great zeal, St. Domnica gave herself up to a life of asceticism and did not waver in that zeal until her death in extreme old age. She reposed in the Lord in about 474 A.D. She was so enlightened by the Holy Spirit that she was able to discern events in the future and work miracles through prayer.
! SAINT GREGORY, BISHOP OF OHRID
Gregory was a devout teacher and shepherd of Christ's flock. He reposed in the year 1012 A.D. In one of the inscriptions in the Church of St. Sophia in Ohrid, he is referred to as "Gregory, the all-wise."
! HYMN OF PRAISE
! SAINTS JULIAN AND BASILISSA
Bound together by marriage, but bound more closely to Christ
In spiritual union, a union more lasting.
In the Book of the Living, their names, the Spirit wrote:
"Brother Julian and Sister Basilissa."
They forsook all and after Christ they followed,
And when the hour struck, their lives they gave up
For the love of God, for the love of the Triune Sun.
Glory, they despised--all earthly glory;
They glorified themselves by their love for God,
And they left us a wonderful example.
A treasure of the Church, an adornment and honor,
Is the miracle-working blood of these wondrous martyrs.!
! REFLECTION
!
On one of the stones in the Church of St. Sophia, the following words were engraved: "Wash your sins, not only your face." Whoever entered this glorious church read this inscription and remembered that the Christian Faith requires of him moral purity: purity of the soul, purity of the heart and purity of the mind. Inasmuch as the complete spiritual man is concentrated in the heart of man, the Lord also said: //Blessed are the pure in heart //(Matthew 5:8). Total external cleanliness does not help at all in gaining the Kingdom of Heaven. Oh, if only we would invest as much effort in washing ourselves from sins as we invest daily in washing our faces, then God would truly be seen in our hearts as though in a mirror!
! CONTEMPLATION
!
Contemplate the three temptations by which Satan tempted the Lord Jesus:
# Gluttony--the temptation with bread;
# Vainglory--lifting Him above the Temple;
# Avarice--offering Him the possession of the entire world.
! HOMILY
! on the need of caution for those who think that they are secure
! "Wherefore let him that thinketh he standeth take heed lest he fall (1 Corinthians 10:12).
The Apostle who gives such advice knew human nature and all its weakness perfectly. Day after day, this experience is confirmed: as soon as a man straightens up from the mud of sin, he sways and falls again. As soon as he is cured of the sin of avarice, he falls into the vice of vainglory. Or, as soon as he extends his hand to help a poor man, pride topples him to the other side. Or, as soon as he becomes accustomed to prayer, he opens wide his mouth to degrade those who are not yet accustomed to prayer. Or, as soon as he feels that the Spirit of God is directing him to the path of salvation, he immediately sets himself up as a teacher to the entire world until, unfortunately, through this he completely drives the Spirit from himself.
When the Lord foretold to His disciples that they would all deny Him and flee, then Peter, confident in his stability, cried out: //Though all men shall be offended because of Thee, yet will I never be offended //(Matthew 26:33). Discerning his very heart and seeing him already fallen into self-conceit and pride, the Lord responded to him: //This night, before the cockcrow, thou shalt deny me thrice// (Matthew 26:34). And when such a fall happened to the apostle in the immediate proximity of the Lord, why would it not happen to us? This is why, brethren, when we rise and turn from a certain sin and stand erect, we should ascribe this to the power and mercy of God and not to ourselves, and we should be very vigilant to protect ourselves and implore God that we do not fall again, be it to one side or the other side, but walk on the upright path of the Lord.
O All-seeing Lord, help us to stand straight before Thee by the Spirit, and when we become upright, uphold us that we do not fall anymore.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR POLYEUCTUS
The Armenian city of Melitene was drenched with the blood of Christians, as was the entire country of Armenia. The first blood shed for Christ in this city was that of Saint Polyeuctus in the year 259 A.D., during the reign of Valerian. In Melitene were two friends: Nearchus and Polyeuctus. Both were officers--Nearchus baptized and Polyeuctus was unbaptized. When the command of the emperor was sent out concerning the persecution of the Christians, Nearchus prepared for death; but he was in great sorrow because he had not succeeded in converting his friend Polyeuctus to the True Faith. When Polyeuctus learned of the reason for Nearchus's sorrow, he promised to embrace the Faith. The following day Polyeuctus related this dream to Nearchus: the Lord Himself had appeared to him in light, removed Polyeuctus's old clothes from him and dressed him in radiant new clothes and sat him in the saddle of a winged horse. After this, Polyeuctus went to town, shredded the emperor's decree concerning the torturing of Christians, and destroyed many statues of idols. He was tortured and condemned to death. When he was brought to the place of execution, he looked at Nearchus in the throng of people and joyfully cried out to him: "Save yourself, my dear friend! Remember the vow of love confirmed between the two of us!" Later, St. Nearchus died by fire as a martyr for Christ. St. Nearchus is commemorated April 22.
! THE VENERABLE EUSTRATIUS
Eustratius was a native of Tarsus. He was a great ascetic and a man of prayer. During the seventy-five years he spent in the monastery, Eustratius never laid down to sleep on his left side but always on his right. Throughout the Divine Services, from the beginning to the end, he repeated to himself: "Lord have mercy!" He reposed in his ninety-fifth year.
! SAINT PHILIP, METROPOLITAN OF MOSCOW
Philip was born February 11, 1507 A.D. Once, while standing in church as a young boy, he heard the priest read from the Gospel: //No man can serve two masters// (Matthew 6:24). He became very frightened by these words, as though they had been spoken to him alone, and at that same moment he became enlightened by them. He then withdrew to the Solovki Monastery where, after a long and difficult novitiate (period of probation), he was tonsured a monk. In time, Philip became the abbot and shone as the sun, and the whole of Russia heard of him. Hence, Tsar Ivan the Terrible summoned Philip to fill the vacant see of the Metropolitan of Moscow in the year 1566 A.D. However, this holy man could not endure with indifference the atrocities of the terrible tsar, and therefore he counseled and rebuked him without fear. The tsar found some false witnesses against Philip, ousted him from office, ordered that he be dressed in a simple and tattered monastic cassock and imprisoned him in Tver on December 23, 1569 A.D. Malyuta Skuratov, one of the tsar's confidants, came to Philip's cell and suffocated him with a pillow. Shortly afterward, all those who were opposed to Philip died evil deaths. After several years, the body of the saint, which was discovered whole, incorrupt and fragrant, was translated to the Monastery of Solovki.
! HYMN OF PRAISE
! SAINTS NEARCHUS AND POLYEUCTUS
Nearchus and Polyeuctus, soldiers of Caesar,
Became soldiers of the Heavenly King.
One was baptized with water, the other with his own blood;
The second surpassed the other and became the first.
Oh, blessed is this competition,
This heroic rushing to Christ's' Kingdom!
Polyeuctus rejected all the spoils of this world--
All things, which come and go like the wind--
And for brief sufferings he purchased the everlasting Kingdom.
This trade, for him, turned out to be a brilliant one.
For the sake of eternal life, let the grass be cut down!
In exchange for transitory suffering, glory which passes not away!
Pray for us, O soldier of Christ,
That not one of our souls perish!
! REFLECTION
The Orthodox Church, in teaching men about perfect love, at the same time also teaches them perfect obedience--from which emanates order and harmony among the faithful. Bishops owe their obedience to the Lord. Priests owe their obedience to the bishops. The faithful owe their obedience to both the one and the other. St. Ignatius of Antioch writes about this: "You are required to obey without hypocrisy; he who would deceive his visible bishop would also scorn the Invisible One... I pray you, endeavor to fulfill everything in godly unanimity--under the presidency of the bishops, who occupy the place of Christ, and of the presbyters, who constitute the assembly of the apostles--not thinking that whatever you do alone and apart would be correct."
! CONTEMPLATION
Contemplate all the virtues in the Person of the Lord Jesus Christ:
# How every virtue is complete and perfect in Him as in no other in the history of the world;
# How all the virtues wonderfully compliment each other, how the one penetrates the other, and the one working in the other is made radiant.!
! HOMILY
! on concern for the salvation of our neighbors
"Let no man seek his own, but every man another's wealth" (1 Corinthians 10:24).
This is the principle of the saints of God, both now and in the past, always and forever. This is the principle on which society is built. Upon this principle can be established the most perfect, most God-pleasing and most prosperous human society. This is the saving principle for every type of difficulty, against which contemporary men struggle without victory and without hope. The holy soul is concerned with where the homeless will spend the night, how the hungry will be fed, how the naked will be clothed. The holy soul is concerned, and prays to God that his neighbors be saved; that their hearts be filled with love toward God; that their minds be directed toward God; that the wicked turn from the path of wickedness; that those wavering in the Faith be strengthened; that those who are strengthened be sustained; that those who have died see the face of God; that the living be written in the Book of Life in the Kingdom of Light.
But beware, brethren, and see how the destructive and antisocial principle of the devil can be phrased in like manner, word for word. This principle of the devil says: No one should look to his own body to preserve it in purity from sin, but rather everyone should look to the bodies of others in order to ruin and to destroy them. No one should look to his own soul to see how to save it; rather everyone should look to the soul of someone else in order to blacken it, to curse it, to impoverish it and to destroy it. Let no one look at his house in order to build it and renew it; rather, let everyone look at the home of another in order to burn it and demolish it. No one should look at his granaries in order to fill them; rather, one should look at the granaries of others in order to steal from them and empty them.
Behold, brethren, how this principle can be a principle either of good or of evil; it is a sharp two-edged sword, an angel or Satan. See how this principle in the satanic spirit and form has gained momentum on all sides today!
O Lord, Holy Spirit, Who, through the tongue of the apostle of God, has released these holy words in the world, as bright rays of the sun to illuminate and not to burn us, help us now to fulfill them in the proper heavenly sense--to the glory of the Triune God and for the salvation of our souls.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS COSMAS AND DAMIAN
Cosmas and Damian were unmercenary physicians and miracle-workers. These two saints were brothers, born in Rome. As children, they were baptized and brought up in the Christian spirit. They possessed abundant grace from God to heal men and livestock from every disease and suffering, usually by the laying on of hands. They sought no reward for their efforts, only requiring the infirm to believe in Christ the Lord. They compassionately distributed their inheritance of a large estate to the poor and those in need. At that time the Emperor Galerius reigned in Rome. Before Galerius, persecutors of Christianity brought these two holy brothers bound in chains. After prolonged interrogation, Galerius ordered them to deny Christ and offer sacrifices to the idols. Cosmas and Damian not only refused to obey the emperor but also counseled him to abandon the lifeless idols and recognize the One True God. "Our God is not created, but rather He is the Creator of all. Your gods are the inventions of men and the work of the hands of mere craftsmen. If you did not have craftsmen to make your gods, you would have no one to worship." After Cosmas and Damian had worked a miracle upon the emperor himself--they miraculously cured him from a grave infirmity--the emperor proclaimed his faith in Christ and released the holy brothers in peace. Cosmas and Damian continued to glorify God and heal the sick, and they were themselves glorified by the people on all sides. Envious of their glory, a certain doctor, a former teacher of theirs, led them into the mountains, under the pretext of gathering healing herbs, and stoned them to death. They suffered honorably for the Faith of Christ in the year 284 A.D. Their memory remains eternal in the Church on earth, and their souls took up their habitation in the Kingdom of the Lord, to live eternally in glory and in joy.
! THE VENERABLE PETER THE PATRICIAN
This saint was a nobleman from Constantinople and a commander during the reign of Emperor Nicephorus (802-811 A.D.). In a war with the Bulgarians, Emperor Nicephorus was slain, and Peter, with fifty Greek commanders and princes, was captured and cast into prison. St. John the Theologian miraculously freed Peter from prison. Despising all earthly glory, Peter then left his wife and son and withdrew to Mount Olympia, where--as a monk and as a disciple of St. Joannicius the Great--he lived an ascetic life for thirty-four years. Following the death of his wife and son, he settled in Constantinople, where he spent eight more years in fasting and prayer. He then fell asleep in the Lord in the year 865 A.D. in the seventy-seventh year of his life.
! THE HOLY MARTYR POTITUS
A thirteen-year-old child in Sardinia, Potitus endured much suffering for Christ--both from his father and from the civil persecutors of Christianity. Potitus was beheaded during the reign of Emperor Antoninus (138-161 A.D.), after having healed and baptized Agnes, the daughter of the emperor.
! HYMN OF PRAISE
!
! SAINT POTITUS
!
The young Potitus, his father asked:
"If your Faith is so true,
Would you for it give your life?"
Potitus replied: "The Savior promised
To gird all of His faithful with such strength
That for Him one could easily suffer.
In that also I hope, and I greatly believe
That I could suffer for my Christ.
Father, my God is great and glorious,
Miraculous and mighty, living and life-giving.
He, the young David, helped in battle,
So that he claimed the head of the terrible Goliath.
With me, on the path of suffering, He will be,
So that, dark and bitter death, I can endure."
When Gilas, the father, heard his son's answer,
He felt he had, of wisdom, unearthly wine, drunk,
And cried out: "Where are my years?
Behold, from a child truth I have learned!"
He was baptized and numbered among the faithful--
And, in blood, Potitus was baptized a martyr.
! REFLECTION
Through their prayers and almsgiving for the deceased, Christians show forth the relationship between this world and the world to come. The Church in this world and the Church in the other world are one and the same--one body, one being--as the root of a tree beneath the earth comprise one organism with the trunk and the branches of the tree above the earth. It is clear from this how we, who comprise the Church on earth, can receive help from the saints and the righteous ones in the Heavenly Church, as the deceased sinners in the other world can receive help from us on earth. St. Athanasius says: "As it happens with wine inside a barrel--that when the vineyard blooms in the field, the wine somehow senses it, and blossoms in fragrance itself--so it is with the souls of sinners. They receive some relief from the Bloodless Sacrifice offered for them in charity," performed for their repose. St. Ephraim the Syrian cites that same example with wine and the vineyard and concludes: "And so, when there exists such mutual sensitivity even among plants, are not prayer and sacrifice felt even more so by the departed ones?"
! CONTEMPLATION
To contemplate the miraculous changing of water into wine (St. John 2:1-11):
# How the Lord, at the marriage at Cana, changed the water into wine;
# How even my soul, if it is wedded to the Living God, transforms its earthly wateriness into a divine beverage.
! HOMILY
! About how we should rejoice in Christ
"In this you greatly rejoice though now for a little while, if need be, you have been grieved by various trials" (1 Peter 1:6).
Thus speaks St. Peter the Apostle, whose life was filled with many temptations and frequent sorrows. Thus speaks the man who left his home and family and followed Christ; who for the sake of Christ endured many difficulties--from hunger, from thirst, from the Jews, from the Romans, from false prophets, from cruel heathens--and who in the end was crucified on a cross, all for the sake of Christ the Lord. He who in this life was mercilessly scourged with great sorrows and great temptations counsels us to rejoice in Christ, so that this joy may swallow up all our comparatively lesser sorrows and temptations.
But why, brethren, should we rejoice in Christ? Because He revealed and showed us the reality of the greatest and most beautiful hopes and dreams of mankind.
He revealed to us the One Living, Omnipotent, All-wise, and All-merciful God, Who gave us the privilege of calling ourselves His sons.
He revealed and showed us the immortal and eternal life: life incomparably better than this life on earth.
He revealed to us the spiritual kingdom, the kingdom of angels and the righteous, the kingdom of all good, of the light of truth and of justice.
He revealed and showed to us the goal of our existence here on earth, and the purpose of all our efforts and sufferings in this transient life.
He revealed to us the ocean of heavenly joy, before which all of our present sorrows and temptations are like drops of muddy water, which are unable to muddy that ocean.
O brethren, what joy awaits us! O brethren, how small a price does our Lord ask of us to purchase this joy, in which the angels bathe and in which the righteous swim! All that is required from us is simply to fulfill a few of His short commandments!
O Lord Jesus, all-miraculous Source of joy, our boast and our pleasure, our glory and our thanks, place Your finger on our mouths and do not let a single drop of muddy sorrow and temptation poison us.
To Thee be glory and praise forever. Amen.
! THE HOLY FORTY-FIVE MARTYRS: LEONTIUS, MAURICE, ALEXANDER, SISINIUS, AND OTHERS
During the reign of the wicked Emperor Licinius, who ruled the eastern half of the Byzantine Empire, there was a great persecution of Christians. In Armenian Nicopolis, St. Leontius, with several of his friends, appeared before Lysius, the representative of Emperor Licinius, and he declared that they were Christians. "And where is your Christ?" Lysius asked. "Was He not crucified and did He not die?" To this St. Leontius replied: "Since you know that our Christ died, know also that He rose from the dead and ascended into heaven." After a lengthy discussion about the Faith, Lysius scourged them and threw them into prison, where they were given neither food nor drink. A highborn Christian woman, Vlassina, brought them water, handing it to them through the window of the prison. And an angel of God appeared to them to comfort and encourage them. When the time came for sentencing, two jailers appeared before Lysius as Christian converts, and many others as well, numbering forty-five in all. The judge sentenced all of them to death, ordering that their arms and legs be severed with an axe and their torsos then be thrown into the fire. This horrible punishment was carried out, and the souls of the holy martyrs took flight to their Lord, entering into eternal life. They honorably suffered and inherited the Kingdom in the year 319 A.D.
! THE VENERABLE ANTHONY OF THE MONASTERY OF THE CAVES IN KIEV
The founder and father of monasticism in Russia, Anthony was born in the small town of Lyubech near Chernigov. At an early age he left his home and went to Athos, the Holy Mountain, where he was tonsured a monk and lived in asceticism in the Monastery of Esphigmenou. In obedience to a heavenly apparition, the abbot sent Anthony to Russia to establish monasticism there. Anthony chose a cave near Kiev. When those who were desirous of a monastic life gathered around him, he appointed Theodosius abbot, and he himself remained in the cave as a hesychast (silentary). Through the blessing of God, the monastery grew and became the mother of Russian monasticism. Anthony endured much evil from men and from demons, but he conquered all by his humility. He possessed the great gift of clairvoyance and of healing the sick. He reposed in the Lord in the year 1073 A.D., at the age of ninety, leaving his spiritual seedbed (nursery) to bring forth good fruit throughout the ages for the Orthodox people of Russia.
! THE TRANSLATION OF THE HONORABLE VESTURE [ROBE] OF OUR LORD JESUS CHRIST
At the time of the suffering of our Lord Jesus for mankind, there was among the ranks of the Roman army in Jerusalem a Georgian named Elioz from the town of Mtskheta. His mother had heard of Christ, and believed in Him in her heart. Seeing her son off to the army in Palestine, she had counseled him not to do anything against Christ. When the Lord was nailed to the Cross, the sound of the hammer on Golgotha reached the ears of Elioz's mother in the town of Mtskheta. Hearing this sound, she cried out: "Woe is me, that I did not die before this time. Death would have rescued me from this dreadful sound!" And saying this, she fell dead. At that time Elioz was beneath the Cross, and with the other soldiers he was casting lots for the tunic [robe] of Christ. He won the vesture, and brought it to Mtskheta, giving it as a gift to his sister Sidonia. Hearing about the death of the Lord, and that her brother had been a participant in the shedding of innocent blood, she fell dead, holding the tunic of the Lord firmly in her hands, such that no one was able to tear it away and they were compelled to bury the tunic with her. A cedar tree sprouted from her grave and it poured forth a sweet-smelling healing myrrh. In time, the cedar tree was cut down and carved into a pillar. At St. Nina's prayers an angel raised this pillar, which blazed like a column of fire, over the grace, and it came to rest on the pedestal carved from the stump. King Mirian, upon being baptized, erected a church there, dedicating it to the Holy Apostles. In the year 1625 A.D., Shah Abbas took the tunic and sent it to Moscow as a gift to Prince Michael Fyodorovich and Patriarch Philaret, and it was placed in the Cathedral Church of the Dormition [Assumption] of the Blessed Virgin in Moscow.
! HYMN OF PRAISE
!
! THE MOTHER OF ELIOZ
!
The mother of Elioz counseled him:
"Elioz, O sight of my eyes,
Behold, you are entering the imperial army
Precisely in the land of my forefathers.
In that land, the King has appeared,
From of old, awaited, Christ the Lord--
By the prophets, the Savior, foretold.
To Georgia, word of His advent comes;
Unseen miracles, He works till now!
And words like none before He speaks
Among men, establishing the Kingdom of God!
Talk of Him is everywhere!
Men and angels rejoice,
But this joy is darkened
By the malice of the Jewish elders,
Who want to kill Him--
And by this new curse, the people are oppressed.
But, my son, the sight of my eyes,
Of their sin, do not partake,
In the Blood of the Just One, do not wet yourself."
Time passed in its course;
The mother, in spirit, at prayer one day,
The hammer on the Cross she heard,
And screamed as though in raging fire:
"O death, why did you not come to me sooner,
That I would not, that awful sound, hear?
It peals forth the death of the sinless Savior,
And on the Jewish nation, a curse!
O Son, O Elioz,
Your mother, why did you ignore?
The Blood of the Just One, why did you help shed?"
Having said this, the lamenting mother
To the ground fell, and to God her soul gave.
! REFLECTION
The thought of death is like a downpour of cold rain that extinguishes the fire of passions. The Psalmist David says: //For when he dies he shall carry nothing away: his glory shall not descend after him// (Psalm 49:17). Who would not be ashamed when he sometimes sees among the unbelievers a better comprehension of our earthly nothingness than among some Christians? When Caliph Saladin died, in accorance with his last testament, a crier [Telal] went before his coffin with a spear in his hand and with one of the emperor's shirts on the spear, and he cried out: "The great Saladin, who conquered all of Asia, causing many nations to tremble before him, and who was victorious over emperors: behold, of all his glory and all his subjects, he takes nothing with him but this miserable shirt."
! CONTEMPLATION
To contemplate the miraculous appearance of God to Moses on Mt. Sinai (Exodus 19):
# How Moses climbed to the top of Mt. Sinai and entered the darkness where God was: //I am coming to you in a dense cloud// [Exodus 19:9];
# How the light of God is so great that, before it, all of nature and her light become darkness;
# How the heart of man is like Mt. Sinai: in the darkness of the heart, there God encounters man.
! HOMILY
! About the duties of spiritual shepherds
"Feed the flock of God which is among you, taking the oversight thereof, not by constraint but willingly [in God]; not for filthy lucre but of a ready mind [good heart]; neither as being lords over God's heritage but being examples to the flock" (1 Peter 5: 2-3).
Here are the precepts for shepherds of the flock of Christ! In a few words, the holy Apostle Peter exposes the three terrible passions that can turn shepherds [of the flock of Christ] into wolves: the passion of pride (not by constraint), the passion of greed (not for filthy lucre), and the passion of power (neither as being lords over God's heritage). In opposition to these pernicious passions, the apostle points out the three virtues which must adorn a shepherd of God flock: the virtue of the fear of God (willingly), the virtue of zeal (of a ready mind), and the virtue of service (being an example to the flock). The apostle gave these precepts not only as a teacher but also as a prophet. For the centuries have revealed two main types of shepherds: some, in their high position in the Church, have been guided by their passions: pride, greed, and lust for power; and others have been guided by the fear of God, by zeal, and by the model of service. The Church has suffered from the former, but has not perished, while they themselves have perished. From the latter, the Church has grown and advanced and shone forth in the world. The former are wolves and the latter are shepherds. The former are enemies both of man and of God, and the latter are friends both of man and of God. Christ the Chief-Shepherd will seek an accounting from the former and the latter concerning every sheep, i.e., every human soul, and He will justly recompense each according to his deeds. Pride, greed and lust for power in the so-called shepherds will be rewarded with eternal fire, while the fear of God, mercy and service of the true shepherds will be rewarded with eternal rejoicing.
O Lord Jesus, the Chief-Shepherd, help the shepherds of Your spiritual flock that, to the end, they may fulfill the commandment of Your holy apostle.
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT FEMALE MARTYR EUPHEMIA
Saint Euphemia is commemorated on September 16, the day on which she was martyred. On this day is commemorated the miracle-working power of her honorable relics, which was manifested at the time of the Fourth Ecumenical Council in Chalcedon. This Council was convened during the reign of Emperor Marcian and Empress Pulcheria in the year 451 A.D., after the death of Emperor Theodosius the Younger. The reason for summoning this Council was the heresy of Dioscorus, Patriarch of Alexandria, and Eutyches, an archimandrite from Constantinople who had spread the false teaching that in Christ the Lord there are not two natures, divine and human, but only a Divine Nature. At this Council, the most prominent roles were played by Anatolius, Patriarch of Constantinople, and Juvenal, Patriarch of Jerusalem. Because a decision could not be reached through debates and testimonies from both sides, Patriarch Anatolius proposed that the Orthodox and the heretics each write down their confession of faith, and that they then be placed into the coffin where the relics of St. Euphemia lay. They all agreed to this. Therefore, the two confessions of faith were written and placed on the bosom of the great-martyr. The coffin was closed and sealed with the emperor's seal, and soldiers were commanded to watch over it. All the members of the Council then spent three days in prayer and fasting. When they opened the coffin on the fourth day, they found the Orthodox Confession of Faith in the right hand of the saint and the heretical confession of faith under her feet. Thus, by the power of God, the dispute was decided in favor of Orthodoxy. During the reign of Emperor Heraclius, the relics of St. Euphemia were translated from Chalcedon to Constantinople, to the church dedicated to her near the Hippodrome. The iconoclastic Emperor Leo the Isaurian ordered that these relics be thrown into the sea, but the coffin was miraculously translated to the island of Lemnos and was placed in the Church of the Holy Martyr Glyceria. Then, during the reign of the Empress Irene, the coffin with the relics of St. Euphemia was returned to Constantinople, to its former place. From time to time, blood has flowed from these relics, to help those who are ill or in misery.
! SAINT HELENA [OLGA]
Helena was a great Russian princess, the wife of Prince Igor, whose name before baptism was Olga. She was baptized by Patriarch Polyeuctus in Constantinople and was very zealous for the Orthodox Faith in Russia. She entered into eternal rest in the year 969 A.D.
! THE VENERABLE MARTYR NICODEMUS
Nicodemus was born in Elbasan [in Albania] and was married and had children. Deceived by the Turks, he embraced Islam and forced his children to do likewise, with the exception of one son who fled to the Holy Mt. Athos where he was tonsured a monk. Nicodemus traveled to Mt. Athos to retrieve his son, but Mt. Athos made such an impression on him that he repented and returned to the Faith of Christ, and was tonsured a monk. For three years he mourned over his apostasy, then he finally decided to return to Albania to atone for his sin in the place where he had committed it. Thus he returned and declared openly that he was a Christian, and the Turks beheaded him on July 11, 1722. His wonderworking relics lie, even today, intact and incorrupt.
! THE VENERABLE MARTYR NECTARIUS
Nectarius was born in Vryoulla, in Asia Minor. At age seventeen he was forced to embrace Islam. His fate was similar to that of St. Nicodemus. When he appeared before his mother as a Muslim, she cried out: "Depart from me! I know you not. I bore you as a Christian, not as a Muslim." He repented bitterly and went to Mt. Athos. There in the Scete of Saint Anna, he was tonsured a monk. Deciding to suffer for Christ--and thereby to wash away his sin--he returned to Vryoulla, where he suffered martyrdom. He was beheaded for Christ by the Turks in his place of birth, on July 11, 1820, at the age of twenty-one.
! HYMN OF PRAISE
!
! SAINT OLGA [HELENA], SAINT NICODEMUS, AND SAINT NECTARIUS
God loves penitents:
For them, He suffered.
Even now, He beckons sinners
To repentance.
Olga, a penitent was,
By baptism, to true life born,
And she liberated the Russian people
From darkness, by the Cross.
And from Elbasan, Nicodemus
From Christ turned away,
But repented and returned--
And for sin, with blood paid.
From Asia, Nectarius,
A flower not yet ripened,
In ignorance, to Islam turned
And saddened the angels.
But then, repenting and in sorrow,
With streams of tears gushed forth,
And loved death more than life,
Even a painful death he loved.
The Moslem turban he removed,
And before the terrible judge set it.
St. Nectarius's head was taken
For the Honorable Cross.
Penitents, Christ loves
And will always love them.
To Christ, who is so dear
As a repentant man?
! REFLECTION
A change of fortune strikes the hardest when it strikes unexpectedly. But to him who anticipates the blow and guards himself against it beforehand, can it be unexpected? The Emperor Charlemagne the Great ordered his sons to learn a trade and his daughters to learn to spin wool, so that they would be able to earn a living, should their fortunes change. The famous and renowned Belissarius, a great general and a great conqueror, was slandered before the king by envious men, and on the basis of these slanders he was blinded and his estate was taken away from him. The blind Belissarius sat before the gates of Rome and begged for alms, saying to passers-by: "Give alms to Belissarius, whom fortune raised on high but envy struck down, depriving him of his sight!" The righteous Job said: //Is not a man's life on earth a drudgery? Are not his days those of a hireling?//(Job 7:1). Therefore, one must be as a watchful guard and be prepared for all that may happen. What is there that cannot happen to a man? Yet in every suffering one must have hope in God. Covered with festering sores and seated in his humiliation upon a dunghill, the righteous Job cried out: //Though He slay me, yet will I trust in Him!// (Job 13:15).
! CONTEMPLATION
To contemplate the miraculous illumination of the face of Moses (Exodus 34):
# How, after his conversation with God on Mt. Sinai, the face of Moses shone with brilliant light;
# How the people saw, and dared not approach Moses, and he placed a veil over his face;
# How, through sincere prayer and communication with God, the face of a God-pleaser is illuminated.
! HOMILY
! About obedience and humility
"Likewise, you younger, submit yourselves, unto the elder. Yes, all of you be subject one to another, and be clothed with humility" (1 Peter 5:5).
Here is the principle of the true catholicity (conciliarity-sobornost) of Orthodoxy! It is based on the unconditional obedience of the younger toward the older, on reciprocal obedience of equals among themselves, and on the humility of both the older and the younger. "Lowliness" is a good word, but better is the word "humility," and the best is "humility of wisdom (humble-mindedness)." Humility of wisdom corresponds exactly to the Greek word which the apostle used in his epistle. Humility of wisdom signifies thinking of oneself as lowly and of God as exalted, constantly acknowledging one's helplessness, one's ignorance, one's wickness, one's unworthiness, and constantly acknowledging the power, wisdom, mercy and dignity of God.
God is the only King of mankind. That is why He opposed the wishes of the Israelites that a king be appointed for them from among the people. God rules, and the people serve God. Those who are in authority and those who submit are equally the servants of God. When it is known and recognized that God is King and that all men are servants of God, then the foundation of conciliarity is established--the foundation of the angelic society. Upon this foundation, then, the house of God, the angelic society, is built, with the help of the obedience of the younger toward the elder, the reciprocal obedience of peers among themselves, and the humility of wisdom of all. In this manner, two terrible evils in the world are avoided: tyranny, where-in one rules many by force, and anarchy, or mob rule.
The principle of conciliarity is an organic principle, a living principle. It is the principle of mutual service, mutual help, and mutual love. Brethren, may God endow us with wisdom to avail ourselves of this saving principle.
O Lord Jesus, obedient and humble Lover of Mankind, plant and confirm in us obedience to Your law, mutual obedience out of love, and humility of wisdom before Your unutterable power and wisdom.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS PROCLUS AND HILARY
These holy martyrs were born in Kallippi in Asia, and Proclus was the uncle of Hilary. They suffered during the reign of Trajan. "What is your lineage?" the judge inquired of Proclus. Proclus answered: "My lineage is Christ and my hope is my God." When the judge threatened him with tortures, Proclus said: "When you are afraid to transgress the orders of the emperor, in order not to fall into temporal sufferings, how much more are we Christians afraid to transgress the commandment of God, so that we may not fall into eternal sufferings!" While they were torturing Proclus, Hilary came before the judge and said: "I also am a Christian!" After much suffering, they were both sentenced to death: Proclus was crucified on a cross and Hilary was beheaded, and they entered into the joy of their Lord.
! THE VENERABLE MICHAEL OF MALEINOS
Michael was a wealthy man of noble birth. Rejecting earthly goods in his youth, he withdrew to Mt. Malea, near the Holy Mountain [Mt. Athos], where he lived a life of asceticism, purifying his heart through fasting and prayer. He later had many disciples, of whom the most renowned is St. Athanasius the Athonite. Michael died peacefully in about the year 940 A.D.
! THE HOLY FEMALE MARTYR GOLINDUC [MARY]
Golinduc was a Persian by birth. She entered into marriage with a Persian noble and lived for three years in the marital state. She then had a vision of an angel who showed her the other world: the torments of sinners and unbelievers, and the joy of the righteous. After this, she left her husband and was baptized, receiving the name Mary. Persecuted by her husband, she was sentenced to prison for life, and spent eighteen years in prison, without wavering in her faith. Then she was thrown into a pit, with a terrible snake, but God saved her and the snake did not harm her. When evil young men were sent to defile her, God made her invisible to their eyes. Astonished at her sufferings, many Persians embraced the Faith of Christ. She visited Jerusalem where she denounced the Severian heresy, which taught that the divine nature in Christ suffered, for which they read the Trisagion [Trisvjatoje, The Thrice-Holy Hymn] thus: "Holy God, Holy Mighty, Holy Immortal, crucified for us, have mercy on us." Continuing to preach the true Faith, she died peacefully near the city of Nisibus in the year 587 A.D.
! SAINT VERONICA
Veronica is the woman with the issue of blood whom the Lord healed: //And, behold, a woman, which was diseased with an issue of blood twelve years, came behind Him, and touched the hem of His garment// (St. Matthew 9:20). Out of gratitude to the Lord, her Healer, Veronica ordered a statue of the Lord Jesus be made for her, before which she prayed to God. According to tradition, this statue was preserved until the reign of Emperor Julian the Apostate, who altered the statue so that it becme an idol of Zeus. This is one of the rare instances in which statues of saints have been used in the Eastern Church. As is known, the latter became a common practice of the Western churches. Saint Veronica remained devoted to the Faith of Christ until her peaceful repose.
! THE HOLY MARTYRS THEODORE AND JOHN
Theodore and John were father and son of Varangian descent (Vikings). After being baptized, they settled in the pagan city of Kiev. The enraged pagans pulled their house down upon them, and both of them suffered for the sake of Christ. Their relics repose in the Monastery of the Caves of Anthony in Kiev. Their intercession is especially invoked by those without children and those who are prone to miscarriage.
! HYMN OF PRAISE
!
! THE HOLY FEMALE MARTYR GOLINDUC
!
Golinduc, by race a Persian,
The heavens saw and a Christian became,
And began to walk the narrow path,
Receiving blows from all sides.
As an iron strikes flint,
And from the strike fire leaps,
So pain the heart of some strikes,
Igniting the hidden fuel of the heart,
The dark path for men illuminating--
The soul saving from passions shameful.
Golinduc, full of the Spirit of God,
Roof nor bread, did not have;
In all the world, a friend she had not.
The earth, a torturer's camp, to her was.
All she had, for Christ she gave
And through suffering, gold she became,
And as gold, by the fire tempered
She was refined throughout.
One by one, the torturers died off;
Of their wealth, nothing did they take--
Except their crimes and an evil name.
Golinduc, before God, came,
Like a wondrously fruitful olive tree,
Pure in soul, akin to angels.
! REFLECTION
The fabric of justice is thinner than silk, but it is more durable and less easily torn, and encompasses both worlds, while the fabric of injustice and violence is thick and easily breaks. During the reign of Prince Vladimir of Kiev, only one Christian family lived in Kiev: Theodore the Varangian and his son John. During a foul idolatrous feast, the pagan Kievans, directed by a demon, decided to offer Theodore's son John as a sacrifice to the idols. When they came to Theodore and sought his son John in the name of their "gods," Theodore said: "If your gods are alive, let them come themselves and take my son." The enraged pagans rushed into Theodore's house, destroyed it, and left the bodies of the God-pleasing Theodore and his son John in the ruins. Thus far did the fabric of violence extend. But the fabric of justice went further: Prince Vladimir was baptized shortly thereafter, and he baptized his people as well. Then, on the very spot where the house (and grave) of the first Russian martyrs--Theodore and John--had stood, a church was erected and dedicated to the All-Holy Birth-giver of God.
! CONTEMPLATION
To contemplate the miraculous punishment and healing of Miriam [Mary], the sister of Moses (Numbers 12):
# How Miriam spoke against Moses, who was //very meek, above all the men on the face of the earth// (Numbers 12:3);
# How God punished her with sudden leprosy, and how God healed her through the prayer of Moses;
# How God's punishment strikes those who cry out against the men of God even today.
! HOMILY
! About God's attitude toward the proud and toward the humble
"For God resists the proud and gives grace to the humble" (1 Peter 5:5).
Brethren, before whom and before what can a man be proud? Before angels? Behold, the angels are immortal and man is mortal. Before men? Behold, he is dependent on many men and he is mortal, as are all men. Before the animals? But how could he live without the service of animals? Before the sun and stars? But, without their light, he would stagger in the darkness, and in a few days he would cease to be. Before vegetation? But vegetation is his main food. Before the black earth? But his body was created from the earth. Before the dead? But he could not have entered into life without them. Before the living? But the living are so numberous that, among them, he is as a single fiber in a rug. Before God? But if it were not for the will of God, he would not be either among the living or among the dead. Before whom and before what, brethren, can man be proud?
God gives grace to the lowly and humble. That is, He gives them all that they need, all that for which they pray to Him in their lowliness and humility. Who are they, the lowly and humble? They are those who feel their weakness and their complete dependence on the Creator of all. They are as full as the sea, and as dependent as the sea. What water is there that is fuller than the sea, and what is more dependent on the rains and the rivers? But the proud man is like an enclosed well, closed off from heaven and earth and self-sufficient as long as it is full. But, being closed off and cut off, it soon becomes empty.
The wise Solomon speaks wisely about God: //Surely He scorns the scorners: but He gives grace to the lowly// (Proverbs 3:34). But God's scorn does not gloat over another's misforturne as does human scorn, but rather it is pity and wrath. Nor is God's mercy limited as is man's mercy, for it is a royal mercy, which startles by its radiance, beauty and limitlessness.
O Lord God, our Creator, humble our hearts when they are puffed up by pride, and humble our minds when they are puffed up by haughtiness. Help us in the hour of our prideful nothingness to remember the Cross on Golgotha and Your Only-begotten Son, bleeding and suffering for our sake.
To Thee be glory and praise forever. Amen.
! THE HOLY ARCHANGEL GABRIEL
This great archangel of God is commemorated on March 26. Today, however, his appearances and miracles throughout the entire history of man's salvation are celebrated. It is believed that this celebration was first established on Mt. Athos in the ninth century, during the time of the Emperors Basil and Constantine Porphyrogenitus and Patriarch Nicholas Chrysoverges, and was occasioned by the appearance of the Archangel Gabriel in a cell near Karyes, where the archangel wrote with his finger on a stone tablet the hymn to the Birth-giver of God "It Is Truly Meet" [Dostojno Jest, Axion Estin]. Because of this event, the cell was called, and is called to this day "It is Truly Meet." Together with this occurrence, the other appearances of the Archangel Gabriel are also commemorated: the archangel's appearance to Moses while he was tending the flock of Jethro, when he related to this great one called of God how the world was created and all the rest that Moses later recorded in his Book of Creation (Genesis); his appearance to the Prophet Daniel, revealing to him the mystery of future kingdoms and of the coming of the Savior; his appearance to St. Anna and the promise that she would give birth to a daughter, the All-blessed and All-pure Holy Virgin Mary; his repeated appearances to the Holy Virgin while she was living in the Temple in Jerusalem; his appearance to Zacharias the High Priest with the tidings of the birth of John the Forerunner, and the punishment of dumbness upon Zacharias because he did not believe the archangel's words; his appearance once again to the Holy Virgin, in Nazareth, with the Annunciation of the conception and birth of the Lord Jesus Christ; his appearance to the righteous Joseph; his appearance to the shepherds near Bethlehem; his appearance to the Lord Himself in the Garden of Gethsemane, when he strengthened the Lord, as a man, prior to His passion; his appearance to the myrrh-bearing women, and so on.
! SAINT JULIAN, BISHOP OF CENOMANIS [LEMANS, FRANCE]
Some think that this saint is none other than Simon the Leper, who was cured by the Lord. The Apostle Peter consecrated him a bishop and sent him to pagan Gaul, where St. Julian endured great miseries but succeeded in converting many people to the Faith of Christ. When he baptized Prince Defenson, many of the prince's subjects turned to the true Faith. By the grace of God, he worked great miracles: he healed the sick, cast out demons, and resurrected the dead. He finished his life peacefully and, at the time of his death, appeared to Prince Defenson in the middle of the day while the prince was at lunch.
! THE VENERABLE STEPHEN OF ST. SAVA'S
Stephen was a first cousin of St. John Damascene. He lived a life of asceticism in the Monastery of St. Sava the Sanctified, for which he was surnamed "of St. Sava's." He was a great emulator of the life of St. Sava, and a shining star among the monks in Palestine. He reposed in the Lord in the year 794 A.D., in his sixty-ninth year.
! THE VENERABLE FEMALE SARAH
As a young maiden, Sarah withdrew to live in asceticism, and she lived a life of spiritual struggle for sixty years on the bank of the Nile River, not far from Alexandria. By her example, she attracted many women to the monastic life. She found rest in the Lord in the year 370 A.D.
! HYMN OF PRAISE
!
! SAINT JULIAN
!
When St. Julian reposed,
A wonderful shepherd of Christ's flock,
His spiritual child, Prince Defenson,
With his noblemen, was at table,
At dinner in the middle of the day.
Startled, the prince stared
At a vision quite rare:
In the middle of the room, it was Julian,
In vesture, ablaze with gold,
As a bishop in the temple of God,
In a dazzling, unworldly light.
With a smile he looked at the prince.
With him, three deacons, radiant,
Held tapers in white hands;
The vision--luminous, transcendent--faded.
Startled, the prince leapt to his feet
And to those there with him said:
"Behold, I saw Father Julian,
The saint, our baptizer!
Is it possible that from us he has departed
And in the Heavenly Kingdom settled?"
Upon the road the prince set out,
With Julian's house his goal,
And when he arrived he learned
That his soul to God, Julian had rendered.
! REFLECTION
A man adorns simple clothing, but sumptuous clothing adorns a man. Simple clothing calls attention to the man, but sumptuous clothing calls attention to itself. The passion for sumptuous clothing simply drains and withers the soul of man. This is the real reason why the Church has always stood against opulence in dress and recommended simplicity. Among the countless Christian saints, there is not one mentioned whom sumptuous clothing helped to attain sanctity. Many great and wise kings--not only Christians but also heathens--have loved simplicity in dress. Thus, it is said that the Emperor Augustus Octavius, during whose reign the Lord Christ was born, wore only simple clothing, woven for him by his wife, sister or daughter. It is said of King Charles V that he wore such simple clothing that even his most ordinary subjects were better dressed than he was. A man once invited the illustrious Greek military general Philopomenes to dinner. Philopomenes had never been to the man's home before, and he arrived a bit early for the dinner. The host had not yet arrived, but the hostess--not knowing Philopomenes personally and seeing him attired in simple clothing--thought that he was a servant sent in advance to announce the imminent arrival of the general and her husband. Thinking this, she ordered him to chop wood. Philopomenes willing obeyed and began to chop wood. When the host came and saw his honored guest chopping wood like a servant, he was horrified and asked him: "Who dared to give such a task to Philopomenes?" The general quietly answered: "My clothing."
! CONTEMPLATION
To contemplate the exceedingly great patience of God toward the unbelieving Jewish people, and their deserved punishment (Numbers 14):
# How God worked a multitude of miracles before the eyes of the Israelites, and how they remain stubborn in their unbelief and murmured against Moses;
# How God punished them, making them wander for forty years in the wilderness, and all of them perished except Joshua the son of Nun, and Caleb;
# How some of us also perish in the wilderness of sensuality, and do not attain the land of spiritual milke and honey, the Kingdom of Christ.
! HOMILY
! About the indispensability of sobriety in the battle against the devil
"Be sober, be vigilant; because your adversary the devil, as a roaring lion, walks about, seeking whom he may devour" (1 Peter 5:8).
Orthodox monks have emphasized sobriety and vigilance as essential to asceticism. The spirit must be sober, in order to sense danger, and vigilant, in order to recognize from where the danger is coming, and from whom.
"Be vigilant, my child, that you do not tread on a serpent, that you do not fall into a pit, that you do not encounter a wolf, that you do not venture out into deep water, and that you do not stray from the path and get lost in the forest!" Thus a mother counsels her child, fearing for his body. With no less love does the Church counsel a man, fearing for his soul. Therefore, children, //be sober, be vigilant.//Your old adversary, the devil, does not rest or sleep but, like a hungry lion, stalks and seeks someone to devour. //Be sober, be vigilant,// for you are like sheep and he is as a lion. When sheep sense the foul odor of the wolf, they flee to their shepherd. //Be vigilant,// and you will sense the foulness of the devil when he approaches you, and flee immediately under the protection of your Shepherd, Christ the Lord. You will sense the stench of the devil through your thoughts, through your feelings, through your intentions, and through your fleshly desires. All that you think, imagine, feel, intend or desire contrary to Christ and the Law of Christ--know that this is the snare of the devil, the stench of the devil. Know this, and flee to your Shepherd, directing your entire mind, heart, soul and body to Him.
O Lord Jesus, our sober and vigilant Shepherd, make us sober and vigilant at every moment, so that our enemy may not surprise us and devour us.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE AQUILA
Aquila was one of the Seventy Apostles. A Jew, he first lived in Italy with his wife Priscilla. When Emperor Claudius decreed that all Jews be driven from Rome and Italy, Aquila settled in Cornith. There the Apostle Paul met him for the first time, remaining in his home for a year and a half and baptizing him and his wife. Burning with zeal for the Faith of Christ, Aquila and Priscilla accompanied Paul to Ephesus and assisted him in his apostolic labors. At Ephesus, Paul wrote his first Epistle to the Corinthians, in which he said: //Aquila and Priscilla salute you much in the Lord, with the Church that is their house//(1 Corinthians 16:19). After the death of Emperor Claudius, the Jews were permitted to return to Italy, and so Aquila and Priscilla returned to Rome. When the Apostle Paul later wrote the Epistle to the Romans from Cornith, he greeted his old friends and co-laborers: //Greet Priscilla and Aquila my helpers in Christ Jesus; who have for my life laid down their own necks: unto whom not only I give thanks, but also all the churches of the Gentiles// (Romans 16: 3-4). We later find Aquila in Ephesus, where he labored with St. Timothy the Apostle. Chained in Rome, Paul wrote to Timothy in Ephesus: //Salute Priscilla and Aquila// (2 Timothy 4:19). As a bishop, Aquila baptized many and enlightened them with the Faith; he destroyed idols, built churches, ordained priests, and spread the glory of the Incarnate Son of God among men. He was finally murdered by wicked heathens, and took up his habitation in the Kingdom of Christ.
! THE VENERABLE HELLIUS
Hellius was an Egyptian monk of the fourth century. From his early youth, he dedicated himself to monastic asceticism in the wilderness. He elicited astonishment in both monks and the laity by his way of life and powerful miracles, and even though he fled the glory of men, he was unable to conceal himself. He had great struggles with delusions from the devil, especially during times of prolonged fasting. Sometimes the devil would offer him honey and sometimes delicious apples, but Hellius would not allow himself to be deceived. He was able to see into the hearts of men, discerning passions and thoughts, not to display his secret knowledge but to correct men's faults.
! HYMN OF PRAISE
!
! SAINTS AQUILA AND PRISCILLA
The torch of light from the heavens descended
Into the hearts of the apostles first,
And so the apostles enlightened men,
And their own successors strengthened in grace.
With this same torch, Saint Aquila
Was illumined by the great Apostle Paul,
And likewise Blessed Priscilla, his faithful wife:
And their household was baptized by him and with power filled.
Malice and vain amusements they left behind,
And into the world, to the work of the Lord they went forth.
They attended to Paul, the solitary prisoner,
And readily helped the holy Apollos,
And brother Timothy, Paul's child;
Together they greatly increased the flock of Christ.
Blessed are the sacrifices of Blessed Priscilla!
Blessed are the wounds of Saint Aquila!
Good fruit they bore and were glorified everywhere--
True laborers, and heirs of the Kingdom of God.
! REFLECTION
Christians must arm themselves against the seductions of this world. They must be armed against every attack and every temptation, so that every evil is repelled by them. Such armor is not made in a day or two, but is diligently and laboriously forged by a lengthy process. Of what value is all our virtue if we succumb to the first temptation? Speaking of this, Saint Gregory of Nyssa cites the example of a monkey in Alexandria. He says: "An animal trainer in Alexandria taught a monkey to skillfully impersonate a female dancer on stage. The spectators at the theatre praised the monkey, which was dressed as a female dancer and danced to the beat of the music. But while the viewers were occupied observing such a novel spectacle, some comedian decided to show everyone that a monkey is nothing more than a monkey. While they all shouted and applauded at the skill of the monkey, the comedian threw some sweets onto the stage that monkeys particularly like. As soon as the monkey saw the sweets, it forgot the dance, the applause, and the elaborate costume, and dashed around, groping with its paws for the sweets; and since its dress interfered, it began to tear it apart with its nails, attempting to remove it. And in place of praise and amazement, laughter broke out among the spectators." For behind the torn mask of the "dancer," a monkey was revealed.
! CONTEMPLATION
To contemplate the just punishment which God sent upon Korah, Dathan, and Abiram (Numbers 16):
# How these three incited the people against Moses and Aaron, and sought to become their leaders;
# How the earth opened and swallowed up Korah, Dathan, Abiram, and others with them;
# How the earth of the flesh swallows up the souls of all those who think in a fleshly way and, thinking thus, rebel against the Law of God.
! HOMILY
! About the steadfastness of faith
"Whom resist steadfast in the faith, knowing that the same afflictions are accomplished in your brethren that are in the world" (1 Peter 5:9).
Brethren, the most important steadfastness of men's souls is the steadfastness of faith. The devil vehemently attacks this steadfastness with all his arrows and all his wiles--for the impure and evil spirit knows that when this steadfastness is destroyed, he enslaves the soul of man forever. That is why the holy apostles entreated the Lord: //Increase our faith// (Luke 17:5). Brethren, let us also pray daily that the Lord will increase our faith; that He will endow it with power and strengthen. When the serpent is in danger it protects its head above all, which is why the Lord Himself called it wise. Let us also protect the head of our spiritual life, which is faith. Nothing in this world can replace faith in God: neither philosophy, nor science, nor treasure, nor glory, nor the entire world from one end to the other with all its transitory illusions. The devil knows this, and thus he especially attacks our faith, instilling doubt in us, causing us to waver, confusing our thoughts, and disturbing our hearts. Since the devil knows that faith is the main thing, it is all the more necessary that we should know it also. Because of us, Christ descended to earth; because of us, He suffered on the Cross and gave us the promise of saving faith.
We can neither strengthen nor increase our faith except through suffering. That is why the much-suffering Apostle Peter says: //The same afflictions//[as yours] //are accomplished in your brethren that are in the world //(1 Peter 5:9). Out of humility, the apostle does not speak of his own afflictions, but of those of our brethren in Christ. Those who are one in faith are also one in afflictions. Brethren, you do not suffer alone for the true Faith, but your other brethren also suffer for the same Faith.
May this assuage your suffering. But most of all, may you be comforted by the sufferings of the Firstborn in suffering, our crucified Lord Jesus Christ Himself.
O Lord Jesus, Sufferer above sufferers, and Victor above victors, //increase our faith//, and strengthen us with the power of Your Grace, as you did strengthen Your holy apostles.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR JULITTA AND HER SON CYRICUS [QUIRICUS]
Saint Julitta was of noble birth. She was widowed at an early age and left with her newborn child, Cyricus. She lived in Iconium, in the town of Lycaonia, and was completely devoted to the Faith of Christ. She immediately baptized her son after his birth, and when he was three years old, she instructed him in the Faith and taught him to pray as much as a child of that age is able. When Diocletian decreed the persecution of the Christians in the town of Iconium, much innocent blood was shed. Julitta took her son and hid in the city of Seleucid from the wrath of the heathens. But it was not any better there. Julitta was arrested and brought before the judge as a Christian. Since Julitta courageously confessed her faith in the Lord Jesus, the judge, in order to dishearten her and cause her to waver, took the child in his arms and began to caress him. But Cyricus cried out: "I am a Christian; let me go to my mother!" and began to scratch the judge with his fingernails, turning his face away from him. The judge became so enraged that he hurled the child to the ground and kicked him. Cyricus rolled down the stone stairs, and gave up his holy and innocent soul to God. Seeing how Cyricus suffered before her eyes, St. Julitta was joyful, and she gave thanks to God that He had found her son worthy of the martyr's wreath. After much suffering at the hands of the torturers, Julitta was beheaded in the year 304 A.D. Even today, the relics of Saints Cyricus and Julitta are miracle working. A portion of their relics is to be found in Ohrid, in the Church of the Holy Theotokos the Healer.
! SAINT VLADIMIR THE GREAT, PRINCE OF RUSSIA
At baptism Vladimir was named Basil. He was the son of Prince Svyatoslav, and the grandson of Igor and Olga. Vladimir was at first entirely pagan, both in his faith and in his life. Learning that other faiths existed, he carefully began to inquire as to which of them was the best. For this reason, he sent emissaries to Constantinople. When the emissaries returned, they informed the prince that they attended a service in the Orthodox Church of the Divine Wisdom [Hagia Sofia] and that they were "outside themselves, not knowing whether they were on earth or in heaven." This inspired Vladimir to be baptized and to baptize his people. The main idol, Perun, was torn down from the hill of Kiev and hurled into the Dnieper River. After embracing the Christian Faith, Vladimir completely changed his life and exerted all of his efforts to correctly fulfill all the requirements of the Faith. In place of the destroyed idols, Vladimir ordered churches to be built throughout his realm, and he himself built a beautiful church dedicated to the Most-Holy Mother of God in Kiev. This church was built on the same spot where St. Theodore and his son John had earlier suffered martyrdom for Christ (July 12). With that same insuperable drive with which Vladimir had earlier espoused idolatry, he now spread Christianity. He found repose in the Lord in the year 1015 A.D.
! HYMN OF PRAISE
! SAINTS JULITTA AND CYRICUS
!
The rage of idolatry, when it ruled the world,
Made martyrs of Julitta and her child Cyricus.
They were two innocent victims, two new symbols,
Of the Incarnate Word, two living witnesses.
Of all earthly riches, the most precious is truth.
Neither for herself nor for her son did the mother grieve;
Over youth, or wealth or strength, she shed no tears,
Following in Christ's footsteps, without turning back.
Those who know the truth, and are born again,
Are led by the truth to peace and freedom.
Blessed Julitta, the truth knew
When, with the Cross, she was baptized and by faith illumined.
Filled with God's peace and true freedom,
Without wailing or fear, she saw her son dead;
And without wailing or fear, her head she placed under the sword,
And by a martyric death, glorified the truth.
! REFLECTION
Hospitality is respected in other faiths, but Christianity has emphasized hospitality as a duty and a responsibility. At the same time, gratitude for hospitality is no less a duty and responsibility for Christians. He who learns to be grateful to men for hospitality, will also know how to be grateful to God for hospitality. For what are we here on earth but the guests of God? And what are the angels in heaven but the guests of God? A story is told of King Philip of Macedonia--how he severely punished one of his courtiers for ingratitude. The king sent this courtier overseas to fulfill a task for him. The courtier accomplished the task and started off for home by boat. A tempest destroyed the boat, and the courtier found himself in the waves. Fortunately, he was not too far from land, and a fisherman saw the man drowning, hurried to his assistance with his small boat, and brought him ashore. After he had recovered and rested, the courtier returned to the king and related his misfortune in the tempest at sea. The king, wishing to reward the courtier, asked him if there was a gift he could give him. The courtier mentioned the fisherman, and told the king that he would like, most of all, to be given the fisherman's property by the sea. The king immediately granted the courtier his wish. When the courtier settled on the property of his greatest benefactor, the fisherman, in great despair, went to the king and related the entire tale with lamentation, saying that he had saved the life of the courtier, who had now ousted him from his home. Upon hearing this, the king became furious with the ungrateful courtier, and ordered that he be branded on his forehead with the words "an ungrateful guest."
! CONTEMPLATION
To contemplate the miraculous blossoming of Aaron's rod (Numbers 17):
# How God, in order to quiet the murmuring against Moses and Aaron, ordered that the rods of all the elders of the tribes be placed in the tabernacle of the congregation;
# How, overnight, only the dry rod of Aaron became green and blossomed and brought forth fruit;
# How God can enliven even the soul of man, dead in sin.
! HOMILY
! About grace and peace
"Grace and peace be multiplied to you through the knowledge of God and of Jesus our Lord" (2 Peter 1:2).
Brethren, grace and peace are multiplied //through the knowledge of God.//But through the knowledge of creation outside of God--cut off from God or contrary to God--sorrow and unrest are multiplied. That sorrow and unrest are multiplied among those who investigate things without the knowledge of God--is this not sufficiently attested to by the multitude of suicides precisely among those who choose as a profession for themselves to study, without God, nature and the life of mankind? Oh, how great a multitude among them are nervous, irritated, embittered, darkened and hysterical souls, who are separated from suicide by only a day or a month! But //through the knowledge of God,// grace and peace are multiplied. The apostle experienced this personally, and he passed on his precious experience to others.
Grace and peace are not gifts of the earth, but rather gifts of heaven. God bestows these gifts on those who labor to multiply their knowledge about Him.
Brethren, what is the quickest path that leads to the knowledge of God? Without a doubt, it is through Christ Jesus our Lord. He is the One who reveals, and He is the Revelation; He is the Wise One and the Wisdom; He is the Teacher and the Knowledge. Grace is from Him. Peace is from Him. He who comes to know God through the knowledge of created beings in nature and through the laws of nature, as the heathens do, does nothing wrong, but he progresses along the path in a roundabout manner and proceeds on an indirect path upon which many go astray and are lost. He who comes to the knowledge of God through conscience and a sense of the destiny of men, as the moralists do, does nothing wrong--but he also takes a roundabout and difficult path, and can go astray and become lost. However, he who knows God by knowing the Lord Christ is on the shortest and surest path.
O Lord Jesus, help us on the path to You and to Your Father and to the Holy Spirit.
To Thee be glory and praise forever. Amen.
! THE PRIESTLY-MARTYR ATHENOGENES, BISHOP OF SEBASTE IN ARMENIA
Athenogenes lived in a monastery near the town of Sebaste with ten of his disciples. During the reign of Diocletian, Philomarchus, a cruel persecutor of Christians, came to Sebaste. He arrested and murdered many Christians in the town. When he saw Athenogenes and his disciples, he told the elder to offer a sacrifice to the idols so as not to perish, as had the other Christians. Athenogenes replied to him: "O persecutor, those whom you mention as having perished have not perished, but are in the heavens and are rejoicing with the angels." Just then, a doe [a female deer] that the merciful Athenogenes usually fed with his own hand ran up to him and, seeing him in great jeopardy, began to shed tears. Even the wild beasts of the mountains had greater pity toward the martyrs of Christ than the heathens did! After cruel tortures, during which an angel of God comforted the martyrs, they were all beheaded, first the priests and all the fellow laborers of Athenogenes, and then Athenogenes himself. All were received into the heavenly homeland in the year 311 A.D.
! THE HOLY FEMALE MARTYR JULIA THE VIRGIN
Julia was born in Carthage of a distinguished lineage. When the Persians captured Carthage, many people were taken into slavery. Saint Julia was captured and enslaved, and fell into the hands of a pagan merchant in Syria. Seeing that Julia was a Christian, he counseled her on many occasions to deny Christ and become one in faith with him, but Julia would in no way agree to this. Since Julia was faithful and trustworthy in service, the merchant left her in peace and did not speak to her about faith again. On one occasion, the merchant loaded his boat with goods and took Julia along with him on a business trip to distant lands. When they arrived at Corsica, there was a pagan feast, and the merchant joined in this blasphemous offering of sacrifice, but Julia remained aboard the boat, weeping that so many men lived in foolish error and did not know the truth. But somehow the pagans discovered her, removed her from the boat against the objections of her master, and began to brutally torture her. They severed her breasts and threw her onto a rock, and then they crucified her on a cross, upon which St. Julia gave up her soul to God. Her death was revealed by an angel of God to the monks on the nearby island of Margarita (or Gorgona), and they honorably buried the body of the martyr. Over the centuries many miracles have occurred at the grave of St. Julia, and the saint herself has appeared from the other world to some. She suffered honorably in the sixth century. After many years, the faithful wanted to erect a new church in honor of St. Julia in another place, since the old church was small and dilapidated. Therefore, they gathered building material on a new site: stone, bricks, sand, and all else that was required. It so happened that at night, on the eve of the day when they intended to lay the foundation, all of this material was moved by an invisible hand to the site of the old church. In confusion, the men again carried the materials to the new site, but the same thing happened again: the material was mysteriously returned to the old site beside the old church. The night watchman saw a shining maiden using white oxen to carry the material to the old church. From this, everyone understood that St. Julia did not wish her church to be built in another place, so they demolished the old church and on that same site built a new one.
! THE HOLY 15,000 MARTYRS
These fifteen thousand martyrs were beheaded for the Faith of Christ in Persia.
! THE HOLY MARTYR ATHENOGENES
Athenogenes was the author of the hymn sung at Vespers: "O Gladsome Light" ["Svete Tihi" - Fos Ilaron."] He died for Christ by fire, and was made worthy of eternal glory in the Kingdom of God.
! THE COMMEMORATION OF THE FIRST SIX ECUMENICAL COUNCILS
This common commemoration of the first Six Ecumenical Councils occurs on the Sunday between the 13th and the 19th of July.
! HYMN OF PRAISE
!
! THE HOLY MARTYR JULIA THE VIRGIN
!
The martyr Julia
Was crucified for her Christ.
The power of Christ, she called upon,
The power of the Honorable Tree.
Blood poured from six wounds,
And blood stained the earth,
For, in Christ, she believed,
And her faith she did not conceal.
Nor did Christ conceal her,
But to the world, proclaimed her,
And in the Kingdom Immortal,
In heaven, He glorified her.
When Julia breathed her last,
Her spirit, pure and holy,
Flew from her mouth--a white dove
To the heights soaring!
When men saw this
All, in fear, cried out:
"Woe to the evil judges--
That righteous blood, they have shed!"
! REFLECTION
The Ecumenical Councils are the greatest duels between Orthodoxy and heretics. Today the Church jointly commemorates the first Six Ecumenical Councils(//):
# The First Ecumenical Council at Nicea in 325 A.D., with 318 Holy Fathers participating. It is commemorated separately on May 29 and on the Seventh Sunday of Pascha. This Council refuted the heresy of Arius against the Son of God.
# The Second Ecumenical Council was held at Constantinople in 381 A.D., with 150 Holy Fathers participating. It is commemorated separately on May 22. This Council refuted the heresy of Macedonius against God the Holy Spirit.
# The Third Ecumenical Council was held at Ephesus in 431 A.D., with 200 Holy Fathers participating. It is commemorated separately on September 9. This Council refuted the heresy of Nestorius against the Mother of God.
# The Fourth Ecumenical Council was held at Chalcedon in 451 A.D., with 630 Holy Fathers participating. It is commemorated separately on July 16. This Council refuted the Monophysite heresy.
# The Fifth Ecumenical Council was held at Constantinople in 553 A.D., with 160 Holy Fathers participating. It is commemorated separately on July 25. This Council refuted the heresy of Origen.
# The Sixth Ecumenical Council was held at Constantinople in 680-81 A.D., with 170 Holy Fathers participating. It is commemorated separately on January 23. This Council refuted the Monothelite heresy.
# The Seventh Ecumenical Council which was convened at Nicaea in 787 A.D., with 367 Holy Fathers participating. It is not commemorated on this occasion, but is commemorated separately on October 1# This Council refuted the heresy of Iconoclasm.
Through the operation of the Holy Spirit, the Councils condemned all these heresies, and the Faith of Orthodoxy was defined and confirmed for all time.
(//) In some Orthodox traditions, this Sunday commemorates the 4th Ecumenical Council only.
! CONTEMPLATION
To contemplate the miraculous bringing forth of water from the rock in Kadesh (Numbers 20):
# How Moses, at God's command, struck the rock with his rod, but without faith; and how, through the will of God, water flowed forth;
# How God punished Moses and Aaron for their little faith by not permitting them to enter the Promised Land;
# How this shows that even a great righteous one like Moses is prone to sin, and that no mortal should be carried away into pride by his virtues.
! HOMILY
! About the participation of the faithful in God's nature
"That by these you might be partakers of the divine nature" (2 Peter 1:4).
Brethren, how can a mortal man have a part in God's nature? How can the eternal join with temporal, the glorious with the inglorious, the incorruptible with the corruptible, the pure with the impure? It is impossible without particular conditions, and the Apostle Peter tells us what they are: one condition on the part of God and one on the part of men. As the condition on the part of God, the apostle states: //According as His divine power hath given unto us all things that pertain to life and godliness//(2 Peter 1:3). And as the condition on the part of man: //Having escaped the corruption that is in the world through lust// (2 Peter 1:4). God has fulfilled His condition and has given us His power, //through the knowledge of Him that hath called us to glory and virtue// (2 Peter 1:3). Now it is man's turn to fulfill his condition, i.e., in order to know Christ the Lord, to escape from the bodily desires of this world. The Lord Christ opened heaven and all the treasures of heaven; then He called people to draw near and to receive these treasures. How did He invite them? Did He invite them only by words? By words, but not only by words, but by glory and virtue. By glory, i.e., by His glorious Resurrection; by virtue, i.e., by His miraculous service and suffering. In this way, He invited us to receive the //exceeding great and precious promises// (2 Peter 1:4), that by them we may partake in God's nature. But in order to know Christ and hear His invitation, we must first escape the physical desires of this world. If we do not escape them, we will remain blind before Him--before His glory and virtue--and deaf to His invitation!
O brethren, how enormous is the mercy of God toward us! According to this great mercy, God offers to us mortals adoption by the Immortal One; to us sinners He offers us to be built up into the glorified Body of the Lord Jesus, but only under this condition, which is neither a great yoke nor a heavy cross.
O Lord Jesus, the Fulfillment of all promises and the Source of all good, heal us from our blindness and deafness, and grant us power to escape the physical desires of this world.
To Thee be glory and praise forever. Amen.
! THE HOLY FEMALE MARTYR MARINA
Marina was born in Pisidian, Antioch of pagan parents. At the age of twelve, Marina learned about the Lord Jesus Christ: how He became incarnate of the All-Pure Virgin and how He worked many miracles, suffered death on the Cross and gloriously resurrected. Her young heart became inflamed with love for the Lord and she vowed that she would never marry, and in her soul she further desired to suffer for Christ and be baptized in the blood of martyrdom. Her father hated her for her faith and did not consider her as his daughter. The imperial deputy, Olymbrius, learning from Marina that she was a Christian, at first desired that she would become his wife. When Marina refused, he ordered her to bow down before the idols. St. Marina replied: "I will neither bow down nor offer sacrifice to the breathless and dead idols, who do not recognize themselves and do not know that we honor or dishonor them. I will not give them the honor that belongs only to my Creator." Then Olymbrius subjected Marina to harsh torture, and threw her into prison, completely covered with wounds and blood. In the prison Marina prayed to God. After her prayer, the devil appeared to her in the guise of a horrible serpent that entwined itself around her head. When she made the sign of the cross, the serpent burst apart and vanished. Then she was engulfed with a heavenly light, and it seemed to her that the walls and roof of the prison vanished, and a radiant, towering cross appeared. A white dove perched atop the cross, issuing forth a voice which said: "Rejoice Marina, rational [discerning] dove of Christ, daughter of Zion in the highest, for your day of rejoicing draws near." Then, Marina was healed of all her wounds and pains by the power of God. The demented judge tortured her the following day, both in fire and in water, but Marina endured all, as though she were in another body. Finally, he condemned her to be beheaded. Before her death, the Lord Jesus appeared to her, accompanied by angels. She was beheaded during the reign of Diocletian; but in soul and power, she has remained alive in the heavens and on earth. A hand of St. Marina reposes in the Monastery of Vatopedi on Mt. Athos. There is also a monastery dedicated to St. Marina with a portion of her miracle-working relics, located atop Mount Langa in Albania, overlooking Lake Ohrid. Countless miracles have occurred and still occur in this monastery, witnessed not only by Christians, but by many Muslims as well. So much respect did the Turks have for this holy place, that they never dared disturb either the monastery or its property. At one time a Turk was the guardian of the monastery.
! THE VENERABLE LEONID OF USTNEDUMSK
From his youth, this Russian saint lived a spiritual life of asceticism in several monasteries: in Solovki, Mirozh and elsewhere. He then founded his own monastery along the Luza River, in the province of Vologda. He lived a strict life of asceticism, such that his soul was filled with the light of grace and the power of the Holy Spirit. A spiritual beacon, Leonid attracted many to the ascetic life. He is called of "Ustnedumsk," because once, when he was bitten by a poisonous serpent, he neither thought nor spoke about it, and he remained alive. Having pleased God, Leonid died peacefully on July 17, 1653 A.D. His relics repose in his monastery.
! HYMN OF PRAISE
!
! THE HOLY MARTYR MARINA
!
Saint Marina, to the Lord, prayed,
And with warm tears she strengthened her prayers;
"Lord Jesus, my God and Savior,
All who in You hope, You help.
Be near me, near to my soul,
When the unbelievers begin to destroy my body.
Be near me, O Strength of martyrs,
That, without fear and cries, I endure the torment.
Before the hungry wolves, like a sheep I stand,
As a lonely bird before many hunters,
As a poor fish snared by the net--
But, O Lord of salvation, to You I look!
My body, like a cheap sack, let them tear,
O Christ, You will I not deny;
To all corruptible pleasures, I prefer sufferings with You,
Only to Your authority, O Savior, I bow down
Conqueror of death, the devil and hades,
Your victories now, through me, repeat!
Praise be to You, my Lord and Savior,
That You help all who hope in You."
! REFLECTION
Until Christ becomes all for the soul--all that has permanent and unchanging value--man cannot enter into suffering for Christ. How could St. Marina, a fifteen-year-old girl, enter into suffering for Christ? Because Christ was all to her, absolutely all! How could Saint Julitta have rejoiced on seeing her three-year-old son Cyricus dead for the Faith of Christ? Again Christ was all to her, absolutely all. Behold, how St. Tikhon of Zadonsk speaks exhaustively--in the form of a conversation between Christ and man--about how Christ can be all to man:
"Do you desire good for yourself?
Every good is in Me.
Do you desire blessedness?
Every blessedness is in Me.
Do you desire beauty?
What is more beautiful than Me?
Do you desire nobility?
What is more noble than the Son of God and the Holy Virgin?
Do you desire height?
What is higher than the Kingdom of Heaven?
Do you desire riches?
In Me are all riches.
Do you desire wisdom?
I am the Wisdom of God.
Do you desire friendship?
Who is a more loving Friend than I, Who laid down My life for all?
Do you desire help?
Who can help except Me?
Do you seek joy?
Who will rejoice without Me?
Do you seek comfort in misfortune?
Who will comfort you other than Me?
Do you seek peace?
I am the Peace of the soul.
Do you seek life?
In Me is the source of life.
Do you seek light?
//I am the Light of the world//" (John 8:12).
! CONTEMPLATION
To contemplate the miraculous bronze serpent in the wilderness (Numbers 21):
# How all the people would have died from the bite of the serpents, until Moses raised the bronze serpent on a pole;
# How all who were bitten by a serpent were made whole as soon as they gazed upon the bronze serpent;
# How the bronze serpent prefigures Christ on the Cross.
! HOMILY
! About the need to repeat and repeat
"Wherefore I will not be negligent to put you always in remembrance of these things, though you know them, and be established in the present truth" (2 Peter 1:12).
A plower ploughs a field. Does not the plower repeat the same task every moment? How would he plow the field, if not by plowing from morning to dusk, making furrow after furrow?
A traveler walks down a road. Does not the traveler repeat the same task every second with the same effort? How else would he travel the road and reach his destination?
The carpenter prepares the boards in his workshop. Does not the carpenter repeat the same task with every board, with the same labor? How else would he be able to prepare the required number of boards?
Brethren, are not all of our beneficial works comprised of strands and strands of repetition? Therefore, let not the preacher of the truth become slothful, and let him not say: "I've told them, and I will not repeat it!" Let not the hearer of the truth become proud, and let him not say: "I have heard it once, and I do not need to hear it again!"
O preacher of the truth, do not be afraid to repeat and repeat: to teach repeatedly, and to remind repeatedly. Without repetition, the field is not plowed, nor the path traveled, nor the framework of the house prepared. And it is your task to plow, to lead and to prepare.
O hearer of the truth, do not become proud and say that you heard the truth once. Truth is food for the soul. You have eaten bread today, yesterday, and the day before yesterday, and for months before, and years past. And you will eat it again, so that your body will be healthy. Nourish your soul as well. Nourish it with the truth--the same truth, yesterday, today, tomorrow and until death--so that your soul may be healthy, strong and radiant.
O Lord Jesus, nourish us every day and every hour with Your truth, which is Yourself, O Jesus, sweet nourishment!
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR EMILIAN
During the reign of Julian the Apostate, in the Thracian town of Dorostolon, there lived a young man, Emilian, a servant of the local eparch (mayor of the town). When the apostate emperor attempted to destroy Christianity throughout the Roman Empire by fire and sword, his representative came to Dorostolon to kill the Christians, but he did not find a single one. Rejoicing at this, he sponsored a great banquet for the citizens of Dorostolon, and ordered sacrifices to be offered to the idols. The pagan revelry ensued, day and night, throughout the town. That night, St. Emilian roamed the pagan temples, markets and streets of the town, and smashed all of the idols with a sledgehammer. The next day there was great fear in the city. Everyone sought the destroyer of their gods. A peasant passing by the temple that morning was seized. Emilian, seeing that an innocent man would suffer, said to himself: "If I conceal my works, what benefit would I receive from that which I did? Would I not be found before God to be the murderer of that innocent man?" Therefore, he appeared before the emperor's legate and admitted all. The enraged legate questioned Emilian, asking who had prompted him to do what he had done. The martyr of Christ replied: "God and my soul ordered me to destroy those lifeless pillars that you call gods." The judge then ordered that Emilian be flogged--and, after flogging and other tortures, ordered him to be buried with fire. Thus ended the earthly life of St. Emilian. He was received into the heavenly life on July 18, 362 A.D.
! THE VENERABLE PAMBO
Pambo was an Egyptian and an ascetic on Mount Nitria. He was a contemporary of St. Anthony the Great, and was himself great in monastic asceticism. He was known particularly for two characteristics: through long training he sealed his lips so that he did not speak one unnecessary word; and he never ate any bread except that which he earned with his own hands by weaving reeds. He was like an angel of God and, in later years, his face shone like the face of Moses once did--so much so that the monks were unable to look him in the face. He never gave a quick reply, even to a simple question, without first praying about it and contemplating it in his heart. Patriarch Theophilus of Alexandria once visited the monks in Nitria. The monks begged Pambo, saying: "Give the patriarch an edifying word, which would be of benefit to him." The quiet Pambo replied: "If he does not benefit by my silence, he will not benefit by my word." Once, St. Pambo traveled throughout Egypt with his monks. They came upon a group of men who remained seated as the monks passed by. St. Pambo addressed them and said: "Arise and greet the monks, that you may receive a blessing from them; for they continually converse with God and their lips are holy." This glorious saint was able to clearly discern the destiny of both the living and the dead. He rested in the Lord in the year 386 A.D.
! THE VENERABLE PAISIUS AND ISAIAH
Paisius and Isaiah were brothers of a wealthy family, and were both monks. One became a saint because of his asceticism in the wilderness, and the other because of his works of mercy toward men. Saint Pambo saw them both in Paradise. This settled a dispute among the monks concerning the question: Which is better--asceticism and a life of rigorous self-denial, or corporal works of mercy? Both of them lead to Paradise, when performed in the Name of Christ.
! THE VENERABLE JOHN THE MUCH-SUFFERING
John was a recluse in the Monastery of the Caves of St. Anthony in Kiev. For thirty years he was tormented by lustful passions, which he ceaselessly struggled against--until finally he conquered them with God's help, through touching the relics of St. Moses the Ugrian (July 26). Having conquered impure passion, St. John was infused with an inward heavenly light by which he could see at night as though it were day.
! HYMN OF PRAISE
!
! SAINT PAMBO
!
The monks asked Pambo the Blessed:
"Is it good, Father, to praise your neighbor?"
Pambo was silent, then to the brethren replied:
"It is good to praise but it is better to remain silent."
And again they asked Pambo: "And who is perfect?"
"For the sake of the will of God, one who denies his own will."
The monks were silent, until one spoke:
"One more reply, do not deny us:
What kind of garment should a monk have?"
"The kind you throw away and no one takes."
Thus the saint spoke, then closed his mouth;
He guarded his tongue so as not to speak needlessly.
Pambo, all radiant at the hour of his death,
When asked about his life, uttered this:
"I never ate bread I did not earn,
Nor of a single word has my soul repented."
! REFLECTION
Which is more pleasing to God: a life of asceticism in the wilderness, or works of mercy? Men of prayer in the wilderness think that man, living among men, will find it difficult to safeguard the purity of the heart and to direct the mind toward God--no matter how many good works he performs. Yet those who do good works among men say that the man in the wilderness is totally occupied with his own salvation, and does not help in the salvation of others. Two Egyptian brothers, Paisius and Isaiah, inherited a great estate from their parents. They sold the estate, and each took his share of the money. One of them immediately distributed his money to the poor, became a monk, and withdrew into the desert to lead a life of strict asceticism--that through patience, fasting, prayer and purifying the mind from all evil thoughts, hr might save his soul. The other brother also became a monk, but did go to the desert. Instead, he built a small monastery near the town, with a hospital for the sick, a public refectory [dining room] for the needy and a resting place for the sorrowful. He dedicated himself entirely to the service of his fellow men. When both brothers died, a dispute ensued among the monks of Egypt: which of the two fulfilled the law of Christ? Unable to agree among themselves, they came to St. Pambo and questioned him about this. St. Pambo replied: "Both are perfect before God; the hospitable one is like the hospitable Abraham, and the ascetic is like Elijah the Prophet--both of whom were equally pleasing to God." Yet not all the monks were satisfied with this response. Then St. Pambo prayed to God to reveal the truth to him. After praying for several days, St. Pambo said to the monks: "Before God I tell you that I saw both brothers, Paisius and Isaiah, together in Paradise." With this, the dispute was settled and all were satisfied.
! CONTEMPLATION
To contemplate the miraculous experience of Balaam (Numbers 22):
# How Balaam came to prophesy to Balak, the prince of the Moabites;
# How an angel appeared on the road with a sword and prevented Balaam from advancing;
# How the ass saw the angel before Balaam did, and spoke to his master.
! HOMILY
! About the remembrance of the imminent putting off of the body
"Yes, I think it meet, as long as I am in this tabernacle (body) to stir you up by putting you in remembrance; knowing that shortly I must put off this my tabernacle, even as our Lord Jesus Christ had showed me" (2 Peter 1: 13-14).
Here is a good reminder to lovers of the body who, because of their bodies, forgot their souls. The body must be cast off from us. No matter how dear we hold it to be, no matter how precious adornments we hang upon it, no matter how much we caress and pamper it, we must cast it off one day. Oh, how powerful and truthful are the words "cast it off!" When the soul is separated from the body, the soul casts the body off as something no longer necessary. When shipwrecked men reach the shore on a board (plank), they step onto the shore and cast away the board. When spring blossoms, the serpent sheds its skin and casts it off. When a butterfly wings its way out of the cocoon, the cocoon is cast off. In the same manner, the body is cast off when the soul departs from it. No longer of use and without benefit, and even harmful to other men, it is cast out of the house, cast out of the city, cast from the sight of the sun, and is buried deep into the ground. Think about this, you who live in luxury and adorn your bodies; you who are haughty and gluttonous!
As long as the soul is in the body, it should utilize the body for its salvation, submitting to the Law of God and performing the works of God. Do you see how the apostolic soul is a lover of labor? //As long as I am in this tabernacle //(body)//to stir you up.// That task was given to him by God. He wants to conscientiously complete it to the end before he must put off his body. Brethren, let us labor--first to embrace the apostolic warning; and second, to remind others, all others whom we wish well. We are rapidly approaching the shore of the other world; and the hour swiftly approaches when we must cast off our bodies and, with a naked soul, appear before the Judgment of God. What will we say at the Dread Judgment Seat of God? For what goals will we have used that thing of the earth, the body?
O Lord Jesus, Righteous Judge, direct our minds to think of death and judgment.
To Thee be glory and praise forever. Amen.
! THE VENERABLE FEMALE MACRINA
Macrina was the eldest sister of St. Basil the Great and St. Gregory of Nyssa. As a young virgin, Macrina was betrothed to a young nobleman. When her betrothed died, Macrina vowed never to enter into marriage, saying: "It is not right for a maiden once betrothed to a young man to seek another; according to the law of nature there must be only one marriage, as there is but one birth and one death." She further justified this by her faith in the Resurrection, considering her betrothed not as one dead but as one alive in God. "It is a sin and a shame," said Macrina, "for a wife not to preserve her faithfulness when her husband travels to a distant land." After this, she and her mother Emilia received the monastic tonsure in a convent, where they lived a life of asceticism with other nuns. They lived by the work of their hands, yet devoted a greater part of their time to divine contemplation, prayer and the constant raising of their minds to God. In time, Macrina's mother died, and afterward her brother Basil also went to rest. Nine months after the death of St. Basil, St. Gregory came to visit his sister, and found her on her deathbed. Before her death Macrina raised a prayer to the Lord: "You, O Lord, Who give rest to our bodies in the sleep of death for a time, will again awaken them at the last trumpet. Forgive me, and grant that when my soul divests itself of its bodily attire it will present itself before You pure and without sin, and that it may be as incense before You." She then made the sign of the Cross on her forehead, eyes, face and heart, and gave up her soul. She found rest in the Lord in the year 379 A.D.
! THE VENERABLE DIUS
Dius was born of Christian parents in Antioch, Syria. From his youth, he was instructed by divinely inspired men in the monastic life and in asceticism. He persevered in a lengthy and laborious battle with the devil and the passions of the flesh, and God endowed Dius with the great gift of working miracles. In his prayers he most often turned to the Holy Trinity. He performed great and awesome miracles through the power of his prayers. He caused a dry stick to blossom, a dry well to be replenished with water, and an unbelieving man to die and then come to life again. After a certain twice-repeated heavenly vision, Dius departed from Antioch and settled near Constantinople where, close to the city, he continued his life of asceticism. His fame spread rapidly, such that Emperor Theodosius the Younger visited him to receive counsel, and Patriarch Atticus ordained him a presbyter (priest). Having lived for many years, Dius prepared for death, received Holy Communion, instructed the brethren, lay down on his bed, and died before the eyes of all. The news of his death drew many people, including Patriarch Atticus and Patriarch Alexander of Antioch. But when they were preparing to bury Dius, he suddenly arose as though awakening from sleep and said: "God has given me fifteen more years of this life." St. Dius lived for exactly fifteen years and led many to the path of salvation, healed many, and helped many in various misfortunes and needs. He finally gave up his soul to the Lord, Whom he had faithfully served all his life. He died in the year 430 A.D., in extreme old age.
! THE COMMEMORATION OF STEFAN THE TALL
Stefan was the son of the Serbian Prince Lazar and Princess Militza. He was a protector of Christianity in the Balkans during most difficult times. He was the founder of the beautiful Monasteries of Manasija and Kalenić. After many labors and troubles, he died on July 19, 1427 A.D.
! HYMN OF PRAISE
!
! THE HOLY AND VENERABLE DIUS
!
From early youth to extreme old age
Dius held God's mercy to be a miracle--
God's mercy and His justice.
Night and day, Dius directed his thoughts
To light divine and pathways holy,
Driving off the passions and the cruel demons.
What is human existence? It is like murky water
Obscuring the heavenly firmament.
Can murky water be made transparent,
And thus the heavenly realm reveal?
"Yes," Dius affirmed, "by the way of the saints--
With the help of the Cross of Christ the Savior.
The Cross in your heart hold, in the midst of your being,
Affix to it your thought, and God you will see,
And the murky water will turn clear,
And wonders previously hidden you will see."
! REFLECTION
The most beautiful adornment of a woman is her modesty, while immodesty in a woman is the most unnatural, repulsive sight in the world. A wonderful example of feminine modesty was shown in the life of St. Macrina. In her youth, a severe wound appeared on her breast. Even though her mother counseled her to show the wound to a doctor and seek a remedy, Macrina did not agree to it. She had completely dedicated herself to God, and would not even think of exposing her body before men, or even before her own mother. One evening, Macrina earnestly prayed to God. Tears poured from her eyes and fell to the dust before her. With unwavering confidence in her Lord, she mixed the dust and tears with her fingers and anointed her wound with it. The next day, she awakened healed. When her mother, with great concern, entered to see her daughter, Macrina did not want to reveal that the Lord healed her (out of humility, concealing the miracle which she herself had performed through prayer), but begged her mother saying: "I will be healed, my mother, if you place your right hand on my bosom and make the sign of the Cross over the wound." Her mother reached out her hand and made the sign of the Cross over that spot, but did not feel the wound anymore--only the scar of the healed wound. Thus did St. Macrina conceal her body out of modesty, and her miracle-working out of humility.
! CONTEMPLATION
To contemplate the wondrous prophesying of Balaam (Numbers 23, 24):
# How Balaam came to curse the people of Israel at the invitation of Prince Balak;
# How instead of cursing, Balaam blessed the people, being directed to do so by the Spirit of God;
# How Balaam prophesied about Christ saying: //A star shall rise out of Jacob and a rod will rise up out of Israel// (Numbers 24:17).
! HOMILY
! About apostolic love and discernment
"Moreover I will endeavor that you may be able after my decease to have these things always in remembrance" (2 Peter 1:15).
Brethren, let your hearts be opened to receive and understand this great mystery. At first the apostle says that he will not be slothful in reminding the faithful of the salvific truths of the Faith; of the divine power which was given to mankind through Christ the Lord and of the preparing of men to receive this divine power //having escaped the corruption that is in the world through lust// (2 Peter 1:4). Now he goes even further and promises that he will continue this remembrance even after his parting, i.e., after his going out (the word which is used in the Greek text) from this life, when he will "put off this tabernacle, this body" (cf. 2 Peter 1:14). O faith divine, O comfort, O sweetness! The apostle promises to continue, even from the other world, his concern for the Church of God on earth, to continue the work he had begun--to remind the faithful, and to continue his love toward those on earth who believe in Christ. O apostolic love, so near to the love of Christ! O apostolic discernment, whose love the Spirit of God does not diminish as long as man is still wrapped in the dark curtain of the flesh!
The Apostle Peter gave this promise to the faithful nearly two thousand years ago. Did he fulfill it? He fulfilled it to the letter--not only as some would like to interpret it, in reminding the faithful through his written epistles and through his successors the bishops--but primarily through his constant action within the Church from the other world. The Apostle Peter appeared many times, as did the other apostles, whenever there was need, according to the providence of God. He reminded the shepherds and the faithful of the Church that they must adhere firmly to the truth, and that they should correct the paths of their lives. Even when Peter did not appear in dreams or openly, he acted, and still acts, for our salvation, in a mysterious manner known only to heaven.
To the Holy Apostles, life after death was as apparent as the sun is to those who have eyes. Through their prayers, may God also open our spiritual eyes, that we might see where we are going and what awaits us after death.
O Lord Jesus, All-merciful, deliver us from the darkness into the light according to Your mercy, and through the prayers of Your Holy Apostles.
To Thee be glory and praise forever. Amen.
! THE PLACING OF THE GIRDLE (ROBE) OF THE ALL-HOLY BIRTH-GIVER OF GOD IN THE CHURCH OF BLACHERNAE IN CONSTANTINOPLE
In the time of Emperor Leo the Great (457-474 A.D.) and Empress Verina and Patriarch Gennadius, two noblemen from Constantinople, Galibus and Candidus, were traveling in the Holy Land to venerate the holy places. They stopped in Nazareth for a while, at the home of a Jewish maiden who kept the robe of the All-Holy Mother of God in a secret room. Many who were ill and in need received healing of their sufferings through prayer and by touching the robe. Galibus and Candidus brought this holy object to Constantinople and reported it to the emperor and patriarch. This brought about great joy in the imperial city. The robe was solemnly placed in the Church of Blachernae. (This church had been built by Emperor Marcian and Empress Pulcheria on the shore of an inlet, and was called Blachernae after Blacheran, a commander from Scetis, who had been slain there.) This feast was instituted in remembrance of the placing of the robe of the All-Holy Birth-giver of God in the Church of Blachernae.
! SAINT JUVENAL, PATRIARCH OF JERUSALEM
Juvenal was a contemporary of the great illuminators of the Orthodox Church: Euthymius, Theodosius, Gerasimus, Simeon the Stylite, and others. He participated in two Ecumenical Councils: the Third Council in Ephesus [431 A.D.] and the Fourth Council in Chalcedon [451 A.D.]. With great power and zeal, he fought against the blasphemous heresies: in Ephesus, against Nestorius, who called the Birth-giver of God (Theotokos) the Birth-giver (Mother) of Christ and refused to call her the Mother of God, over-emphasizing Christ's human nature; and in Chalcedon against Eutyches and Dioscorus, who taught that there was only one nature in Christ--a Divine Nature, without a human nature. Following the victory of Orthodoxy at both these councils, Juvenal returned to his throne in Jerusalem. But even though the heresies had been condemned, the heretics had not been eliminated. Through the intrigue and violence of one Theodosius, a friend of Dioscorus, Juvenal was banished from the patriarchal throne, and Theodosius elevated himself in Juvenal's place. At first this heretic Theodosius was supported by Empress Eudocia, the widow of Theodosius the Younger, who had settled in Jerusalem. The indecisive and restless Eudocia finally went to see St. Simeon the Stylite, to ask him wherein lay the truth. This saint of God unmasked all the heretical teachings, and instructed the empress to adhere to the teachings of Orthodoxy as confirmed at the councils. The empress obeyed him, repented of her former actions, and denounced the false Patriarch Theodosius--whereupon Emperor Marcian and Empress Pulcheria, then reigning in Constantinople, sent a letter to the commander Athanasius [Eparch of Jerusalem], ordering him to banish Theodosius and reinstate Juvenal to his throne, which the commander quickly did. Juvenal guided the Church in Jerusalem for thirty-eight years as its hierarch. In great old age he reposed in the Lord, in the year 458 A.D. to receive from Him the reward for the great suffering and misery which he had endured for the truth. During the reign of St. Juvenal, the celebration of Christ's Nativity was established on December 25.
! SAINT PHOTIUS, METROPOLITAN OF MOSCOW
Photius was of Greek birth. He prudently governed the Russian Church for twenty years, and reposed in the year 1430 A.D. A week before his death, an angel of God appeared to him and informed him of the exact time of his departure from this world.
! HYMN OF PRAISE
!
! THE HOLY THEOTOKOS [THE HOLY BIRTH-GIVER OF GOD]
!
To the All-pure Virgin, we prostrate
And through her, the mercy of God we seek.
In eternal glory, she shines,
And to the Lord Christ, for us prays.
Full of power are her prayers--
Precious are the prayers of the Mother to the Son!
All whom her Son created She loves,
As a taper burns, her prayers shine forth!
And she searches out our needs in all places:
She is there to comfort, wherever sorrow poisons.
To the sick, her name is sweetness,
And to the demons, a scourge.
When we invoke Christ's Cross and the name of the Theotokos,
Courage and new strength they give us.
To the All-pure Virgin, we prostrate,
And through Her, the mercy of God we seek.
! REFLECTION
Every device of which man boasts as an invention of his own mind is revealed as a manifestation of divine providence. Every invented device has a two-fold significance: one physical and one spiritual. Even the clock, a wonderful device, was not invented merely to tell us the time of day or night, but also to remind us of death--this is its spiritual significance. When the small hand completes its rounds of seconds and minutes, then the large hand arrives at the ordered hour, and the clock strikes. So will the clock of our lives strike, numbering the days, months and years of our lives. That is why St. Tikhon of Zadonsk counsels every Christian to reflect:
# How the time of our life continually passes;
# How it is impossible to bring back time that is past;
# How the past and future are not in our control, but only that time in which we are now living;
# How the end of our life is unknown;
# How we must be prepared for death--every day, every hour, and every minute;
# How, because of that, we must always be in the state of continual repentance;
# How at every hour we must be as repentant and spiritually disposed as we would wish to be at the hour of our death.
! CONTEMPLATION
To contemplate the burning bush on Horeb (Exodus 3):
# How the bush was completely engulfed by flame, but was not consumed;
# How the All-pure Virgin, carrying the Lord within herself, also bore the divine fire--but was not consumed;
# How the grace of the divine fire also rejuvenates, heals and illumines my sinful soul.
! HOMILY
! About the trial of our faith
"That the trial of your faith, being much more precious than of gold that perishes, though it be tried with fire, might be found unto praise and honor and glory at the appearance of Jesus Christ" (1 Peter 1:7).
Brethren, our faith is tried more often than a reed is rocked by the winds. Trials are like the winds: they will uproot a weak faith, but a strong faith will be strengthened even more. Trials are also like the flame in which straw is burned and gold is purified.
Man's theorizings and suppositions also try our faith. These are often very strong and bitter winds, but we can overcome them--if we are willing to cling to the words of God, and if, in opposition to these theorizings, we are able to properly emphasize the teachings of the Faith of Christ.
Our faith is further tried by fear and shame: fear of men who persecute the Faith, and shame toward men who arrogantly despise the Faith. These also are strong winds, which we must resist if we wish to remain alive. How will we resist them? By the fear of God, which should always be greater in our soul than the fear of men, and by shame before the apostles, saints and martyrs, who were not ashamed of their faith before the emperors, princes and sages of this world.
Our faith is further tried by suffering and misery. This is the fire in which our faith is either burned like straw or tempered like pure gold. Our faith will survive these trials if we remember Christ crucified on the Cross for us, and the many thousands of martyrs for the Faith, who by endurance conquered all, emerging from the flames like gold, and continuing to shine down through the centuries among the angels and among men.
Our faith is also tried by death--the death of our relatives and friends, and the death of mankind in general. This is the bitter fire in which the faith of many has been burned. Is death the end of everything? It is not--believe me! It is the beginning of everything, of a new and just life. Believe in the Resurrection of Christ, believe in life beyond the grave, and believe in the General Resurrection and the Dreadful Judgment.
O Good Lord, strengthen the faith in us and have mercy on us.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET ELIAS (ELIJAH)
Saint Elias--the God-seer, miracle-worker and zealot for faith in God--was born of the tribe of Aaron in the town Tishba, for which he was called the Tishbite. When Elias was born, his father Sabbas saw angela of God hovering around the child, wrapping the child in fire and feeding him flames. That was a foreshadowing of Elias's fiery character and his God-given fiery power. He spent his entire youth in divine contemplation and prayer, withdrawing frequently into the wilderness to contemplate and pray in tranquility. At that time the Jewish kingdom was divided into two unequal parts: the kingdom of Judah consisting of only two tribes--the tribes of Judah and Benjamin, with their capital in Jerusalem; and the kingdom of Israel consisting of the remaining ten tribes, with their capital in Samaria. The former was governed by the descendants of Solomon, and the latter was governed by the descendants of Jeroboam, a servant of Solomon. The greatest confrontation that the prophet Elias had was with the Israelite King Ahab and his evil wife Jezebel, for they worshipped idols and were turning the people away from serving the One Living God. In addition Jezebel, a Syrian, persuaded her husband to erect a temple to the Syrian god Baal and appointed many priests to the service of this false god. Through great miracles Elias displayed the power and authority of God. He closed up the heavens, so that there was no rain for three years and six months; he called fire down from heaven to consume the sacrifice to God, which the pagan priests were unable to do for the false god, Baal; he brought rain by his prayer; he miraculously multiplied flour and oil in the home of the widow in Zarephath, and resurrected her son; he prophesied to Ahab that the dogs would lick up his blood, and to Jezebel that the dogs would consume her flesh--all of which came to pass; and he performed many other miracles, and prophesied other events as well. He spoke with God, and heard the voice of God in the calm after the wind, earthquake and fire on Mount Horeb. Before his death, he designated Elisha as his successor in the prophetic calling; and, with his mantle, he divided the waters of the Jordan. Finally, he was taken up into the heavens in a fiery chariot drawn by fiery horses. On Mount Tabor he appeared together with Moses beside our Lord Jesus Christ. At the end of the world, St. Elias will appear again, to put an end to the power of the Antichrist [Revelation, Chapter 11]. //)
--------------------
//) In the Greek Synaxarion the following miracle of the holy Prophet Elias is recorded: "A certain Paisius, Abbot of the Monastery of the holy Prophet Elias in Jerusalem, came to Constantinople, and from Constantinople went to Belgrade, at the time that Patriarch Paisius was there. At that time there lived in Belgrade an Orthodox Christian who had a Roman Catholic wife. On St. Elias's day his wife was going to knead bread, but her husband said to her, 'Today is the Feast of the Prophet Elias, and you shouldn't work.' His wife replied that this feast had passed ten days earlier (according to the papal calendar). And so a quarrel arose between them. The stubborn woman kneaded the dough, but lo the wonder! The dough turned to stone in her hands. All the neighbors gathered to see the miracle and each one took a piece of the stone. Paisius also happened to be there, and he likewise took a piece of the stone as evidence of the miracle of God and took it with him to Jerusalem. Paisius placed the stone before an icon of the holhy Prophet Elias in his monastery."
! SAINT ELIAS, PATRIARCH OF JERUSALEM, AND SAINT FLAVIUS, PATRIARCH OF ANTIOCH.
Saint Elias and Saint Flavius were great zealots for the Faith and defenders of Orthodoxy. They were driven into exile by the heretical Emperor Anastasius, anbd there they both died. They precisely foresaw the death of Emperor Anastasius, as well as their own death. They wrote to each other at the same time from places quite far apart: "Anastasius the emperor died today, let us both go before the judgment of God with him." Two days later, both saints died, in the year 518 A.D.
! HYMN OF PRAISE
!
! SAINT ELIAS THE PROPHET
!
O fiery man, Prophet Elias,
With heavenly radiance, you shone on earth
And pleased the Lord by your prayers:
You closed the heavens, and from heaven, brought down fire--
All with the help of God's mighty right hand.
For their lack of faith, you rebuked men;
And for the Living God, you were greatly zealous,
And, as its prophet, the Church celebrates you.
-----
The king did not frighten you and the queen, even less,
For your king and all your wealth was the Lord God:
Food and drink were not your concern.
To God's providence, you were wholely dedicated,
And fearing none, you were fearful to all--
As a powerful lion is to little mice.
For the Living God, you were greatly zealous,
And as its prophet, the Church celebrates you.
-----
As few else, the Lord glorified you,
For the Living God you glorified!
To consume the sacrifice, God sent you fire;
To raise the dead, power He gave you--
All the world, your mighty works amazed:
All your prophecies were fulfilled.
In soul and body, you were alive and whole,
Wherefore death had no part in you.
In both soul and body, O prophet of God:
Glory! we exclaim to you with joyful souls.
! REFLECTION
Writing about the life of his sister St. Macrina, St. Gregory of Nyssa hesitates to enumerate her miracles, saying: "...that I may not be responsible for the sin of unbelief among weak men." His term for those who do not believe is "weak." Truly, there is nothing weaker than a man without faith. The man without faith believes in the power of dead things and dead elements of nature, but does not believe in the power of God or of men of God. This is spiritual dullness, and this dullness is equivalent to spiritual death. Thus, living souls believe and dead souls do not believe. Living souls believe in the powerful miracles of the Prophet Elias. These miracles give them courage and joy, for they know that they are a manifestation of the might of God. When God manifests His might through lifeless things and elements of nature, why would He not manifest it through living and holy men? The Prophet Elias's appearance on Mount Tabor at the time of the Transfiguration of the Lord in particular gives the faithful the greatest joy. During his life on earth, this great prophet gave proof of the existence of the One and Living God and, by his appearance on Mt. Tabor hundreds of years after his departure from the earth, he gave mankind visible proof of life after death.
! CONTEMPLATION
To contemplate God's miraculous aid to the Israelites in battle (Deuteronomy 2-3):
# How Moses defeated the pagan kings, Sihon of the Amorites and Og, king of Basan, for it was God's will that they perish;
# How Moses was unable to take the land of Moab, for God did not want this, for the sake of the descendants of the righteous Lot;
# How victory and defeat in wars do not occur without God's permission.
! HOMILY
! About the apostle's personal testimony
"This is my beloved Son, in Whom I am well pleased." And this voice which came from heaven we heard, when we were with Him in the holy mount" (2 Peter 1:17-18).
Let us hear the testimony of the true and faithful one who was crucified on a cross because of his testimony. Let us hear the Apostle Peter, who proved what he was unable to prove by his words, by his bloody death on the cross, being crucified upside down by the pagans. He testifies that he was on the holy mountain, i.e., Mount Tabor, when our Lord was transfigured, and Moses with Elias appeared. He testifies that a voice was heard from heaven, saying: //This is My beloved Son, in Whom I am well pleased// (2 Peter 1:17). In this text, the apostle does not speak of what he and his companions saw on the holy mountain, which is narrated in the Gospel, but repeats only that which they heard. That which they heard is just as important as that which they saw. Therefore, let mankind hear that the apostle saw the Lord Jesus transfigured in a wondrous, heavenly light, and let them know that He is the Son of God. Let mankind also hear that the apostles saw Moses and Elias alive, and let them know that life after death is real, as is the judgment of God. Let them also hear the Lord Jesus called the Son of God--by God the Father Himself, and not by mere men. Those who speak these words to mankind and relate to them what their eyes saw and what their ears heard are faithful and true witnesses. He who does not believe the apostles, believes Judas, Caiaphas, Herod and Nero--the persecutors of the apostles and traitors to the truth. He who does not believe in the righteous ones has no alternative but to believe in the unrighteous ones. He who does not believe in the pure ones, must believe in the impure ones. He who does not believe in those who suffer for the truth, must believe in the torturers and libertines. Day does not dawn for any other reason than that mankind may take sides with one or the other.
O Lord, our Savior and Enlightener, enlighten our souls by Your holy words, for which Your apostles suffered.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET EZEKIEL
Ezekiel was the son of a priest from the town of Sarir. He was taken into captivity in Babylon with King Jehoiachim and many other Israelites. Ezekiel prophesied for twenty-seven years in captivity. He was a contemporary of the Prophet Jeremiah. While Jeremiah taught and prophesied in Jerusalem, so Ezekiel taught and prophesied in Babylon. The prophecies of Jeremiah were known in Babylon, and the prophecies of Ezekiel were known in Jerusalem. Both of these holy men agreed in their respective prophecies, and both were mistreated and tortured by the unbelieving Jewish people. St. Ezekiel had fearful and unheard-of visions. By the river Chebar, Ezekiel saw the heavens opened, and a cloud and fire and lightening, and four wild creatures like molten copper [Ezekiel 1:4]. One creature had the face of a man, the second the face of a lion, the third the face of a calf [ox], and the fourth the face of an eagle [Ezekiel 1:10]. The face of the man signified the Lord Incarnate as a man; the face of the lion, His divinity; the face of the calf, His sacrifice; and the face of an eagle, His Resurrection and Ascension. Another time, he was shown a vision of the resurrection of the dead. The prophet saw a valley full of dry, dead bones, and when the Spirit of God descended upon them they came to life and rose to their feet [Ezekiel 37:1-10]. He also saw the most terrible destruction of Jerusalem, when the wrath of God slew all but those who had been marked with the Greek letter Tau [Ezekiel 9: 1-7]--which corresponds to our letter "T," which is also the sign of the Cross. The malice of the Jews did not spare even this holy man. Infuriated at him for having rebuked them, the Jews tied him to the tails of horses and tore him apart. He was buried in the same sepulchre as Shem, the Son of Noah.
! THE VENERABLE SIMEON AND JOHN
These two young men left their homes and relatives: Simeon left his aged mother, and John left his young wife. Both received the monastic tonsure at the hands of Abbot Nicon in the Monastery of St. Gerasimus, and withdrew into the desert, where they lived an austere life of self denial for many years. They chastised their bodies with rigorous asceticism to the point that they resembled two withered trees. One day Simeon said to John that, according to God's command, he must depart from the desert and go among the people and serve God there. John gave him this counsel: "Guard your heart against all that you will see in the world. Whatever you touch with your hand, do not allow it to touch your heart. Whatever you eat with your mouth, let not your heart take delight in it. When you use your feet to walk, let there be peace within you. And whatever you do outwardly, let not your mind be disturbed by it. Pray for me, that God does not separate us from one another in the future life." St. Simeon accepted the counsel of his companion, embraced him and then left the desert and went among the people as a "fool for Christ," to teach men and to convert them to the Faith of Christ. He pretended insanity before men, but his heart was a temple of the Holy Spirit, in which dwelt unceasing prayer. He possessed abundant grace from God. He could discern all the inner secrets of men, both close at hand or afar off, and had the power to heal men from evil spirits and sickness. Dancing in the streets like a madman, he would suddenly approach people and whisper their secret sins in their ears, and call them to repentance. He appeared to sinners in dreams, rebuked them, and called them to repentance. Thus it was with Bali, a pagan actor who openly mocked Christian shrines--St. Simeon appeared to him in a dream and rebuked him, and he repented and became a good Christian. A young libertine went out of his mind from sexual promiscuity. Confronting this insane young man, St. Simeon struck him across the face with his hand and said: "Do not commit fornication." At that moment the unclean demon departed from the young man, and he became well.
! HYMN OF PRAISE
!
! THE HOLY PROPHET EZEKIEL
!
Ezekiel envisioned, by God's will
A wide, wide, boundless field,
Filled to overflowing with dead men's bones.
A voice from above Ezekiel heard:
"Son of man, these bones do you see?
As My guests on earth, they once lived;
At My table, I served them well
But few, as was meet, repaid Me.
Do you wish to make these dead bones live again?"
The prophet was frightened, and struck with wonder:
"Lord, Lord, You know,
They must arise, if You command."
A quaking, rumbling and trembling then began,
The dead resurrected--the prophet, a miracle, witnessed!
The bones rose up, and joint met joint;
Then flesh, then sinews and skin enclosed them.
The prophet, trembling, witnessed the miracle
And glorified God with his heart and soul.
What the prophet of God discerned in the spirit
The resurrected Lord clearly showed.
When the Spirit wills, the dead will resurrect,
As in a new garment, in a living body,
And with Christ, the faithful will then rejoice,
To reign eternally in His Kingdom.
! REFLECTION
For the sake of his neighbor's benefit, St. Simeon left his only friend in the world and his peaceful cell in the wilderness, and became as a fool. It is told how the Spartan King Lycerges also made a great sacrifice for the benefit of his fellow citizens. He issued strict laws, setting up a complete new system of educating the young, and instituting better order in the state. After he had issued these laws, he told his subjects that he desired to go to the shrine at Delphi, and required them to take an oath to faithfully adhere to his laws until his return. When all the citizens had taken the oath, Lycerges left his country but never returned, binding them to their oath forever. It is a great sacrifice to leave one's homeland and voluntarily live in a strange country for the sake of the benefit of one's neighbor. But how much greater a sacrifice it is to voluntarily leave one's mind, and continually pretend before men to be a madman! Is not madness the most foreign land known to man? To live in that terrible, strange land year after year--all for the benefit of one's neighbor!
! CONTEMPLATION
To contemplate the miraculous crossing of Israel over the Jordan River (Joshua 3):
# How by the power of God and through Joshua, the waters of the Jordan parted and the priests and the people crossed over;
# How the priests, with the Ark of the Covenant, stood on dry land in the midst of the Jordan, while the people crossed over;
# How even I need not be afraid of the floods of this world, as long as I hold the covenant of God firmly in the center of my being, in my heart.
! HOMILY
! About the false teachers
"But there were false prophets also among the people, even as there shall be false teachers among you, who privily shall bring in damnable heresies, even denying the Lord that bought them, and bring upon themselves swift destruction" (2 Peter 2:1).
Man is at war in this world. The battle is continual and the enemies are numerous. False teachers are among the most dangerous enemies. Only if the mind of man is directed toward the Living God will he be safeguarded from these dangerous enemies. False teachers are either as blind men or robbers: the first, because of their blindness, lead both themselves and others into destruction; the others, because of their malice, intentionally lead others astray and consign their souls and bodies to the fires of hell. The Lord Himself prophesied: //Many false prophets shall rise and shall deceive many//(Matthew 24:11). The apostle only confirms the words of the Lord. Both false prophets and false teachers will sow the seeds of destruction among the people. These are //damnable heresies// by which some will deny their Lord, Who redeemed mankind by His Most-pure Blood. Many false teachers have already appeared and sown many heresies, destructive as cockles, throughout the world. Brethren, if you know those //damnable heresies// which the Holy Fathers condemned at the Councils, then you will be able to recognize the principle seed of poison which the devil, through his servants, sows in the field wherein the Savior has sown pure wheat.
But whether you know or not, direct your mind toward the Lord; guard yourself with the sign of the Cross; call upon the Holy and All-pure One [The Theotokos] and the holy God-pleasers, and especially upon your guardian angel for aid--and do not be afraid. In addition to this, always ask the Church, and the Church, being greatly experienced and victorious against all falsehoods, will tell you what is true. For you are of yesterday, while the Church is from time immemorial. Your memory is shorter than the memory of the Church.
O Lord Jesus, You are the only Way, the only Truth and the only Life. O Lord, do not let us follow false teachers and thus fall away from You.
To Thee be glory and praise forever. Amen.
! SAINT MARY MAGDALENE
One of the myrrh-bearing women and "equal to the apostles," Mary was born in the town of Magdala, along the shore of Lake Gennesaret, and was of the tribe of Issachar. She was tormented by seven evil spirits--from which she was freed by the Lord Jesus and made her whole. She was a faithful follower and servant of the Lord during His earthly life. She stood beneath the Cross on Golgotha, and grieved bitterly with the All-Holy Birth-giver of God. After the death of the Lord she visited His sepulchre three times. When the Lord rose again she saw Him on two occasions: once by herself, and once with the other myrrh-bearing women. She traveled to Rome and appeared before Tiberias Caesar, presenting him with a red-colored egg, and giving him the salutation: "Christ is Risen!" She also denounced Pontius Pilate to Caesar for his unjust condemnation of the Lord Jesus. Caesar accepted her accusation and transferred Pilate from Jerusalem to Gaul where, in disfavor with the emperor, this unjust judge died of a dread disease. After this, she returned from Rome to Ephesus, to assist St. John the Theologian in the work of preaching the Gospel. With great love toward the resurrected Lord, with great zeal for the Faith and as a true apostle of Christ, she proclaimed the Holy Gospel to the world. She died peacefully in Ephesus. According to tradition, the cave she was buried in was the same cave in which the Seven Youths (August 4) later slept a wondrous sleep for hundreds of years, then came to life and again died. The relics of St. Mary Magdalene were later transferred to Constantinople. There is a beautiful Russian Orthodox convent dedicated to St. Mary Magdalene near the Garden of Gethsemane.
! THE PRIESTLY-MARTYR PHOCAS
On this day, we commemorate the translation of the relics of St. Phocas from Pontus to Constantinople, in about the year 404 A.D. The primary feast of this saint is September 22, on which his life and his sufferings are recorded. One miracle of this saint is commemorated on the present day as well. The Arabs captured a man named Pontinus. They shackled him, bound his hands behind his back and left him to die. Lying face down on the ground, and unable to move, Pontinus cried out: "O Holy Martyr Phocas, have mercy on me and save me!" Having said this he fell asleep and, in a dream, Saint Phocas approached him, touched him by the hand and said: "The Lord Jesus Christ forgives you!" When the man awoke, he found himself loosed from his bonds. He arose and departed for his home. St. Phocas became the patron saint of his household.
! THE VENERABLE CORNELIUS OF PEREYASLAVL
Cornelius was tonsured a monk at age fifteen by an elder named Paul. He eventually withdrew into the wilderness, to a life of silence. Cornelius lived in silence for thirty years, not speaking so much as a word to anyone, so that many believed that he was a mute. He became so withered through fasting that he resembled a skeleton. Before his death, he received the great schema [The Great Angelic Habit], and found repose in the Lord on July 22, 1693 A.D.
! THE HOLY-FEMALE MARTYR MARCELLA
Saint Marcella is greatly venerated on the island of Chios. In the church dedicated to her there, miracles occur every year. However, her life is not known. According to tradition Marcella was an unusually pious girl who was left motherless at an early age. Her bestial, pagan father wanted to live with his daughter as with a wife. Marcella fled from her father, but he, enraged like a wild beast, caught up with her and cut her into pieces. In the proximity of her church, there are certain stones that, from time to time, become as if covered with blood. People take these stones, bring them to church, and pray to St. Marcella. They then touch the sick with them, who are thereby healed.
! HYMN OF PRAISE
!
! SAINT MARY MAGDALENE
!
Magdalene, in dark sorrow, was shrouded
Because of the bloody death of the Son of God.
Sorrow from love is most bitter sorrow--
In the world she had neither consolation nor friend.
Her tears were her comfort, and pain was her only friend.
For Saint Magdalene, to darkness the world was turned.
As a weak human, she sought light,
And without hope, in the darkness Mary groped.
Even His tomb to her was light--but lo! the tomb is empty!
"He has been stolen," she thought, "naked and unanointed!"
Bitterly she wept, and to her weeping there was no end.
Then, the voice of a man beside her, she heard:
//Woman, why are you weeping? Whom do you seek?
//
"Whom do I seek, you ask? To calm me, do you wish?
If you have taken His body, tell me where you have put it."
As she wept and sorowed, Jesus looked upon her
And in a sweet voice called to her: "Mary!"
In Mary's heart, light shone forth:
O voice now recognized, incomparably sweet,
O voice overflowing with life and power!
With this voice the Lord healed the sick,
With this voice He raised the dead.
O Life-giving voice--O wondrous voice!
Mary sprang up and turned around:
"Rabboni!" she cried as the sun arose.
A New Day dawned for Mary and for the world.
! REFLECTION
//Blessed are they that mourn// (Matthew 5:4), said the Lord. Blessed are they who mourn, seeking the Kingdom of God. Blessed are they who mourn, suffering for the Faith in Christ. Blessed are they that mourn, repenting of their sins. There can be no true repentance without tears. With what shall we wash away our sins, if not with tears, or blood (the blood of martyrdom)? The monks of Nitria sent a request to St. Macarius the Great, asking if he would come to them--rather than having all of them come to him. Macarius obeyed and came to them. All the monks gathered around St. Macarius, and begged him for a word of instruction. Macarius began to weep, and through his tears said: "Brethren, let tears flow from your eyes, before you go to the place where our tears will scald our bodies." Then all the brethren began to weep.
! CONTEMPLATION
To contemplate the miraculous appearance of the archangel to Joshua, the son of Nun, when he set out to conquer Jericho (Joshua 5):
# How the captain [commander] of the heavenly hosts appeared to Joshua with a drawn sword in his hand;
# How he told Joshua to remove his shoes (Joshua 5:15);
# How even we, in the battle of life, should not rely on our own feet and our own equipment, but only on Him who fights for us.
! HOMILY
! About the inexorable justice of God
"For if God spared not the angels that sinned, but cast them down to hell, and delivered them into chains of darkness, to be reserved unto judgment; and spared not the old world, but saved Noah the eighth person, a preacher of righteousness, bringing in the flood upon the world of the ungodly; and turning the cities of Sodom and Gomorrah into ashes condemned them with an overthrow, making them an example unto those that after should live ungodly" (2 Peter 2: 4-6).
Oh, how then will the sinful man be spared? //[He] spared not the old world but saved Noah, the eighth person, a preacher of righteousness, bringing in the flood upon the world of the ungodly; and turning the cities of Sodom and Gomorrah into ashes, condemned them with an overthrow //(2 Peter 2:5-6). Therefore, O sinful man, how then can you be spared? Are you dearer and more precious to Him than millions of angels, or so many people drowned by the Flood [Deluge] or living in those densely populated cities? When the angels were cast into the darkness of hades, people were drowned by the Flood, and cities were burned to ashes--in what do you hope, who are sinning continually and not turning away from sin? In the mercy of God, you say. But is God more merciful now that He was then? Does God change as man does? Do not hope without measure, but according to the measure of your efforts regarding the improvement of your life should you hope. Truly, God's mercy is great, His patience is long, and His love is infinite. Behold--God is kinder to you and loves you more than you love yourself, and He desires your salvation even more than you yourself do. But as for him who mocks God's mercy to the end, who laughs at God's patience to the end, and who opposes God's love to the end--will God force him to enter His kingdom and make him a fellow citizen with the angels and saints?
How terrible is the darkness of hades--the clanging of chains and the gnashing of teeth! Those who mocked the mercy of God and opposed the love of God dwell there. Do you want to go there, O prodigal soul? God does not desire that you go there; the angels mourn that you are headed there; the saints pray that you will return; the Holy Church offers sacrifices for you, that you would come to your senses! If you despise all this--Oh, why would you despise it all?--then what kind of mercy do you expect from God?
O righteous Lord, help us that we may quickly turn away from the path leading to the darkness of hades; bring us to our senses and strengthen us in goodness before You send Your angel to take away our souls.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS TROPHIMUS AND THEOPHILUS, AND THIRTEEN OTHERS WITH THEM
They all suffered in Lycia, during the reign of Emperor Dioceletian. Because they would in no way deny Christ or offer sacrifices to the idols, they were subjected to various tortures. They were stoned, scraped with sharp irons, and their knees were broken. By then they were more dead than alive, and were thrown into the fire. The power of God preserved them, and they remained unharmed by the flames. They were then brought out of the fire and beheaded. The Lord glorified them both on earth and in His heavenly kingdom. They suffered honorably in Lycia in the year 308 A.D.
! THE HOLY PRIESTLY-MARTYR APOLLINARIUS
Apollinarius was a disciple of the Apostle Peter. He was born in the city of Antioch. St. Peter took Apollinarius with him from Antioch to Rome, where he consecrated him bishop of Ravenna. In Ravenna Apollinarius entered the home of the soldier Ireneaus, whose son he healed of blindness. By this miracle, he converted the entire household to the Faith of Christ. He likewise cured the wife of the military commander of Ravenna of a terrible malady and baptized their entire household. Apollinarius remained with this household at the military commander's request. He formed a small house church there and remained with them for twelve years, preaching the Good News and baptizing unbelievers. On many occasions he was cruelly tortured by the pagan elders, but the all-powerful right hand of the Lord sustained and saved him. He was finally sentenced to exile in Illyria, in the Balkans. The boat in which Apollinarius was being transported was broken up in a storm and sank, and only St. Apollinarius, three of his clerics, and two soldiers were saved. The soldiers, having been saved miraculously, believed in the power of Apollinarius's God and were baptized. Apollinarius then went to preach the Holy Gospel throughout the Balkans, descending as far as the Danube River. After this, he set out for Thrace where, against much opposition, he also spread the Gospel of the Lord. After three years of labor in the Balkans, he was banished back to Italy. He returned to Ravenna, where the faithful rejoiced exceedingly at his return. Hearing of this, a pagan elder wrote to Emperor Vespasian about Apollinarius, accusing the saint of being a magician. He also asked the emperor if they should kill Apollinarius as an enemy of their gods. The emperor replied that they should not kill him, but require him to offer sacrifice to the gods or banish him from the city. The emperor declared: "It is not dignified to seek revenge against anyone for the gods, for they can avenge themselves against their own enemies if they are angered." In spite of this imperial decree, the pagans attacked Apollinarius and stabbed him with knives. This servant of God died of his severe wounds and was received into the Kingdom of God. The relics of St. Apollinarius repose in the church dedicated to him in Ravenna, Italy.
! HYMN OF PRAISE
!
! SAINT APOLLINARIUS
!
For the sake of Christ God,
Apollinarius endured sufferings, many and great
Without anger, without astonishment,
For he knew that there is no salvation without suffering;
He knew that the Lord's way was suffering,
And saw Peter's pierced hands.
He knew of many, slaughtered like lambs--
By a sword, into the Kingdom of God, sent.
And with his soul set right, for that he was prepared:
For the Living Christ, to endure public shame,
And all that the powers of hades
Had prepared for the torture of the faithful.
The saint endured, and with faith bore it all,
And he grew steadily older under cruel torture.
Even in his old age, torment did not pass him by.
Under brutal tortures, for Christ he died,
And with his heroism, many generations he astonished;
And did not die, but departed--to eternal life.
! REFLECTION
The great teachers of the Church endeavored to teach men great truths, not only by words but by obvious examples as well. Thus, in order to teach the monks, Abba Isaiah said that no one would receive a reward from God who did not labor for God in this life. He brought his disciples to a threshing floor, where a farm laborer was gathering the winnowed wheat. He said, "Give me some wheat!" The laborer replied: "Did you reap, Father?" "I did not", replied the elder. "How do you expect to get wheat, when you did not reap?" To this, the elder replied: "Then he who did not reap does not receive wheat?" "He does not," replied the laborer. Hearing such an answer, the elder silently turned away. When the disciples begged him to explain his action, the elder said: "I did this with the intention of showing you that he who has not lived a life of asceticism will not receive a reward from God."
! CONTEMPLATION
To contemplate the suffering of the entire people because of the sin of one man (Joshua 7):
# How the Israelites were prohibited by God from taking any of the possessions belonging to the conquered people of Jericho;
# How one man took something of the spoil, and because of this the Israelites were defeated by the Ai;
# How, even today, many suffer because of one man's transgression of the law of God.
! HOMILY
! About waterless wells
"These are wells without water, clouds that are carried with a tempest; to whom the mist of darkness is reserved forever" (2 Peter 2:17).
The apostle calls impure men //wells without water--//those who //walk after the flesh in the lust of uncleanness and despise government. Presumptuous are they, self-willed, they are not afraid to speak evil of dignities...! But these, as natural brute beasts, made to be taken and destroyed, speak evil of the things that they understand not// (2 Peter 2:10, 12). O waterless wells, adorned on all sides but nonetheless waterless, why are you called "wells," when nothing comes out of you but thirst? O you mere clouds and mist, why do you proudly inflate yourselves as though you would flood the entire world, when there is not even one drop of water in you--and when a breath of the Spirit of God will destroy and disperse you into nothing in one terrible moment? You care nothing for purity, and so you roll around in fleshly impurity; neither do you care about order, and so you detest authority; neither do you care about honor, and so you are shameless; neither do you care about God's will, and so you are self-willed; neither do you care about the knowledge of truth, and so you criticize that which you have never labored to understand. //The mist of darkness is reserved forever// for you. That is not God's will, but your own will. God did not ordain that road for you; you yourself chose it. God is just and will not be sinned against, but will render unto all according to their sins, and according to their unrepentant hearts.
What, brethren, are the fleshly desires of those who are //wells without water// and dry clouds and mist? What fruit comes from them but thistles and thorns that need no rain? Men with fleshly desires are no better than their desires, and they are blind because of them, and will be judged according to them.
O Lord, Creator of our souls and bodies, give us the grace of Your Holy Spirit, that we may preserve our bodies and souls in purity, and that in the Day of Judgment we may present both in purity to You, our Creator.
To Thee be glory and praise forever. Amen.////
! THE HOLY FEMALE MARTYR CHRISTINA
Christina was born in the city of Tyre. She was the daughter of Urban, the imperial deputy, an idol-worshipper. The reason her parents gave her the name of Christina is unknown, but it contained within itself the mystery of her future following of Christ. Until the age of eleven she knew nothing of Christ. When she reached that age, her father made her live in the top of a high tower, in order to protect her from the world, because of her extraordinary beauty. He planned to have her live there until she reached full maturity. All the comforts of life were afforded her--slaves to serve her, and gold and silver idols that she might offer sacrifices to them daily. However, the soul of young Christina was saddened in this isolated, idolatrous environment. Looking out the window each day at the sun and all the beauty of the world, and again at night at the wondrous constellations of shining stars, Christina came to a firm belief in the One Living God through her own natural understanding. The merciful God, seeing her longing for the truth, sent His angel to trace the sign of the Cross upon Christina. The angel called her the bride of Christ, and instructed her fully in the knowledge of divine things. Then Christina smashed all the idols in her quarters, thus provoking wild fury in her father. He brought her to trial, and had her tortured. Then he had her thrown into prison, intending to have her beheaded the next day. That night Urban, who had been in full health, spewed forth his soul and went to the grave before his daughter. After this, two imperial deputies, Dion and Julian, continued to torture this holy virgin. Christina's courageous endurance and the miracles she worked by the power of God converted many pagans of Tyre to Christianity. During the torturing of Christina, Dion suddenly fell dead in the midst of the people. Dion's successor, Julian, severed Christina's breasts and tongue. The martyr threw her severed tongue into Julian's face, and he was instantly blinded. Finally, her suffering for Christ ended beneath the sharp sword, but her life continues in the Immortal Kingdom of the angels. St. Christina suffered honorably in the third century.
! THE VENERABLE POLYCARP, ABBOT OF THE MONASTERY OF THE CAVES IN KIEV
Polycarp possessed "love toward God and neighbor, joy from an untainted conscience, peace from victory over all the passions, patience in time of temptation and misfortune, goodness in submission to all, benevolence toward the poor, undoubting faith in fulfilling the commandments, truth in fulfilling his vows, meekness in freedom from anger, abstinence and so forth." So well did he govern the Kiev Caves Lavra that, after his death, a worthy successor among the monks could not be found (for those who were worthy did not want to accept the rank of abbot out of humility), so that the brethren were compelled to take Basil, a secular priest, as their abbot. St. Polycarp reposed in the Lord in the year 1182 A.D.
! HYMN OF PRAISE
!
! SAINT CHRISTINA
!
The glorious martyr, the virgin Christina,
Of the Son of God, chosen bride,
Had, in her father, her worst enemy--
By him was she torn by sharp iron.
"Daughter, if you do not, the gods, acknowledge,
My daughter, will I not call you any longer."
Thus, the father spoke to his daughter, to which she replied:
"I have never been angry with you, even though
The servant of Christ I am and you the servant of Satan.
Neither father nor friend in you do I see.
Daughter you do not call me, and glad this makes me.
The Lord is my father, and my sweetness He is!"
Like a raging beast, his servants, her father commanded
Her flesh to scrape to the bone.
From her tender body, the flesh fell to the ground,
One wound joined another, no place was left whole.
The holy martyr, with her hand, some of her flesh took
And in the middle of his foul face, struck her father:
"O Urban, you meat-eater--my flesh, here it is,
Here, beast--eat the flesh of your child!"
That night, from his body, Urban parted,
And in hell, with the devil, united his soul.
Christina suffered and shed her blood,
Heroically overcoming a world of enemies.
The virgin Christina, a martyr wonderful,
With the glory of the Son of God, was glorified.
! REFLECTION
The Christian Faith most especially enlightens and illumines the souls of men when the preachers of this Faith shine forth by their own lives. Blessed Polycarp, the abbot of the Monastery of the Caves in Kiev, was completely illumined by the Christian Faith--in words, deeds and his entire being. Because of this, he had an uncommon influence upon the lives, not only of the simple people, but of princes and noblemen as well. Seeing and listening to this godly man, the Prince of Kiev, Rostislav Mstislavich, became so illumined with the Christian Faith and thus became so subdued and ennobled that he became a model of Christian life, both in his immediate surroundings and to his entire people. During Great Lent [Fast Season], Prince Rostislav received Holy Communion every Sunday and sought out the poor and needy everywhere so as to help them. In the end, he resolved to receive the monastic habit and spoke to Saint Polycarp about this: "Holy Father, princely rule in this world cannot be without sin, and it has already embittered me and worn me out." Polycarp answered him: "If you desire this (the monastic habit) with all your heart, then let it be God's will." However, while in Smolensk the prince fell fatally ill and ordered that he be taken quickly to Kiev, that he might be tonsured before his death--but he died before his wish could be fulfilled.
! CONTEMPLATION
To contemplate the miraculous victory of the Israelites over the men of Ai (Joshua 8):
# How the men of Ai pursued the Israelites and almost defeated them;
# How, according to the command of God, Joshua raised his banner in the air and held it upraised until the men of Ai were defeated;
# How, in times of danger, I should lift up my heart to God as a banner, and with the Cross in my heart and with prayer, march to victory.
! HOMILY
! About the holy apostolic warning
"For when they speak great swelling words of vanity, they allure through the lusts of the flesh, through much wantonness, those that were clean escaped from them who live in error" (2 Peter 2:18).
The holy apostle knows men better than the most highly educated scholars, for he is a saint and an apostle. And a saint and an apostle can penetrate deeply into the heart of man. About whom is the apostle speaking? He is speaking about the "impure, shameless and the self-willed", whom he earlier called "wells without water and clouds and mist" (2 Peter 2:17). The "impure, impudent and self-willed" are men of many and seemingly important words. They speak proud and false words to men. By these proud and false words, they both conceal and reveal their hearts: they conceal them from the unlearned and those lacking in understanding, and reveal them to those who are steadfast in the Faith and enlightened by grace.
When an impure man speaks of his purity, he reveals his impurity; when a shameless man defends his honor, he reveals his shamelessness; when a self-willed man interprets the will of God, he shows his self-will. Whoever attentively follows his words can smell the stench of his fleshly desires. The inattentive and uneducated cannot sense this, but believe and are deluded. Those "who have just begun to escape" from the deception of the stomach, the world and the devil are often ensnared by proud and false words, like a fish in an invisible net. The fish does not know that it is in a net until the net is emptied out onto the hot sand. Then it knows, but then it is too late. Oh, may it not be too late for those pitiful souls of mankind who are ensnared in the net of proud and false words! Brethren, know that every teacher who, by his teaching, condones bodily desires, and approves sinners in their bodily desires, is false.
O Lord Jesus, Holy and All Pure, send Your Holy Angels to defend all beginners and fledgings in Your Faith from proud and false lips.
To Thee be glory and praise forever. Amen.
! SAINT ANNA, THE MOTHER OF THE ALL-HOLY BIRTH-GIVER OF GOD
Today is the commemoration of the falling asleep of St. Anna, but her principal feast is celebrated on September 9, on which date her life is written. Anna was from the tribe of Levi, and was the daughter of Matthan the priest. After a long and God-pleasing life, she died in extreme old age.
! SAINT OLYMPIAS [OLYMPIADA], THE DEACONESS
Olympias was born in Constantinople of very distinguished parents. Her father, Anysius Secundus, was a senator, and her mother was the daughter of the famous nobleman Eulavius, who is mentioned in the life of St. Nicholas the Wonderworker. When Olympias reached maturity, she was betrothed to a nobleman who died before the marriage took place. The emperor and her other relatives pressured Olympias to marry another, but in vain. She in no way desired this, and devoted herself to a God-pleasing life, giving great offerings to the churches and alms to the needy from her inherited estate. She served as a deaconess in the Church during the time of Patriarch Nectarius and, after his death, during the time of St. John Chrysostom. When Chrysostom was exiled, he counseled Olympias to remain in the church and to serve as before, regardless of who the patriarch after him would be. Immediately after the banishment of this great saint, someone started a fire in the Great Church [The Church of the Divine Wisdom, Hagia Sophia], and the fire consumed many prominent buildings in the capital. The enemies of St. John Chrysostom accused this holy woman of maliciously starting the fire. Olympias was banished from Constantinople to Nicomedia, where she died in the year 410 A.D. She had requested in her last testament that her body be placed in a box and cast into the sea, and that she was to be buried wherever the waves brought it ashore. The coffin was cast ashore in the city of Vrochthoi, where there was a church dedicated to the Apostle Thomas. Throughout the centuries, her relics have had the power of great healing miracles. The exiled Chrysostom wrote beautiful letters to the exiled Olympias, which even today serve as a great comfort to all those who suffer for the sake of God's justice. Among other things, Chrysostom wrote to Olympias: "Now I am very happy, not only because you have been delivered from infirmity, but even more because you are nobly enduring all difficulties, referring to them as trivialities, which is characteristic of a soul full of strength and abounding in the rich fruits of courage. For not only are you courageously enduring misfortune, but you do not even notice it when it comes and, without exertion, without labor and disturbance, do not even inform others, but rejoice and triumph over it. This serves as proof of the greatest wisdom" (Letter VI).
! THE VENERABLE FEMALE EUPRAXIA [EUPHRASIA] THE VIRGIN
Eupraxia was the daughter of Antigonus, a nobleman of Constantinople and a relative of Emperor Theodosius the Great. She and her mother, a young widow, settled in Egypt. There they visited the monasteries, distributed alms and prayed to God. In accordance with her fervent desire, the seven-year-old Eupraxia was tonsured a nun. The older she became, the more she imposed heavy ascetic burdens upon herself. She once fasted for forty days. She reposed in 413 A.D, in her thirtieth year. She possessed great grace from God, and healed the most serious illnesses.
! THE COMMEMORATION OF THE FIFTH ECUMENICAL COUNCIL
This Council was convened in Constantinople during the reign of Emperor Justinian the Great in the year 553 A.D. All the various heresies of Monophysitism were condemned at this Council, as well as the heretical writings of Theodore of Mopsuestia, Theodoret of Cyrrhus and Origen's teaching (against the resurrection of the dead).
! HYMN OF PRAISE
!
! SAINT EUPRAXIA (EUPHRASIA)
!
Eupraxia, the young virgin,
For the sake of Christ, a hermitess became,
And though of proud and royal birth,
She bore God in her soul.
Avoiding all honors as burdens,
As well as her riches and her royal family,
To God she prayed day and night,
In fasts and all-night vigils, exhausting herself.
To His servant, God hearkened--
The tearful virgin Eupraxia
Who many tears had shed,
And by tears inflamed her prayers.
On her God bestowed wondrous gifts:
Both the young and the old to help,
Wicked demons to cast out,
Of every infirmity, to heal the sick.
To God, with a most pure soul, she went,
And for herself, in heaven, found a home
Built of faith and deeds,
And with much patience purchased.
A home radiant with God Himself:
There, St. Eupraxia went to dwell--
In joy amidst eternal good--
To reign with the Immortal Christ.
! REFLECTION
"As virginity is better than marriage, so a first marriage is better than the second." Thus wrote St. John Chrysostom to the young widow of Tarasius, a deceased nobleman of Constantinople, counseling her not to enter into marriage for the second time. The Church blesses first marriages with joy, but second marriages with sorrow. Eupraxia the elder, the mother of St. Eupraxia, and a relative of Emperor Theodosius the Great, was left a young widow following the death of her husband Antigonus--with whom she had lived as husband and wife for only two years and three months, then one more year as brother and sister by mutual vow. The emperor and empress counseled her to enter into marriage with another nobleman. She would not hear of it, but took her child Eupraxia and fled to Egypt. What then shall we say about St. Olympias and St. Eupraxia the younger? Like St. Macrina, not only were they betrothed as maidens, but when their betrothed died, they considered themselves widows, and would not even permit the thought of entering into marriage. What purity of heart! What fidelity to their betrothed! What fear of God! What clear faith in the future life, in which a betrothed maiden hopes to see her betrothed!
! CONTEMPLATION
To contemplate the miraculous standing still of the sun and the moon (Joshua 10):
# How Joshua, in order to complete the victory over the Gibeonites, ordered the sun and moon to stand still in their courses;
# How God heard the voice of the righteous man, and by His power caused the sun and moon to stand still;
# How God created even nature to serve man, and how God acts according to the will of the righteous.
! HOMILY
! About slaves who preach freedom
"While they promise them liberty, they themselves are the servants (slaves) of corruption: for of whom a man is overcome, of the same is he brought in bondage" (2 Peter 2:19).
The apostle continues to speak of "the impure," "the shameless," and the "self-willed," reminding the faithful to beware of their misleading //great swelling words of vanity//(2 Peter 2:18). He first said about them //that they speak evil of dignities of the glory of God,// and second: //that they allure through the lusts of the flesh, through much wantonness// (2 Peter 2:18). Now he further speaks about how they promise freedom, which they themselves do not possess--for, being overcome by impure passions, they are slaves to their own passions, submissive slaves to the most terrible tyrant of this world. O my brethren, how relevant to us are these apostolic words, written over nineteen hundred years ago! Behold how everywhere around us, those who do not have even a little bit of freedom, are obsessed with proclaiming freedom! Hear the cries of the despairing slaves of passions and vices--how, being deceived, they deceive others; how, being blinded, they preach illumination. Passions are a net, woven by the devil to ensnare mankind. Captured in this net, these prisoners call other men slaves and themselves freemen--to the laughter of the devil, who silently gathers in the net, drawing it toward his shore. O brethren, guard yourselves from those desperate ones who call themselves the heralds of liberty, even as they serve their master, the devil, day and night. They call their poverty wealth, and the true wealth of others they call poverty; just as a fool calls the rest of the world ignorant, and himself intelligent. Thus, those who are least free call others enslaved. They call service in the spirit of love to God and our neighbor slavery, yet they call service to the devil liberty. They are malicious toward both God and men, as the devil himself is malicious toward God and men. Whenever you hear anyone speak to you of liberty, question him well first, to see whether he is a slave of some passion or vice. By the impurity of his life, and his shamelessness and self-will, you will recognize a false teacher of liberty. The apostle reminds you of this.
O Lord, the only Giver of true liberty, safeguard us from the net of all those who are malicious toward You and us.
To Thee be glory and praise forever. Amen.
! THE PRIESTLY-MARTYR HERMOLAUS
Hermolaus was a priest in Nicomedia during the reign of Emperor Maximian. He was among the two thousand martyrs who the emperor condemned to be burned with their church (December 28). Somehow, Hermolaus and two other priests, Hermippas and Hermocrates, escaped death. Hermolaus later baptized Saint Panteleimon (July 27), with whom he was brought to trial, tortured and finally beheaded. Hermippas and Hermocrates suffered with them, and all were crowned with the wreaths of victory and glory in the Kingdom of Christ. They honorably suffered in about the year 304 A.D.
! THE VENERABLE FEMALE MARTYR PARASCEVA [PARASCEVE]
Parasceva was born in Rome of Christian parents, and from her youth was instructed in the Faith of Christ. With great fervor, St. Parasceva endeavored to fulfill all the commandments of God in her life. Believing firmly and living according to her faith, Parasceva directed others on the path of salvation and in the pious life. When her parents died, Parasceva distributed all of her property to the poor, and was tonsured a nun. As a nun, she preached the Christian Faith with an even greater zeal, not hiding from anyone, even though at that time the Roman authorities were conducting a bloody persecution against the Christian Faith. Then, the pernicious Jews denounced St. Parasceva for preaching forbidden faith, and she was brought to trial before Emperor Antoninus. All the flatteries of the emperor did not shake the faith of this handmaiden of God. They then subjected her to torture by fire, and placed a red-hot helmet on her head. The Lord miraculously saved her, and Parasceva was freed, and left Rome. She continued traveling from city to city to convert pagans to the True Faith. She was brought before princes and judges in two more cities, and was tortured for her Lord, at which time she worked great miracles and, by the power of God, quickly recovered from her pains and wounds. The pagans, as always, ascribed her miracles to magic and her swift recoveries to the mercy of their gods. St. Parasceva once said to the prince who was torturing her: "O prince, it is not your gods who have healed me, but my Christ, the True God." Finally, a certain Prince Tarasius beheaded her with the sword. Thus, this saint gloriously ended her fruitful life. Her relics were later translated to Constantinople. She suffered honorably for Christ in the second century.
! THE VENERABLE MOSES OF UGRIAN
He was at the court of the young Russian Prince Boris. When the godless Svyatopolk murdered Boris, Moses escaped and fled to Kiev. A little later he was taken to Poland, by the Polish King Boleslav, as a slave--and was sold there for a thousand gold coins to a young and depraved widow, the wife of one of Boleslav's commanders who had been slain. This wicked woman tempted Moses to commit fornication but Moses would not be tempted, for he had vowed to live chastely before the Lord. She then suggested marriage to him, but he rejected that as well. Moses then secretly received the monastic tonsure from an Athonite monk, and appeared before his owner in the monastic habit. She bound him, and ordered that he be flogged and castrated. Altogether, this shameful woman's oppression of him lasted for five years--five years of pain and torture! Then King Boleslav was slain unexpectedly in an uprising, during which this woman was also killed. Moses was now free to go to Kiev, where at the Monastery of St. Anthony he devoted his life to prayer and stillness. Having completely conquered shameful vice in himself, Moses assisted many others to be saved from it. His holy relics helped many (see the life of St. John, the Much-suffering, July 8). After ten years of silence in the Monastery of the Caves, St. Moses found rest on July 26, 1043 A.D., and took up his habitation in the eternal, virginal Kingdom of Christ.
! HYMN OF PRAISE
!
! SAINT MOSES OF UGRIAN
!
Purity before God, Moses vowed,
And free in the spirit, in spite of his shackles,
Replied to the rich and loathsome woman,
Who was shackled by passion and a slave to debauchery:
"What man has ever, by heeding a woman,
Saved his own, passion-enslaved soul?
Because of a woman, Adam was expelled from Paradise.
Because of Delilah, Samson perished without glory.
Solomon the all-wise, by a woman was seduced
And to idolatrous foolishness lowered himself.
Herod's head, by a woman was charmed,
And the honorable head of John the Forerunner he cut off.
God's servant, I am, O woman, leave me alone!
For yourself, seek a companion in the world.
To your will, I will not submit;
With you, in a bond, I see no happiness.
I must be pure in body, O woman:
Before the Lord, that is my sacred duty!
Neither flattery, nor gold, nor all of your power,
In either mind or body shall lead me astray.
The Lord is Almighty: help me, He will.
Only pure water bubbles forth in Paradise.
God is the God of purity; pure He has created us.
He desires us to be pure and, as pure, He saves us--
Purity, O woman, is the glory of a Christian!"
! REFLECTION
Not one passion is conquered without a great struggle. The Holy Fathers have referred to the passion of fornication as death. When a fornicator is saved from the passion of fornication, it is as though he has risen from the dead. For those who live in the world, the passion of fornication is chiefly inflamed through sight, while for those who live a life of asceticism in the wilderness the passion is inflamed through thoughts and imagination. Saint Sarah, a great female ascetic, was tortured by the demon of fornication for thirty years. She always defeated it by prayer and drove it away from her. Once the demon of fornication came to her in bodily form, and said: "Sarah, you have defeated me!" Sarah humbly answered: "I have not defeated you, but the Lord Christ has defeated you." From that time on, the thought of fornification left her forever. When Saint Poemen was asked how a man can struggle against the demon of fornication, he replied: "If man surpresses his stomach and his tongue, then he will be able to rule over himself." St. Anthony said that three kinds of impulse exist in the body: "The first is from nature, the second is from lack of restraint in food and the third is from the demons." Others have said that the vice of fornication is strengthened by anger and pride. But all agree that, in addition to man's sobriety and spiritual effort, God's help is necessary to uproot this repulsive passion completely. The life of St. Moses the Ugrian, among many others, is a witness that it is possible for man to preserve himself in purity. St. Moses lived fifty years in the world and ten years in the monastery; altogether, a total of sixty years lived in complete virginal purity.
! CONTEMPLATION
To contemplate the miraculous victory over the Amorites (Joshua 24):
# How God sent hornets against the Amorites, and they all fell into confusion and were defeated by the Israelites;
# How the Lord God is mighty; and how He destroys the proud and unjust, with the aid of small things.
! HOMILY
! About the misfortune of those who come to Christ and then apostatize from Him (fall away)
"For if after they have escaped the pollutions of the world through the knowledge of the Lord and Savior Jesus Christ, they are again entangled therein, and overcome, the latter end is worse with them than the beginning" (2 Peter 2:20).
Brethren, bright is the sun, but brighter still are the words of the apostle. The sun illumines bodies, brethren, but it cannot illumine souls--while the apostolic words illumine the souls. The apostle clearly sees the heights and depths of a soul, and he illumines it for us out of fervent love, in order to lead us on the pure path of salvation. He gives us two great instructions in a few words. The first is that one cannot flee from the impurity of this world except through the knowledge of our Lord and Savior Jesus Christ. Without knowledge of the Lord Jesus, one is unable to see or to know the impurity of this world, and without the knowledge of the Lord Jesus man is unable to be cleansed from this impurity. The second instruction is that when a man flees from the impurity of this world through knowledge of the Lord Jesus but turns back to be entangled in it again, then for him //the latter end is worse than the beginning.// For having known the light, he returns again to the darkness, and the darkness becomes even darker. Having known righteousness, he again sinks into unrighteousness, and his punishment is more severe. Having known holiness, he falls back into brutishness--and his bestial nature becomes more fierce than ever. The holy apostle does not hesitate to equate this turning back with a dog who returns to his own vomit, and with a sow which, having been washed, returns to wallow in the mire.
Whoever knows the Lord Jesus Christ also knows all that is needed for his salvation: he receives sight so as to see impurities, lies and injustice, and he receives the power to flee all of that. Therefore let him not turn back, lest eternal death swallow him up. Let him not tempt God countless times: for, if God was quick to save him the first time, He will be slower the second time; and even slower the third time. Oh, how illumining the apostle's words are, my brethren!
O Lord Jesus, Savior, Almighty and All-Good, do not depart from us in the hour of our weakness; deliver us when the impurities of this world attempt to draw us back to them.
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT MARTYR PANTALEON [PANTELEIMON]
Panteleimon was born in Nicomedia of a Christian mother and a pagan father. His mother was named Eubula and his father Eustorgius. As a young man, he studied the science of medicine. The priest Hermolaus befriended him, and taught him the Christian Faith and baptized him. Panteleimon miraculously cured a blind man whom other doctors had treated in vain; he healed him by the name of Christ and baptized him. The doctors, full of envy, accused Panteleimon of being a Christian, and he went before the Emperor Maximian to stand trial. "He stood before the earthly king in body but in mind he stood before the heavenly King." He freely declared to the emperor that he was a Christian, and in his presence healed a paralytic of his long-standing illness. This miracle drew many pagans to the Christian Faith. The emperor subjected Panteleimon to torture, but the Lord appeared to him on several occasions, and delivered him whole and unharmed. Then Saint Hermolaus, along with Hermippas and Hermocrates suffered. Sentenced to death, Saint Panteleimon knelt in prayer. At that moment, the executioner struck him on the neck with a sword, but i broke as though it were made of wax. The executioner was unable to execute Penteleimon until the saint completed his prayer and gave him permission to do so. His relics possess the ability to heal. Panteleimon was executed under an olive tree which was thereafter adorned with much fruit. "Panteleimon" means "all-merciful," or "all compassionate." The All-merciful God received his righteous soul and glorified him among His great saints. This wonderful martyr suffered honorably for Christ in his youth, on July 27, 304 A.D. Saint Panteleimon is invoked during prayers of the Blessing of Waters and in the Sacrament of Holy Unction, together with Saint Hermolaus and the other unmercenary and wonder-working saints. A most beautiful church dedicated to this saint is located on Holy Mount Athos.
! SAINT CLEMENT, ARCHBISHOP OF OHRID
Clement was a disciple of Saints Methodius and Cyril. After the death of St. Methodius, Clement, under pressure from the Germans, traveled southward from Moravia. Clement and his companions--Gorazd, Nahum, Sava, and Angelarius (together, they were called "The Five")--crossed the Danube River, where they were guests of Emperor Boris Michael. Following this they came to the region of Ohrid. They first founded a monastery in Belica [Velitsa], where Clement's first episcopal see was located. Afterward, he moved to Ohrid, and from there developed his great arch-pastoral and illuminating activity for the entire region. In Ohrid St. Clement erected a church to Saint Panteleimon. He had many disciples, who copied books in the Slavonic script for the Slavic peoples. Saint Nahum especially assisted him in this work. He worked miracles during his life, and his relics manifest a healing power to the present day. Following great labors and faithful service to God, he reposed peacefully in Ohrid, in the year 916 A.D. His wonder-working relics repose in a church formerly dedicated to the Holy Birth-giver of God (The Theotokos), which was re-dedicated to St. Clement.
! BLESSED NICHOLAS, THE FOOL-FOR-CHRIST
Nicholas was from Novogrod, and was the son of wealthy parents. He left his wealth, and ran through the streets as a fool-for-Christ, instructing men through his foolishness. His companion in the same ascesis was Blessed Theodore. Once, in the presence of witnesses, they both ran across a river on the surface of the water. Nicholas reposed in the Lord in the year 1392 A.D.
! THE VENERABLE FEMALE ANTHUSA
After a long solitary ascetic life Anthusa founded a convent of ninety sisters. During the Iconoclastic controversy under Emperor Constantine Copronymos, all ninety nuns were slain, after which the Venerable Anthusa herself died, in the year 759 A.D.
! THE ONE HUNDRED FIFTY-THREE MARTYRS
They were drowned in the sea of Thrace.
! HYMN OF PRAISE
! THE FIVE (SAINTS CLEMENT, NAHUM, ANGELARIUS, SAVA, AND GORAZD)
!
The Five God-pleasers,
Diligent bearers of the honey of the Gospel,
Spread the Faith throughout the wide world,
Until, on the blue lake, they settled--
But with greater effort from there they labored
With the Lord, to sweeten the bitter life of men.
Clement the hierarch, a true servant of God,
Who, much pain and mockery, endured,
At Ohrid, became Christ's banner.
And with him, Saints Nahum, Angelarius, and Sava,
And blessed Gorazd, five in number;
All were men of God, His laborers.
In heaven, for a thousand years, they have lived;
For a thousand years, mankind have they amazed.
In baptizing the people, no labor did they spare,
With glory they were crowned, for God they loved.
The glory of the Five, Ohrid preserves,
As the boast and glory of the Slavs.
! REFLECTION
If you give alms to the poor, know that inasmuch as you do good works for your neighbor, so much and more do you do for yourself. St. Anthony says: "Both life and death come to us from our neighbor." St. Peter Damascene writes: "As the poor should give thanks to God and love the rich who do them good, even more should the rich give thanks to God and love the poor; for they are saved by the providence of God, both now and in the future age, because of their alms. For without the poor, they not only cannot attain the salvation of their souls, but they also cannot avoid the temptations of wealth." Alms which are given out of vanity or with disdain are of no benefit. In earlier times, the wealthy would bring gold to the hermits and beg them to accept it. It was a rare occurrence for the hermits to accept alms gladly, and when they did, it was out of compassion for the rich. The most destitute of men received alms out of compassion!
! CONTEMPLATION
To contemplate the miraculous deliverance of the Israelites from Sisera and his forces (Judges 4):
# How the Lord showed mercy on the enslaved Israelites, hearing their cries, and granted them victory over Sisera;
# How the prophetess Deborah sent a small force to Mt. Tabor against Sisera, who had nine-hundred chariots of iron and an enormous army;
# How the forces of Sisera were scattered, and Sisera himself perished.
! HOMILY
! About the prophesied scoffers of holy things
"Knowing this first, that there shall come in the last days scoffers, walking after their own lusts" (2 Peter 3:3).
Does the mirror change and warp when a scoffer stands before it, laughing and scoffing at it? No, the mirror does not change and warp, but remains the same as it was. Brethren, neither does God change or warp when scoffers laugh and scoff at Him. The unchanging and All-pure God knows that the scoffer scoffs at himself. By his scoffing at the holy things of God, the scoffer warps and deforms himself, while the holy things of God remain intact.
Oh, how many scoffers there already are in our own time! Many--too many--but their multitudes are weaker than the One and Only. What is a mass of dust to a strong wind? You have only to wait, armed with patience, until a strong wind blows.
Far too many scoffers have come, who scoff at God's word. They offer their own words in place of God's word; they offer the unholy in place of the holy, the putrid in place of the healthy and the death-dealing in place of the life-creating. The word of God is like a strong wind, and their words are like dust.
The scoffers are already here--far too many--that scoff at God's works, and still many more will arrive. They praise their works above God's works, and say that the works of their hands are better and wiser than the works of God. Their works are thievery; for everything good that they have built, they have built from God's materials, and according to the likeness of God's creations. All the evil that they have built, they have built from the devil's materials, and according to the likeness of the devil's creations. Therefore, of what will the dust boast? In what will the scoffers boast today or tomorrow, when wild asses will trample over their graves with their hooves?
O All-pure Lord, Your words are Holy and Powerful as a strong wind, and Your works are holy, and they are numberless and measureless. O All-pure Lord, save our tongues from scoffing, and save our lives from the scoffers.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLES PROCHORUS, NICANOR, TIMON AND PARMENAS
All four were numbered among the Seven Deacons and the Seventy Apostles. The remaining deacons were Stephen, Philip and Nicholas. Stephen, the first martyr, is commemorated separately on December 27, and Philip on October 1# Because of his heresy, Nicholas did not enter into the ranks of the saints. The first four do not have separate days of commemoration, but are all commemorated on this day, July 28. Saint Prochorus was consecrated by the Apostle Peter as bishop of Nicomedia. For a time he was in the service of St. John the Evangelist and, on the Island of Patmos, wrote down the Book of Revelation, which he heard from the mouth of St. John. After that, he returned to Nicomedia, where he exerted much effort and labor to convert the people to the Faith. He died a martyr's death in Antioch, where he was slain by unbelievers. Saint Nicanor suffered in Jerusalem the same day as St. Stephen the Archdeacon and, soon after him, two thousand other Christians were slain by the wicked Jews. Saint Timon was a bishop in Arabia, and suffered on the cross for Christ. Saint Parmenas died before the eyes of the apostles, and was mourned and buried by them.
! THE HOLY MARTYR JULIAN
During the reign of Emperor Antoninus, St. Julian crossed over from Dalmatia to Campania in Italy. He was a handsome young man, and his soul was completely devoted to the Lord. En route, he met the soldiers of the emperor, who were on their way to arrest Christians. "Peace be to you, brethren!" Julian addressed them. By such a greeting, and by the gentleness of the young man's countenance, the soldiers suspected that he was a Christian. Julian answered their questions: "I am a Christian, born in Dalmatia." Julian also openly admitted that he was traveling with the goal of converting idolaters to the One Living God. The soldiers beat him mercilessly and finally threw him into a pit, where he remained for seven days without any human sustenance. An angel of God appeared to him and gave him heavenly food. When brought to trial, Julian remained as firm in the Faith as a diamond. Witnessing his courage and steadfastness in the Faith, thirty men converted to Christ the Lord. Sentenced to death, Saint Julian knelt and lifted up his prayer to God, giving thanks to Him for his martyrdom and begging Him to have mercy on all those who would honor his memory. He was beheaded with an axe and gave up his soul to God.
! THE VENERABLE PAUL OF THE MONASTERY OF XEROPOTAMOU
Paul was the son of Emperor Michael Kuropalates. Having an excellent education, rare wisdom and meekness, Procopius (as he was first called) was in his youthful years a subject of astonishment to all of Constantinople. In one of his charters, Emperor Romanus the Elder,called him "the greatest of all the philosophers." Being afraid that his soul would become proud, and desiring that it not perish because of human glory, this brilliant youth dressed in the rags of a beggar and went to Holy Mount Athos, where he received the monastic tonsure from the illustrious Saint Cosmas. After a long period of solitary monastic labor he restored the Monastery Xeropotamou, and shortly after that built the new Monastery of Saint Paul, where he died in old age. When this monastery was consecrated, Emperor Romanus sent a large portion of the Holy and Venerable Cross as a gift, which is preserved there even to this day. It is said that he preached the Holy Gospel in Macedonia and in Serbia. He endured much torment from the wicked iconoclastic Emperor Leo the Armenian, and reposed in the year 820 A.D. At the time of his death, St. Paul said to the brethren: "Behold, the hour comes that my soul has always desired, and which my body has always feared."
! THE HOLY MARTYR EUSTATHIUS [EUSTACE]
This martyr for Christ was a soldier in Ancyra. Brought to trial, he was not afraid of tortures, but freely praised the name of the Lord Christ. The commander Cornelius ordered that his feet be drilled through and threaded with a rope, by which they dragged this man of God to a river, and threw him in. Being saved by the power of God and healed of his wounds, Eustathius appeared before the commander completely in full health. When the commander saw him alive, he was so frightened that he drew his sword and stabbed himself. Eustathius lived for some time longer, and died in the Lord in the year 316 A.D.
! HYMN OF PRAISE
!
! SAINT PAUL OF XEROPOTAMOU
!
The young Paul, the world highly glorified,
And therefore the young prince left royalty,
And imperial prestige, wealth and power,
Decaying opulence and the intrigues of the city,
And fled from the world, fled from everything--
Into the wilderness, where saints conceal themselves,
And save their souls through strict ascesis,
And day and night praise God, and glorify Him.
His place, Paul found on Mt. Athos
There his soul to make into new dough,
That like that of a child, his soul might become,
And that he might find his own center and that of the world.
Whatever Paul desired, he accomplished,
And on his difficult path God helped him,
Delivering his body from passions destructive,
And from the power of the demons, delivering his soul,
With Christ's Cross of Crucifixion, he baptized all,
Both body and soul. And as a candle pure,
He was beautifully kindled by the love of God,
And to the heavens he was borne by angels of God.
For young Paul's abandonment of the earthly kingdom,
God greatly glorified him in the Heavenly Kingdom.
! REFLECTION
Concerning kindness, St. Nilus of Mt. Sinai writes: "My son, always strive to be simple and kind. Do not have one thing in your heart and another thing on your tongue, for this is a ruse and a lie. Be truthful and not false, for falsehood is of the evil one. Do not return evil for evil, but if someone does you evil forgive him, that God may also forgive you. If you are tormented by the remembrance of wrongs, pray to God for that brother (the evil doer) with your whole heart, and the remembrance of evil thoughts will flee from you."
It is told how a young man decided to serve a very petulant elder, so that God would forgive him his own sins. He endured twelve years in this most torturous service and went to God. A great spiritual father saw the soul of the young man in Paradise as he was praying to God for the evil elder: "Lord, as You had mercy on me because of him, have mercy on him according to Your great goodness, and because of me, Your servant." After forty days this petulant elder died and, again, that spiritual father saw the soul of that elder reposing in the Kingdom of Heaven. What beautiful and wondrous kindness this patient youth showed--in truth, miraculous!
! CONTEMPLATION
To contemplate the miraculous burning of the sacrifice on the rock (Judges 6):
# How an angel appeared to Gideon, and Gideon ran to bring bread and meat to offer hospitality to the angel;
# How the angel touched the bread and meat with the top of the staff, and a fire arose and consumed the sacrifice.
! HOMILY
! About the irrational questions of the irrational ones
"Where is the promise of his coming?" (2 Peter 3:4).
Thus do scoffers question the holy things of God. Those who scoff at the words and works of God also scoff at the promises of God. We the faithful say that the Lord will come, and they scoff and say: "When will He come, since He has not yet come?" We say that the Lord has promised to come, and they scoff and say: "Where is the promise of His coming?" "Our fathers lived and died waiting for His coming," they say, "and He did not come. Will you, then, still wait for Him?" Yes, brethren, we wait for Him, and we will continue to wait for Him. He has promised to come, and He will come. The Holy apostle confirms the promise of the Lord. Behold, he heard it from the lips of the Lord Himself; from the lips from which only truth proceeds. //With the Lord ... a thousand years is as one day// (2 Peter 3:8). With these words, the apostle shuts the mouths of the scoffers, and teaches us patience. Soon it will be two thousand years since the Son of God gave His promise, that He would return in power and glory to save the faithful and punish the faithless. "But He has not yet come!" say the scoffers. O ignorant scoffers, are two thousand years as long for God as they are for you? Do you not think that, for Him, two thousand years are as two days? Does He have to fulfill all of His promises in the course of two days? He, the Immortal One, is not in a hurry as you mortal ones. You are in a hurry for you will shortly die; but He is immortal, and is not afraid of death. When He comes, He will find you in your graves. The trumpet of the angel will awaken you and you will rise, only to see that He is truthful. You will then be lowered into the dark kingdom of the slanderers--for you slandered the Lord of Truth and accused Him of a lie. Brethren, the Lord does not want us to speculate about the day and the hour when He will come; He only desires that we believe that He will come. When He comes, whether we are dead or alive, we will see His coming. Is this not enough?
O Lord God, Our Savior, teach us patience and strengthen us in the Faith. You will come, we know.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR CALLINICUS
Callinicus was born in Cilicia. He was raised from his early youth in Christian piety. Abandoning all, he went forth to preach the Holy Gospel. In Ancyra the pagan Prince Sacerdos arrested him. When the prince threatened him with cruel tortures if he did not worship the idols, St. Callinicus answered him: "To me, suffering for my God is most welcome, as bread is to a hungry man." After consigning him to cruel tortures and beatings, the prince had iron shoes, with nails protruding inside, placed on Callinicus's feet. Then he ordered that he be driven to the city of Gangra, for the prince was afraid to torture him anymore, or to kill him in Ancyra--for many, observing the heroic patience of this holy man, had already converted to the Christian Faith. Along the way the soldiers became thirsty, but there was no water. St. Callinicus prayed to God, and brought forth water from a rock. When they arrived in Gangra, the torturers prepared to throw St. Callinicus into a fiery furnace. The saint prayed to God, saying: "I give thanks to You, O Heavenly Father, for making me worthy of this hour, in which I die for Your holy name." Then he entered the fire. When the fire died down, they found his dead body whole and unharmed by the fire. He suffered honorably, and was crowned with the wreath of eternal glory in about the year 250 A.D.
! THE HOLY FEMALE MARTYR SERAPHIMA
Seraphima was a maiden from Antioch. She lived in the home of a certain Sabina, the wife of a senator, whom she converted to the Christian Faith. Hearing about her, Virilus, a persecutor of Christians, ordered that Seraphima be brought before him. Since Seraphima remained unwavering in her faith, Virilus ordered that she be thrown into prison, and ordered several young men to spend the night with her and defile her. Seraphima was praying to God when the young men arrived at the prison gates. Suddenly an angel of God, with fiery sword in hand, appeared in a blaze of glory before them, and they fell as if dead, completely unconscious and incapable of movement. The next day the torturer begged Seraphima to restore the young men and, through her prayer, she brought them to consciousness. Ascribing all of this to magic, Virilus ordered that this holy virgin be burned with candles and then beaten with rods. While they were beating her, a piece of the rod broke off and deflected, striking Virilus in the eyes and blinding him. Finally they beheaded this handmaiden of Christ with the sword and she gave up her soul to God. The pious Sabina honorably buried her body, from which healing myrrh began to flow. St. Seraphima suffered during the reign of Emperor Hadrian (117-138 A.D.).
! THE HOLY FEMALE MARTYR THEODOTIA
Theodotia was a young widow with three children. With St. Anastasia (December 22), Theodotia labored in the work of God in Thessalonica, and was completely dedicated to a pious life. During the time of Diocletian's persecution she was sentenced to death and thrown into a fiery furnace together with her children. Their holy souls soared into the Heavenly Kingdom.
! THE HOLY MARTYR EUSTATHIUS OF MTSKHETA
Eustathius was a Persian, born in the village of Arbuket. At age thirty, he came to the [Georgian] city of Mtskheta. Seeing how the Christians there lived and believed, he received baptism. He was tortured for Christ, and was beheaded in Tbilisi in the year 589 A.D. His relics repose in the cathedral church in Mtskheta, and give healing to those who believe.
! HYMN OF PRAISE
! SAINT SERAPHIMA
!
Seraphima, dear to the angels,
Completely innocent in soul and body,
In all thoughts, kindly,
Was tormented for many days
For Christ the Lord, the Immortal.
The godless prince, to the temple brought her
To offer sacrifice to the idols:
Saint Seraphima replied:
"Of the One God, I am a handmaiden,
Of the Holy Spirit, my body is a temple!
In virginity, my body I preserve,
That, a sacrifice to God, I might offer:
The temple of my body as a sacrifice to the Lord.
As much you like, torture my body,
But my soul you will never kill.
The soul is alive both before and after death;
By fire or sword, destroy it you cannot.
For the soul, the body was created,
And by the soul, the body is blessed.
From God, the soul into the world comes,
That, while in the body, the Lord it may glorify.
Glory to God, the Triune God!
Glory to God, my Creator!"
! REFLECTION
By true repentance, tears, prayer and good works, the most defiled soul can be completely cleansed and changed. Therefore, be careful that you do not maliciously recall the sins of a repentant sinner, but offer thanksgiving to God, and be astonished at how light is made from darkness, and pure water from a stagnant pool. The Egyptian Pharaoh Amases was of lowly birth,. When he became king, men respected him very little, remembering his origin. In order to outwit the people and to gain their respect, he took a metal basin in which, according to custom, the feet of the visitors to the palace were washed. He ordered the basin to be melted down, and from its metal, to make a likeness of a certain idol. The pharaoh then placed this idol on the street. Seeing this idol, the people began to worship it, and render it divine honor. Then the pharaoh revealed what this idol had been made from. The people understood that the pharaoh wanted to show them that they should no longer dwell on the what he once was, but what he was now--and they began to render the pharaoh the respect due to royalty.
! CONTEMPLATION
To contemplate the miraculous sign that God showed Gideon (Judges 6):
# How one night only the fleece was wet with dew and the remaining ground was dry; and how the second night, all the ground was wet with dew, and the fleece was dry;
# How the first signified the Israelites in the midst of the pagan world (until the coming of Christ) and after that, the pagan world under grace, and Israel without grace (after the coming of Christ).
! HOMILY
! About the delaying of the Dreadful Day, by God's mercy
The Lord is not slack concerning His promise, as some men count slackness: but is long-suffering to us-ward, not willing that any should perish, but that all should come to repentance (2 Peter 3:9).
Brethren, the mercy of God delays //that day which burns like a furnace//(Malachi 4:1), according to the words of the Prophet Malachi. Therefore, let the scoffers be ashamed, who scoff at the promise of God and say: //Where is the promise of His coming?// (2 Peter 3:4). God has not forgotten His promise--the sinners themselves have forgotten it. According to His immeasurable mercy, God is waiting for sinners to come to their senses, repent and prepare themselves for that day that will not be repeated. Behold, that day is not like the many days that are given to men for the sake of repentance, and to prepare for their encounter with God. That day is unique, and it differs from all other days, for it does not come for the sake of repentance, but rather, for judgment. Just as the Dreadful Judgment is unique and unrepeatable, so is that day unique and unrepeatable.
God does not desire that any man be lost. He did not create man for death, but for salvation. Is there a gardener who sows vegetables, yet desires that his vegetables dry out and perish? God is wiser and more compassionate than all men. God has only one desire: that all men repent and turn away from evil. How the husbandman rejoices when a withered vine comes back to life, becomes green again, and brings forth fruit! How much more, then, is the joy of God and His angels when the souls of men, withered from sin, turn to Him and become young again with tears of repentance, and bring forth the fruit of repentance!
O Lord, merciful Lover of Mankind, help sinners to feel Your mercy and pity for them--to feel it and repent, and to turn away from their wicked ways.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR HYACINTH
A young man and a courtier at the court of Emperor Trajan, Hyacinth was a secret Christian. Once, when Emperor Trajan and his entire court solemnly offered sacrifices to the idols, Hyacinth refrained from this abominable activity. For that he was accused and brought before the emperor to be judged. The emperor counseled him to deny Christ and offer sacrifices to the idols. But Hyacinth remained as firm as a diamond and said to the emperor: "I am a Christian and I honor Christ. I worship Him, and to Him alone do I offer myself as a living sacrifice." Beaten, spat upon and flayed, this holy martyr was thrown into prison. By order of the emperor, he was given nothing to eat except sacrifices offered before the idols. Hyacinth refused to partake of them and after eight days died in prison. Then the prison guards saw two radiant angels in the prison: One angel covered the body of the martyred Hyacinth with his radiant vesture, and the other angel placed a glorious wreath on his head. The entire prison was illuminated and fragrant. The youthful Hyacinth honorably suffered and was crowned with eternal glory in the year 108 A.D.
! SAINT ANATOLIUS, PATRIARCH OF CONSTANTINOPLE
Anatolius was at first a presbyter in the Church at Alexandria, but following the death of Patriarch Flavian, he was elevated to the patriarchal throne of Constantinople, in the year 449 A.D. During his time, the throne of Constantinople was recognized as equal to the throne of Rome, by the Ecumenical Council held in Chalcedon in 451 A.D. He struggled greatly for the purity of the Orthodox Faith and suffered much at the hands of the heretics, until he was slain by them in the year 458 A.D., during the reign of Pope Leo the Great. Anatolius governed the Church for nearly nine years, and took up his heavenly habitation among the holy hierarchs in the Kingdom of God.
! THE VENERABLE ALEXANDER [AKIMETES]
Alexander was born in Asia and educated in Constantinople. After the completion of his schooling, he devoted himself to military service and became an officer. Reading Holy Scripture, he came across the words of the Savior: //If you seek perfection, go, sell your possessions and give to the poor. You will then have treasure in heaven. Afterward come back and follow me// (St. Matthew 19:21). These words had such an effect on Alexander that he immediately sold and distributed all that he had, and withdrew into the wilderness. After long ascetic struggles and labors in purifying himself, he established the monastery of the Sleepless Ones, with a special rule. According to this rule, the divine services [offices] in his community were carried on night and day without interruption. The brotherhood was divided into twenty-four relays [cursus]. Each relay knew its appointed hours of the day and night, and went to church to continue the reading and singing of the preceding relay. Carrying nothing with him, Alexander traveled much throughout the eastern regions, enlightening men with the Faith of Christ, disputing with heretics, working miracles by the grace of God, and growing old in service to the Lord. He finally ended his earthly life in Constantinople in the year 430 A.D.--where his relics manifested the miraculous power and glory through which God glorifies His holy servants.
! VENERABLE ISAIAH, THE RECLUSE [ANCHORITE]
Isaiah lived a life of asceticism at Scetis in Egypt, during the fifth and sixth centuries. He is mentioned in the book of Saints Barsanuphius and John (Answer 249 and others) as a man possessing exceptional sanctity. He wrote many instructions for monks and anchorites. But very few of his writings remain, many having been destroyed by the Muslims. St. Isaiah said: "The mind, before it awakens from the sleep of slothfulness, resides with the demons." "The crown of all good works consists in this: that a man place all his hope in God; that he find recourse in Him once and for all with his heart and strength; that he be filled with compassion for all, and that he weep before God, imploring His help and mercy." What is the sign to a man that a certain sin is forgiven? "The sign that a sin is forgiven is that the sin does not generate any activity in your heart and that you have forgotten it to such a degree that, in conversation about a similar sin, you do not feel any inclination toward that sin, but rather consider it something totally foreign to you. That is the sign that you are completely pardoned." Prayer and asceticism are in vain for a man who conceals within himself malice toward his neighbor and the desire for revenge. "Watch with all your strength that you do not speak one thing with your mouth and have something else in your heart." "The crown of good works is love; the crown of passions is the justification of one's sins."
! HYMN OF PRAISE
!
! SAINT ALEXANDER [AKIMETES]
!
Venerable Alexander, saint of God,
Established the temple of the "Sleepless Ones", a holy monastery,
That in it the Lord might be glorified, hymned and magnified.
Of this holy monastery, the story still carrys on.
Even in our hearts, the community of heaven lives--
In your heart you must glorify the Living God.
In our hearts, let sleepless prayer be counted;
As a flame let unquenchable love stand,
With grace let the Holy Spirit warm our hearts,
Let Christ, His words throughout our heart, sow,
And let the angels in that temple keep vigil day and night.
Farther from us, farther from them, let the furious ones hide.
Let the Holy Virgin exude myrrh in that temple,
And with her, include the apostles and all of the saints,
And all the chosen ones of God--glorious martyrs,
And all virgins for the sake of Christ, and all hermits.
In our hearts, let the Liturgy be served,
And let the Wisdom of God be magnified unremittingly.
! REFLECTION
Love is all-powerful. It can, among other things, ease the lot of the souls of deceased sinners. The Orthodox Church confirms this resolutely, and endeavors on behalf of the deceased to offer prayers and perform corporal works of mercy. Abundantly rich in every spiritual experience, the Church knows that prayers and works of mercy on behalf of the deceased help those in the other world. Before her death, St. Athanasia the Abbess (April 12) made her sisterhood promise that, for forty days after her death, they would prepare a table for the poor and needy. The sisterhood carried out her command for only ten days and then ceased. The saint then appeared, in the company of two angels, and said to the sisters: "Why have you transgressed my commandment? Know that God's mercy is invoked by works of mercy and by the prayers of the priest for the souls of the deceased, over the course of forty days. If the souls of the departed are sinful, they receive through this forgiveness of sins from God--and if they are not sinful, then the corporal works of mercy performed for them serve to aid the salvation of the benefactor himself." Naturally, works of mercy and prayer are thought of here in connection with great love toward the departed souls. In truth, such works of mercy and prayer do help.
! CONTEMPLATION
To contemplate the miraculous transformation of the rod into a serpent, and again, the serpent into the rod (Exodus 4):
# How the Lord, Who created the serpent and the rod from dust, can--by His own power, and for the sake of higher goals--transform the dead into the living, and the living into the dead;
# How the Lord can, according to my faith and prayer, return my soul (withered and deadened by sin) to life.
! HOMILY
! About the joy of faith in Christ
"Although you have never seen Him, you love Him, and without seeing you now believe in Him and rejoice with inexpressible joy touched with glory" (1 Peter 1:8).
These are the words of the Holy Apostle Peter. He saw the Lord and loved Him. He looked at the Lord and believed in Him. Precisely because of that, he praises the love of those who have not seen the Lord and the faith of those who have not seen Him with their eyes. Our Lord Himself said: //Blessed are those who have not seen and yet have believed// (St. John 20:29). Blessed are they who have not seen the Lord as the apostle saw Him, but nevertheless love Him with apostolic love. Blessed are they who have not seen the Lord as the apostle saw Him, but nevertheless believe in Him with apostolic faith!
O my brethren, even if we do not see the Lord, we see His works, which have enlightened the entire history of mankind, from one end to the other, and have illumined every created thing under the heavens with a spiritual significance. Even if we do not see the Lord, we see His Holy Church--built upon His All-holy and Pure Blood--of the great number of saints and righteous ones and the countless souls baptized in His Name throughout the ages of ages. Even if we do not see the Lord face to face, as the apostles saw Him, we believe that He is among us in the Body and Blood by which we receive according to His commandment; and in receiving His Body and Blood we rejoice with unspeakable joy.
Brethren, the Lord is alive and the Lord is near! That is our unwavering faith, and that is the spark of fire that ignites our hearts into a flame of love for the Lord, living and near.
To know that, out of love, our Lord the Creator descended to the earth, and revealed Himself as a man for our sake, and to further know that He was dead and that He showed Himself alive--what stronger foundation does our faith need, and what stronger justification does our love require?
Brethren, the Lord is alive and near. Even in our own day. He reveals Himself to many righteous souls who serve Him with patience.
O Living Lord, You Who were dead and are alive, enliven in us faith and love until our last breath on earth--that by faith and love we may be made worthy to see You face to face, as did Your holy apostles.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLES SILAS, SILVANUS, CRESCENS, EPAENETUS AND ANDRONICUS
They were numbered among the Seventy Apostles. St. Silas was sent from Jerusalem to Antioch with Paul and Barnabas to settle the dispute between the faithful there regarding circumcision: namely, whether or not it was necessary to circumcise pagans when they convert to Christianity. //Then pleased it the apostles and elders, with the whole Church, to send chosen men of their own company to Antioch with Paul and Barnabas; namely, Judas surnamed Barsabas, and Silas, chief men among the brethren// (Acts 15:22). After this, Silas traveled with Paul throughout Asia and Macedonia, and was appointed as the bishop in Corinth, where he died peacefully.
St. Silvanus assisted both of the Chief Apostles. //By Silvanus, a faithful brother unto you, as I suppose, I have written briefly, exhorting, and testifying that this is the true grace of God wherein ye stand//(1 Peter 5:12); //For the Son of God, Jesus Christ, Who was preached among you by us, even by me and Silvanus and Timotheus, was not yea and nay, but in him was yea// (2 Corinthians 1:19). As Bishop of Thessalonica, Silvanus labored much and suffered much, until he finally exchanged this earthly life for the heavenly life.
St. Crescens was a companion of the Apostle Paul and then Bishop of Galatia and a missionary in Gaul--where he died as a martyr for Christ during the reign of Emperor Trajan. //For Demas hath forsaken me, having loved this present world, and is departed unto Thessalonica; Crescens to Galatia, Titus unto Dalmatia// (2 Timothy 4:10).
St. Epaenetus is mentioned by the Apostle Paul and was Bishop of Carthage. //Salute my well beloved Epaenetus, who is the firstfruits of Achaia unto Christ// (Romans 16:5).
St. Andronicus, Bishop of Pannonia, is also commemorated separately on May 17. //Salute Andronicus and Junia, my kinsmen, and my fellow prisoners, who are of note among the apostles, who also were in Christ before me// (Romans 16:7).
! THE HOLY PRIESTLY-MARTYR VALENTINE
Valentine was the bishop of the Italian City of Interamna. He cured the brother of the Roman tribune, Frontanus, of an illness. When Cherimon, the son of the renowned philosopher Craton, took ill, Craton, taking the advice of Frontanus, summoned Bishop Valentine to Rome. Cherimon was completely contorted, and so bent over that his head was between his knees. Valentine seculded himself in a room with Cherimon and spent the entire night in prayer. The next day he brought Cherimon out completely healed and presented him to his father. Then Craton, his entire household, and three of his disciples were baptized. Cherimon left the home of his father and went with Valentine. Abundius, the son of the Roman eparch, was also baptized then. Enraged at this, the eparch arrested Valentine and beheaded him after much torture. Three disciples of Craton: Proclus, Abibus and Apollonius, were also beheaded then. Abundius took their bodies and buried them with honor. They all suffered in the year 273 A.D. and became citizens of the Heavenly Kingdom.
! THE PRIESTLY-MARTYR POLYCHRONIUS, BISHOP OF BABYLON
When Emperor Decius overran Babylon, he captured Polychronius with three presbyters, two deacons and two baptized princes, Abdon and Senin. Polychronius made no reply before the emperor and remained silent, while St.Parmenius, a presbyter, spoke on behalf of all. The emperor took the bishop and priests to Persia, to the city of Kordoba, where they were beheaded. Decius took the princes Abdon and Senin to Rome, and there they were thrown to the wild beasts, then slain by the sword. They all suffered honorably in the year 251 A.D.
! SAINT JOHN THE SOLDIER
John was secretly a Christian. He was sent by Emperor Julian the Apostate to slay Christians, but helped them to hide instead. Julian cast him into a prison in Constantinople. When the evil Emperor Julian perished, John gave himself over to a life of asceticism, living in purity and holiness. He died peacefully in old age. After his death, he appeared to those who needed his help. Prayers directed to St. John are of help in tracking down robbers.
! THE VENERABLE MOTHER ANGELINA
Angelina was a Serbian Princess [Despotica]. Her relics repose in the Monastery of Krušedol (see her life on December 12).
! HYMN OF PRAISE
!
! SAINT POLYCHRONIUS
!
The pagan ruler, the terrible Emperor Decius,
In fury cried out: "O Polychronius,
Why do you not honor the gods of Rome, O Elder?
The royal commands, why do you not obey?"
But the saint said nothing, and remained silent.
Again the emperor asked him and the saint did not speak.
"This man is a mute!" said Decius.
"Our father is not a mute," Parmenius replied,
But by not speaking he keeps his mouth pure,
H ekeeps his mouth pure by the command of Christ:
//Give not that which is holy unto the dogs,
//
//Neither cast ye your pearls before swine!
//
The saint is guarding his pearl, keeping it to himself,
That he not sully his mouth by speaking with you."
Decius was enraged like never before,
And demanded that Parmenius's tongue be severed.
They cut off his tongue--but to him, what did that mean?
The saint's speech was now more beautiful, and stronger.
The Lord fights for His zealous servants,
And guards them from shame and the mockery of men.
! REFLECTION
It is necessary to distinguish a sinner from a penitent. If you have taken it upon yourself to rebuke a sinner, take care that you do not rebuke the penitent also. The Parable of the Prodigal Son demonstrates how dear a repentant sinner is to God. Therefore, let one who has become dear to God, be very dear to you. One time, a monk succumbed to sin, for which he was banished from his monastery. This monk went to St. Anthony, confessed his sin, repented, and remained with Anthony for a period of time. Then Anthony sent him back again to his monastery, but they did not receive him, and again drove him out. Again the penitent went to St. Anthony. Again, Anthony sent him back to the monastery, with a message to the fathers there: "A ship suffered shipwreck and lost its cargo, and only with great difficulty did that boat reach the harbor--and you want to sink even that which was saved from sinking!" Hearing this wise message, the fathers received the penitent brother into the monastery with joy.
! CONTEMPLATION
To contemplate the miraculous victory of Gideon over the Midianites (Judges 7):
# How Gideon gathered thirty-two thousand soldiers and set out against the Midianites;
# How God commanded him to reduce the number, so that the Israelites would not brag about themselves and say that they were victorious, and not God;
# How Gideon selected only three hundred soldiers, and defeated the Midianites, who were numerous "as grasshoppers" (Judges 7:12).
! HOMILY
! About the coming of the Dreadful Day of the Lord
"But the day of the Lord will come as a thief in the night, in the which the heavens shall pass away with a great noise, and the elements shall melt with fervent heat, the earth also and the works that are therein shall be burned up" (2 Peter 3:10).
Dreadful is the day of the Lord, Oh, how inexpressibly dreadful! It is dreadful because of its inexorable justice, and its unexpectedness. The Lord Himself commanded: //Watch therefore, for ye know neither the day nor the hour//(Matthew 25:13), and the apostle, who heard these words with his own ears, repeats them. He who is afraid of thieves watches every night, so that the thieves will not surprise him. He who fears the Day of the Lord watches every day and every hour, so that the day and the hour will not catch him unprepared, in sin. We are so accustomed to the ordinary flow of time--the predictable passage of day and night--that we cannot comprehend the coming thunder of that day, which will overshadow all other days, which will stop the wheel of time and smash its slender spokes. It will be as if the sun were to thrust its fiery face over millions of wax candles, overwhelming their light and melting them away. Dreadful, dreadful, dreadful is the Day of the Lord! When that day raises its fiery face over the candles of the days of our present lives, these will be snuffed out and darkened; and the heavens, by which the present average days are counted, //shall pass away with great noise,// and the material elements, including earth, water, air and fire, //shall melt with fervent heat//. They will cease to be, and everything will be new. Our earthly homeland and all its works will be burned up. They will cease to be. Everything will be new. All our works will burn up--if God does not feel sorry for His works, why should He then feel sorry for our works? God will not seek works, but workers. All workers will appear before Him for judgment; but their works He will burn up. And all will be new. He who is to be condemned, will be condemned; he who is to be rewarded, will be rewarded--for all eternity. Dreadful, brethren, truly dreadful is the Day of the Lord! It is dreadful because of its unexpectedness, and because of the inexorable justice of God.
O Just Lord, make us sober and vigilant! Command Your holy angels to keep us in sobriety and vigilance, so that sin does not inebriate us and lull us to sleep.
To Thee be glory and praise forever. Amen.
! SAINT EUDOCIMUS
Eudocimus was born in Cappadocia of devout parents, Basil and Eudocia. At the time of the Emperor Theophilus (829-842 A.D.), Eudocimus was a young officer in the army. Even as an officer, he exerted all his effort to live according to the commandments of the Holy Gospel. Preserving his purity undefiled, he avoided conversing with any woman except his mother. He was merciful toward the unfortunate and needy, conscientious in reading holy books, and even more conscientious in his prayers to God. He avoided vain amusements and idle talk. "Amid the throngs and worldly vanity, he was a lily among thorns, and as gold in the fire." Because of his extraordinary virtures the emperor appointed him governor of Cappadocia. In this high position, Eudocimus strove to be righteous before God and men. By God's providence he died at an early age, in his thirty-third year. His relics were found to possess healing properties. An insane man touched his tomb, and was immediately healed; likewise a paralytic child stood up and was made whole. After eighteen months, his mother opened his coffin and found his body to be as though it were still alive, without any signs of decay or corruption. A wonderful fragrance arose from it. His relics were later translated to Constantinople and buried in a new church dedicated to the Holy Theotokos, built by the parents of this righteous Eudocimus.
! THE HOLY FEMALE MARTYR JULITTA
Julitta was from Caesarea, in Cappadocia. When she had a dispute with her neighbor over some property, the neighbor went to the judge and denounced Julitta as a Christian, which at the time placed her outside of the protection of the law. St. Julita gladly denied her property rather than her Faith. However, even after this the evil pagans did not leave her in peace, but tortured her, and finally burned her to death in the year 303 A.D. Thus, this follower of Christ sacrificed her estate and her body for the sake of the eternal salvation of her soul.
! SAINT JOSEPH OF ARIMATHEA
The noble Joseph, a wealthy man and member of the Jewish Sanhedrin, was secretly a follower of Christ. //Now when it was evening, there came a certain rich man of Arimathea, Joseph by name, who was himself a disciple of Jesus//(Matthew 27:57); //Now after these things Joseph of Arimathea, because he was a disciple of Jesus (although for fear of the Jews a secret one), besought Pilate that he might take away the body of Jesus// (John 19:38). Joseph and Nicodemus removed the body of Christ from the Cross, and placed it in Joseph's sepulchre. As a result of this he was bound by the Jews and thrown into prison. There the resurrected Lord appeared to him and convinced him of His resurrection. The Jews later released Joseph from prison and banished him from his fatherland. He traveled throughout the world preaching the Gospel of Christ, and brought the good tidings [news] even to England, where he reposed in the Lord.
! SAINT JOHN THE EXARCH
John was a distinguished Bulgarian priest and theologian during the time of Tsar [Emperor] Simeon (892-896 A.D.). He translated the //Hexaemeron//[Six Days] of St. Basil and the //Exact Exposition of the Orthodox Faith// of St. John Damascene into Slavonic. He died peacefully in the Lord.
! HYMN OF PRAISE
!
! SAINT JOSEPH OF ARIMATHEA
Joseph, a wealthy and noble man,
Was not tempted concerning Christ the Crucified,
But when the sun darkened and the earth shook,
He, to Pilate, went and brought him news
That the Lord had died, the Giver of life;
And so the secret disciple became public.
And when the Revealed one was concealed, the concealed one came
out into the open,
Thus Joseph, the wise, in a day became famous.
With Nicodemus, the body of Christ he took,
And in his garden, in a new tomb, laid it.
The Jewish spies heard and reported it,
And in chains, the righteous Joseph they put.
In the dark prison, Joseph languished
While his Lord in hades shone forth.
Joseph pondered his memories of Christ,
Recalling His wondrous works,
And His miracles, sayings and prophecies many.
While near Him, he had stood in the presence of God:
But now all was dark, without and within.
Dark days, nights, evenings and mornings,
After the brilliant radiance of the shining sun!
Oh, desperate darkness, darker than hades!
But lo, suddenly in the dungeon it is dawn;
The Risen One appears to the fettered servant.
O Joseph, brave and noble,
Neither, concerning the Risen One, were you tempted.
Of the death of Christ, Pilate you informed,
And recognized and glorified the Risen One.
Let the land of Britain honorably glorify you,
For you sowed her first seed of salvation.
! REFLECTION
Ascetics in the wilderness labor to cut off their own will and live according to the will of God. Some erroneously think that the hermit lives completely in isolation. No hermit thinks this. He lives in the company of God, His angels and the saints. Wherever a man's mind is, there also is his life. The mind of the hermit dwells among the greatest, most pure and most numerous company in which a man can possibly dwell. Abba Mark once reproached St. Arsenius the hermit: "For what reason do you flee from our company and from conversation with us?" Arsenius replied: "God knows that I love you all, but I cannot be with both God and man. In heaven, thousands, and thousands of thousands have but one will; but with men there are many and various wills. That is why I cannot leave God, and be with men."
! CONTEMPLATION
To contemplate the punishment from God that befell Abimelech and the Shechemites (Judges 9):
# How Abimelech, with the help of the men of Shechem, slew seventy of his brethren;
# How Abimelech then slew the Shechemites, plowed their city under and sowed it with salt;
# How, after many victories, Abimelech was killed by a woman who hurled a piece of a millstone onto his head from a tower;
# How the curse of Jotham, the son of Gideon, came upon the Shechemites and Abimelech.
! HOMILY
! About the last awaiting
"Wherefore, beloved, seeing that ye look for such things, be diligent that you may be found of him in peace, without spot and blameless" (2 Peter 3:14).
Brethren, what is our last awaiting? In the night, we await the day, and in the day, we await the night; and again the day, and again the night. But this awaiting is not our last awaiting. Brethren, what is our last awaiting? In times of joy we tremble, waiting for sorrow; and in sorrow, we wait with hope for joy; and again sorrow, and again joy. But not even these awaitings are our last awaiting. Brethren, our last awaiting is the awaiting of the judgment of God. When the judgment of God comes--the Dreadful Day //which burns like a furnace// (Malachi 4:1)--then we receive all that we deserve; for some it will be a day that changes not into night, while for others it will be night that changes not into day; joy for some, without change into sorrow, and sorrow for others, without change into joy. Brethren, that is the last awaiting of the human race--whether we know it or not; whether we think about it or not.
Yet, you faithful should know this, and should think about it. Let this knowledge be the zenith of all your knowledge, and let this thought direct all your other thoughts. To the knowledge and contemplation of all this, add that which is most important: your diligence, //that you may be found of Him in peace without spot and blameless// [pure and blameless]. Be diligent to be pure in mind and in heart, blameless in your conscience and at peace with God. Only then will the last awaiting not terrify you with its unexpectedness, nor will it hurl you into the night without day, or into the sorrow without joy. As everything else in the life of the Lord Jesus was unexpected by man, so also His Second Coming will be unexpected--in power and glory. Unexpected was His birth of the All-holy Virgin; unexpected was His poverty; unexpected was His miracle-working, His every word, His humiliation and voluntary death, His Resurrection, His Ascension, His Church and the spreading of His Faith. His Second Coming too will be unexpected--a shock more fearful than all others.
O Lord, O righteous Judge, how shall we meet You, who are not clad in purity, in blamelessness or in peace? Help us! Help us--that we may prepare, as much as possible, for the dreadful encounter with You.
To Thee be glory and praise forever. Amen.
! SAINT ANDREW, ARCHBISHOP OF CRETE
Andrew was born in Damascus of Christian parents, and he was mute from birth until the age of seven. When his parents brought him to church and he received Holy Communion, he began to speak. Such is the power of Divine and Holy Communion. At age fourteen, Andrew went to Jerusalem and was tonsured in the Lavra of St. Sabas the Sanctified. By virtue of his understanding and asceticism, he surpassed many of the older monks and was an example to them. After a while the patriarch took him as his personal secretary. When the Monothelite heresy--which held that the Lord Jesus did not possess a human will, but only a divine will--began to rage, the Sixth Ecumenical Council was convened in Constantinople, in the year 681 A.D. during the reign of Constantine IV [Bearded One]. Theodore, the Patriarch of Jerusalem, was unable to attend the council but sent Andrew (at the time an archdeacon) as his representative. There, Andrew displayed his splendid gifts, his oratory, his zeal for the Faith, and his rare prudence. Having assisted in strengthening the Orthodox Faith, Andrew returned to his duties in Jerusalem. Later, he was elected and installed as the Archbishop of the Island of Crete. As archbishop, he was greatly loved by the people. Andrew was very zealous for Orthodoxy and vehemently resisted all heresies. Through his prayers he worked miracles, including driving the Saracens from the Island of Crete. Andrew wrote many books of instruction, hymns and canons, of which the most renowned is the Great Canon of repentance, read on the Thursday of the fifth week of the Great Lenten Season. His outward appearance was such that, "seeing his face and hearing his words flowing like honey, everyone found delight and mended their ways." Finally, while returning from a sea journey to Constantinople, Andrew foretold that his death would occur before he arrived in Crete. And so it happened. As the ship sailed near the island of Mitylene, this beacon of the Church finished his earthly life and his soul took up habitation in the Kingdom of Christ, in the year 721 A.D.
! SAINT MARTHA
Martha was the mother of St. Simeon of the Wonderful Mountain (May 24). Dedicated with all her soul to the Faith, she did not think of marriage. When her parents betrothed her to a young man, Martha thought of leaving the home of her parents and withdrawing from the world. Then St. John the Baptist appeared to Martha and counseled her to fulfill the will of her parents by entering into marriage, which she did. From this marital union, the wondrous St. Simeon, ascetic of the Wonderful Mountain, was born. St. Martha had the regular habit of rising at midnight for prayer. With great compassion she helped the poor, visited the orphaned, and served the sick. A year before her death she saw a multitude of angels with candles in their hands, and learned from them the time of her death. Upon learning this, Martha dedicated herself to prayer and good works with even great zeal. She died peacefully in the year 551 A.D., and was buried near the pillar of her son, Simeon the Stylite. After her death, she appeared many times to instruct people and to heal the sick. Her most significant appearance on record was to the abbot of Simeon's monastery. Following the burial of St. Martha, the abbot placed a votive candle on her grave, with the understanding that it should never be extinguished. But after a certain time, people became lazy, and the lamp went out. Then the abbot became ill, and the saint appeared to him and said: "Why do you not burn a votive candle on my grave? Know that I am not in need of the light from your candles, since I have been found worthy before God, the Eternal Heavenly Light--but you need it. When you burn a light on my grave, you entreat me to pray to the Lord for you." It is obvious from this that the goal of our veneration of the saints is to entreat them, as those worthier than we are, to pray to God for us and for our salvation.
! HYMN OF PRAISE
!
! THE DIVINE PROVIDENCE OF GOD
!
In His Divine Providence, miraculous is the Lord;
To Andrew, the mute, He gave a clear voice,
And the mute, His audible trumpet, made
As once He made Saul (Paul) the pillar of His Church.
In vain from marriage did the holy Martha shun;
To the will of God she had to bow down.
To marriage God's providence led Martha--
That for God and the world, a saint to bear!
Whoever gives himself to God, gives to the Best,
And his human will he overcomes by that of God.
My child, without the Lord, plan nothing,
That your plans be not fruitless.
All the threads of your life and all your desires
In the hands of the Creator Almighty are held.
His are the fields, His are the slopes,
His are the elements--the foundations and the threads.
His is the soul, His is the body,
And the spirit of everything, and its attire.
In His field, with His tools,
Whose will shall we fulfill, except His?
! REFLECTION
If your entire life has passed smoothly and without cares, then weep for yourself. For the Gospel and human experience assert with one accord that, without great pain and suffering, no one has left behind any great or beneficial work on earth or been glorified in the heavens. If, however, your earthly sojourn has been completely bathed with sweat and tears--to attain justice and truth--rejoice and be exceedingly glad, for your reward will be great in the heavens. Never succumb to the insane thought that God has abandoned you. God knows exactly how much each one can endure and measures the sufferings and pains of each accordingly. St. Nilus of Sora says: "When even men know how much weight a horse can carry, how much a donkey, and how much a camel can carry, thus load them according to their strength; and when a potter knows how long to leave the clay in the kiln, so that it will neither be shattered nor over-baked--how could God not know how much temptation a soul can bear to make it ready and fit for the Kingdom of Heaven?"
! CONTEMPLATION
To contemplate all the miracles that the Lord performed at the hands of Moses and Aaron in the land of Egypt: //And Aaron and Moses went in unto Pharaoh and they did as the Lord had commanded// (Exodus 7:10):
# How great and awesome were those miracles;
# How the heart of Pharaoh remained obstinate before all the miracles of God;
# How my heart is also hard before the countless miracles of God--in my life and around me--and how I need to repent before the end befalls me and I face eternal punishment.
! HOMILY
! About the salvation of a soul as the end of faith
"Receiving the end of your faith, even the salvation of your souls" (1 Peter 1:9).
Brethren, what is the end of faith? The salvation of the soul. What is the goal of faith? The salvation of the soul. What is the fruit of faith? The salvation of the soul. Therefore, we do not adhere to faith for the sake of faith, but rather for the salvation of our souls. No one travels for the sake of the road, but because of someone or something that awaits him at the end of the road. No one throws a rope into the water in which someone is drowning for the sake of the rope, but for the sake of the one drowning. God gave faith to us as a road, at the end of which the travelers will receive the salvation of their souls. And like a rope, God extended faith to us who are drowning in the dark waters of sin, ignorance and vice, so that we, through the help of faith, might save our lives.
That is the purpose of faith. Whoever knows the price of a human soul must admit that there is nothing in this world more necessary or more beneficial than faith. A merchant who carries precious stones in an earthen vessel preserves the vessel carefully and cautiously; he hides it and keeps watch over it. Is it because of the vessel that the merchant exerts such effort and concern? No, but because of the precious stones which are in the vessel. Our entire earthly life is like an earthen vessel in which a priceless treasure is hidden. That priceless treasure is our soul. A vessel is cheap, but a treasure is precious. First, one must have faith in the value of a human soul; second, in the future radiance and life of the soul in the Kingdom of God; third, in the Living God, Who waits for the return of the soul, which He Himself gave us; and fourth, in the possibility that a soul can be lost in this world. Whosoever has faith in these four things will know how to protect his soul, and will further know that the salvation of his soul is the end of his road--the goal of his faith, the fruit of his life, the purpose of his existence on earth, and the justification of his sufferings.
We believe for the sake of the salvation of our souls. Whoever has a true faith must know that faith is for the sake of the salvation of the soul. He who thinks that his faith serves a purpose other than salvation does not have a true faith--nor does he know the value of his soul.
O All-gracious Lord Jesus, Who has given us a shining and victorious faith, strengthen and maintain that faith in us, that we may stand unashamed before Your judgment with our pure and shining souls.
To Thee be glory and praise forever. Amen.
! VENERABLE ATHANASIUS OF MOUNT ATHOS
Athanasius was born in Trebizond of God-fearing parents. He was orphaned at an early age, but by the providence of God a military officer took him under his care and brought him to Constantinople to be educated. Because of his meekness and humbleness, he was the favorite of his peers. During their games, the children chose one to be an emperor, another a commander--and Athanasius an abbot, as though it were a prophecy! Having completed his education, Athanasius (who before tonsure was called Abraham) withdrew into the desert of Maleinos near Athos, the Holy Mountain, where he lived the life of an ascetic, as a disciple of the then renowned Michael Maleinos. Desiring a more difficult life of asceticism, Athanasius moved to Holy Mt. Athos, to live in silence (the life of a silentary). But many who were desirous of a life of asceticism began to gather around him, and he was compelled to build his famous Lavra [monastery]. He was assisted in this by the Byzantine emperors, first by Nicephorus Phocas, who himself intended to withdraw and become a monk, and then by John Tzimiskes. Countless temptations befell Athanasius, both from demons and from men--but he, as a brave soldier of Christ, resisted and conquered them all, by his immeasurable meekness and continual prayer to the Living God. Filled with the grace of God, Athanasius was found worthy to see the All-holy Birth-giver of God, who miraculously brought forth water from a rock and promised that she would always be the Abbess [Ikonomisa, the one in charge of the provisions] of the monastery. In work and in prayer, Athanasius surpassed his brethren, and he loved all with the love of a spiritual father and shepherd. Death came to Athanasius unexpectedly. He and six other monks had climbed up onto a newly built vestibule of the church to inspect a wall that was being constructed, and the wall caved in on them and buried them. Thus, this great beacon of monasticism died in the year 1003 A.D. Many times following his death Athanasius appeared to his brethren--sometimes to comfort them, and sometimes to reprimand them.
! THE VENERABLE MARTYR CYPRIAN THE NEW
Cyprian was born in the village of Klitzos in Epirus. Following the death of his devout parents, Cyprian went to the Holy Mountain, where he was tonsured a monk, devoting himself completely to a life of asceticism in a cell near the Monastery of Koutloumousiou. He imposed upon himself labor upon labor, and asceticism upon asceticism, until he became renowned and respected throughout the Holy Mountain. But Cyprian was still not satisfied with himself. He was tormented by the thought that he could not be saved except through martyrdom for Christ. Therefore, he left the Holy Mountain and went to Thessalonica, where he went before the pasha of Thessalonica and called upon him to reject the false faith of Muhammad and to accept the true faith of Christ. The pasha ordered him scourged and driven out. Unsatisfied with such little suffering for Christ, Cyprian traveled to Constantinople and wrote a letter to the grand vizier, in which he outlined the falseness of Muhammad and the truth of the Lord Christ. Enraged, the vizier sent him to Sheik ul-Islamu, and he, after having heard all that Cyprian had to say, ordered him beheaded. Cyprian was joyful beyond measure, and he went to the scaffold as to a wedding feast. Thus this godly man suffered for Christ on July 5, 1679, and realized his burning desire.
! THE VENERABLE LAMPADUS
Loving Christ with a fervent love from his early youth, Lampadus withdrew into the wilderness of Irenopolis, where he gave himself up to a life of asceticism. Since he had overcome all the passions and desires of the flesh, his soul was radiant with heavenly light and an unspeakable, otherworldy peace. Lampadus was a miracle-worker both during his life and after his death. He lived the ascetic life probably in the tenth century.
! HYMN OF PRAISE
!
! TO THE MOST-HOLY THEOTOKOS (BIRTH-GIVER OF GOD)
!
On Mt. Athos a Lavra shines,
The wondrous monastery of Athanasius.
One thousand years have passed it by,
But the spirit and bread did not run out:
It was lacking neither spirit nor bread
Nor the shining vision of God's heaven.
Thus it was written in books of old:
The Abbess provides,
As Mount Athos is her realm--
The mighty fortress of Orthodoxy;
That mystical Abbess (Ikonomisa)--
Is it not the All-pure Birth-giver of God?
The Lavra she upholds, and Iveron nourishes
Hilandar protects, Rusikon defends;
Karakallou and Zographou, Simonopetra,
And Pandocrator--them all she protects.
She is the fortress of their inhabitants,
But peace and defense to all she is.
! REFLECTION
How did Moses, with a blow from his rod, bring forth water from the rock? How did God send down manna from heaven and feed the people of Israel in the wilderness? Thus ask those who have a very weak conception of the might of the Omnipotent God--and still they are perplexed as to why such miracles do not take place again, in order that all peoples might believe in God. But the Israelites witnessed countless miracles of God with their own eyes, and still they did not believe. Meanwhile, God repeats the wondrous miracles of old, wherever and whenever it is needed. Once, when there was a famine in the Lavra of Athanasius, all of the brethren dispersed in all directions. Dejected, Athanasius set off to seek out another place. A woman on the road asked him: "Where are you going?" And because she was a woman on the Holy Mountyain--where no women are granted access--he asked in wonder: "Who are you?" She answered: "I am she to whom you have dedicated your community. I am the Mother of your Lord." Athanasius said: "I am afraid to trust you, for even demons can manifest themselves as angels of light. How will you prove to me the truthfulness of your words?" Then the Holy Birth-giver of God said to him: "Strike your rod upon this rock, and you will know who it is that speaks to you. Know that I will always remain the Abbess--Ikonomisa--of your Lavra." Athanasius then struck the rock with his rod. At that, the rock shook and cracked as if from thunder, and water gushed forth from the shattered rock. Frightened, Athanasius turned to prostrate himself before the Holy All-pure One, but she had already vanished. He returned to his Lavra and, to his even greater amazement, found all the barns (storehouses) overflowing with wheat. Here, then, is a recapitulation of great wonders, which confirm the miracles of old, and by which the faithful are strengthened in the Faith.
! CONTEMPLATION
To contemplate the miraculous crossing of the Red Sea by the Israelites (Exodus 14):
# How Moses waved the rod according to the command of God, and the sea was divided, and the people of God passed over on the dry bottom of the sea;
# How the Egyptians pursued the Israelites along the same path, but Moses waved the rod, and the sea closed over them;
# How this teaches me that God can do whatever He wills and that He saves His faithful servants from the greatest dangers, but punishes the unfaithful.
! HOMILY
! About sobriety of mind
"Wherefore gird up the loins of your mind, be sober and hope to the end for the grace that is to be brought to you at the revelation of Jesus Christ" (1 Peter 1:13).
Brethren, the mind is the guide of the soul and adviser to the soul. God gave the animalsonly a soul [an irrational soul], and that is why He did not give them freedom, but guides them with His mind. God gave man a soul [a rational soul] and a mind--and with the mind, freedom. The mind and freedom are inseparable. Thus all the tales of certain philosophers--concerning how man truly has a mind but does not possess freedom--are vain. It is clear from daily experience that freedom is an inseparable companion of the mind. Yet, as man does not possess a perfect mind, so he does not possess perfect freedom, but stands under the direction and guidance of God. God alone has a perfect mind and perfect freedom. We, therefore, are only the "image and likeness" of the mind and the freedom of God. We possess a mind sufficient to know the will of God and enough freedom to be able to decide to fulfill the will of God. When the mind loses its absolute guiding power over the soul, then there arise in the soul many disparate guiding principles--which bring about confusion, chaos and destruction.
What is the meaning of the apostle's words: G//ird up the loins of your mind and be sober?// They mean: "Do not allow your mind to fantasize, but concentrate the mind on contemplating the Law of God." They also mean: "Do not allow your mind to abuse your God-given freedom, by plunging the soul into slavery to the flesh, the world and the devil; but nail the mind to Christ as to a cross, so that your soul may resurrect in Christ." Further, they mean: "Close your mind off from all self-willed imaginations, by which it becomes intoxicated and falls prey to the devil; and keep the mind girded in the narrowness of your heart, where it will become sober through prayer, and pure through tears." It means, in essence: "Train your mind not to misuse your freedom by reviling the Living and Merciful God and by deadening you soul through the passions."
O Lord Jesus, Mind of God and Wisdom of God, help us to gird our minds, that we may think only of what is from You and what is Yours--that our minds may lead our souls soberly to salvation.
To Thee be glory and praise forever. Amen.
! VENERABLE SISOES THE GREAT
Sisoes was an Egyptian by birth and a disciple of St. Anthony the Great. Following the death of his great teacher, St. Sisoes settled on a desert mountain called St. Anthony's Mount, where Anthony had earlier lived in asceticism. By imposing difficult labors on himself, he tamed himself to such an extent that he became meek and guileless as a lamb. Therefore God endowed Sisoes with abundant grace--so that he was able to heal the sick, drive out unclean spirits, and resurrect the dead. For sixty years Sisoes lived in asceticism in the wilderness, and was a source of living wisdom for all the monks and laymen who came to him for counsel. Before his death, his face shone as the sun. The monks stood around him and they were astonished at this manifestation. And when the saint gave up his soul, the entire room was filled with a sweet-smelling fragrance. Sisoes died in extreme old age, in the year 429 A.D. St. Sisoes taught the monks: "Whatever way temptation comes to man, a man should give himself over to the will of God, and recognize that the temptation came because of his sins. If something good happens, it should be said that it happened according to God's providence." One monk asked Sisoes: "How can I please God and be saved?" The saint answered: "If you wish to please God, withdraw from the world, separate yourself from the earth, put aside creation, draw near to the Creator, and unite yourself to God with prayers and tears--then you will find rest in this age and in the age to come." A monk also asked Sisoes: "How can I attain humility?" The saint replied: "When a person learns to acknowledge every man as being better than himself, then he has attained humility." Ammon complained to Sisoes that he could not memorize the wise sayings that he read, in order to be able to repeat them in conversation with men. The saint replied to him: "That is not necessary. It is necessary to attain purity of mind and to speak from that purity, placing your hope in God."
! THE HOLY MARTYRS MARINUS [MARIUS] AND MARTHA, WITH THEIR SONS AUDIFAX AND ABACHUM [HABAKKUK], VALENTINE THE PRESBYTER, CYRINUS, ASTYRIUS [ASTERIUS] AND MANY OTHERS
They all suffered in Rome during the reign of Emperor Claudius Flavius, in the year 269 A.D. Marinus and Martha were wealthy people from Persia, who sold all their property in Persia and went to Rome with their sons in order to venerate the sacred relics of the holy apostles and the other martyrs. When the emperor asked them why they had come from such a distance, abandoning their household gods to seek dead men in Rome, they responded: "We are servants of Christ, and we have come to venerate the holy apostles, whose immortal souls live with God, so that they may be our intercessors before Christ our God." Cyrinus was thrown into the Tiber River, from which his body was removed by Marinus and Martha, who honorably buried it. The priest Valentine was handed over to a commander, Astyrius, so that he would counsel him to deny Christ. But Valentine by his prayers healed Astyrius's blind daughter, who had been blind for two years, and then baptized Astyrius and his entire household. All of them, in various ways, underwent suffering and death for Christ, Who received them into His Immortal Kingdom, to rejoice eternally.
! THE FINDING OF THE RELICS OF SAINT JULIANA THE VIRGIN
Juliana was the daughter of the Prince of Olshansk. She died in about the year 1540 A.D., as a virgin of sixteen years of age. Two hundred years after her death, men who were digging a new grave beside the great church in the Monastery of the Kiev Caves found the relics of this holy virgin completely intact and uncorrupt, as though she had just fallen asleep. Many miracles occurred from these relics, and Juliana herself appeared many times to certain individuals. The renowned [Metropolitan] Peter Mogila had one such vision.
! THE HOLY FEMALE MARTYR LUCY
Lucy was taken captive by the barbarian Emperor Austius in Campania. The emperor wanted Lucy as his concubine, but she protested. He then left her in peace, so that she could live a life of asceticism. She even converted the emperor to the Faith after he gained a victory in battle through her prayers. In the end, they both suffered for Christ in Rome, in about the year 300 A.D.
! HYMN OF PRAISE
!
! SAINT ASTYRIUS [ASTERIUS]
!
Astyrius was a slave to the idol Zeus
And Valentine the presbyter was a slave to Astyrius.
"Who is Christ?" of Valentine he asked.
"About the Son of God, are you asking me?
He is the Light of the world; He is the Light of men;
Of everything and all good beings, He is the Light.
Pure His Light is, with darkness unmixed;
Though into darkness He descended, and brought light.
The living He illumined with His works and teaching,
The dead He illumined--with His radiant Resurrection.
By His brilliance, the entirety of hades was destroyed,
And by His love, the human race was inflamed;
Inflamed by love, enlightened with wisdom,
With God reconciled, with a tender smile.
This is Christ the Lord, for Whom I am dying,
And in Whose Name, the idols I trample."
So Valentine said, then Astyrius answered:
"Those words, as purest gold, I receive;
If, my sightless daughter, you heal,
Then I, O Valentine, your Faith will embrace."
Hearing this, the priest on his knees fell
And to God Most-High, a fervent prayer prayed.
And laying his hands on her blind eyes,
The maiden, her sight restored! Astyrius leaped,
In light of God's great work. Christ he acknowledged,
And for Christ, in martyrdom, his life he gave.
! REFLECTION
From where do we know that there is life after death? We know from Christ the Lord--on the basis of His words, His Resurrection, and His many appearances after death. Philosophers who recognize life after death recognize it on the basis of their thinking, but we recognize it on the basis of experience, especially the experience of holy men who neither knew how to proclaim falsehoods nor were even capable of it. When Sisoes lay on his deathbed, his face was radiant. The monks, his disciples, stood around him. St. Sisoes gazed around and said: "Behold, here comes Abba Anthony!" He remained silent for a while and then said: "Behold, here comes the prophets!" In that moment his face glowed even more and he said: "Behold, here come the apostles!" Then he said: "Behold, here come the angels to take away my soul!" Finally, his face shone as the sun and all were overcome by great fear, and the elder said: "Behold, here comes the Lord. Look at Him, all of you." Behold, He is saying: "Bring to me the chosen vessel from the desert." After that the saint gave up his soul. And how many similar visions have been seen--and all by the most reliable witnesses!
! CONTEMPLATION
To contemplate the miraculous falling of manna from heaven for the feeding of the people in the wilderness (Exodus 16):
# How for forty years the Lord gave the Israelites in the wilderness manna from heaven--a heavenly food, sweet as honey;
# How this manna from heaven prefigured the Lord Jesus Christ, the Bread of Life, Who came down from heaven that He Himself might feed the spiritual hunger of mankind in the wilderness of paganism;
# How nothing can satisfy my hungry soul, except Christ the Living Lord, sweeter than honey.
! HOMILY
! About the terrible price of redemption
"For as much as you know that you were not redeemed with corruptible things as silver and gold, from your vain conversation received by tradition from your fathers; but with the precious blood of Christ, as of a lamb without blemish and without spot" (1 Peter 1: 18-19).
Brethren, has anyone ever been able to purchase a medicine against sin with silver and gold? No one, ever.
Brethren, has anyone ever been able to forge arms against the devil with silver and gold? No one, ever.
Brethren, has anyone ever been able to redeem from death with the help of silver and gold? No one, ever.
Something far more precious than silver and gold was needed to be a cure, the weapon and the ransom. The Precious Blood of the Son of God was needed to be applied on the wounds of sin in order for them to be healed. The Precious Blood of the Son of God was needed to be directed against evil spirits, and by its power to burn them and drive them away from man. The Precious Blood of the Son of God was needed to sprinkle on the earthly graves, in order to destroy death and raise the dead.
//As a Lamb without blemish and without spot,// the Lamb of God was slain for us, to pull us out from the three-fold jaws of the beast. A woeful, but life-giving, banquet arranged by Go--a costly banquet to announce freedom to man. Sin, the devil and death attacked with all their might the mild and All-pure Lamb of God. And they killed Him, but they were poisoned by His blood. His blood was shed to be poison for them--but life and salvation for mankind.
O my brethren, if you do not know how venomous sin is, how wicked the devil is, and how bitter death is, judge by the greatness of the ransom by which we have been redeemed from their bondage. The Precious Blood of Christ--that is our ransom from bondage! Remember, brethren, that if we are again--in our recklessness and evil--willingly give ourselves over to that terrible three-fold slavery, there is no one on earth or in heaven who can give a ransom for us. For there is but one precious ransom, and it was given once and forever.
O merciful Lord, strengthen us, that we may be preserved in the freedom that You have given us.
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT FEMALE MARTYR DOMINICA [NEDELJA-KIRIAKI]
During the time of the Emperors Diocletian and his son-in-law Maximian, both adversaries of Christ, there lived in Anatolia two pious and elderly souls, Dorotheus and Eusebia. They were devout Christians, wealthy but childless. Through unceasing prayer, they obtained a child from God--the holy Dominica. From her childhood, Dominica consecrated herself to God, abstaining from everything that unruly children do. When she had matured and was beautiful in body and soul, many suitors came to ask for her hand in marriage; but she refused them all, saying that she had betrothed herself to Christ the Lord and desired nothing more than to die as a virgin. One of the rejected suitors denounced Dominica and her parents to Emperor Diocletian as Christians. The emperor ordered that Dominica's parents be tortured, and after torturing them, banished them to the town of Melitene--where they died, having endured much suffering for Christ. Diocletian sent Dominica herself to Maximian to stand trial. Since Dominica confirmed her faith in Christ before Maximian, he ordered that she be placed on the ground and flogged with oxen whips. After that, the emperor handed her over to the commanders, first to Hilarion and, after his death, to Apollonius. Both of them tortured Dominica in a beastly manner, in all possible ways, but all was in vain. When St. Dominica lay in the prison cell, completely covered with wounds, Christ the Lord appeared to her, healed her, and said: "Dominica, do not be afraid of torture; My grace is with you." And indeed the grace of Christ saved this martyr from the fire and from the wild beasts, which the godless judges thought would bring about her certain death. Seeing Dominica miraculously saved from such a death, many pagans came to believe in Christ--and they were all beheaded. Dominica said to Apollonius: "In no manner can you turn me away from my Faith. If you throw me into the fire, I have the example of the Three Youths [Shadrach, Meshach and Abed-Nego]; if you throw me before wild beasts, I have the example of Daniel the Prophet; if you toss me into the sea, I have the example of Jonah the Prophet; if you give me over to the sword, I will remember the honorable Forerunner [John the Baptist]. Life, for me, is to die for Christ." Then Apollonius ordered that Dominica be beheaded. Dominica knelt down, raised her hands to heaven, and prayed to God, that He would save and have mercy on all those who would celebrate her memory, and that He would give rest to her soul together with the souls of her parents. Upon completing her prayer, she rendered her soul to God, before the sword was lowered onto her neck. Dominica suffered honorably in Nicomedia, and she was received into eternal joy, in the year 289 A.D.
! THE VENERABLE THOMAS OF MALEA
Thomas was at first a commander distinguished by his bravery and wealth. He was massive of body and struck fear in his enemies. But when Thomas came to love Christ more than the world and everything in the world, he left all and withdrew into the wilderness. There he was tonsured a monk and gave himself over to asceticism. St. Elias the Prophet appeared to him and led him to a mountain called Malea, near Athos, the Holy Mountain. There he lived alone and isolated--alone with God, in prayer day and night. But even though he concealed himself from the world, he could not remain hidden. Upon learning about the sanctity of his life, people began to come to him and bring their sick. And St. Thomas cured people from every infirmity and affliction. Even after he fell asleep in the Lord in the tenth century, his relics continued to help all those who venerated them with faith.
! THE VENERABLE MARTYRS EPICTETUS AND ASTIUS
Astius, the only son of his parents, Alexander and Marcellina, was persuaded to love the Faith of Christ by the priest Epictetus, who baptized him and tonsured him a monk. They later moved from the eastern regions of Scythia and settled in the Scythian town of Almirida (now Ramzina), at the mouth of the Danube on the Black Sea. They were tortured and beheaded for the Faith of Christ in about 290 A.D. After their deaths, they both appeared in great radiance to the parents of St. Astius, Alexander and Marcellina, who subsequently turned to Christ and were baptized by Bishop Evangelus, who himself was later beheaded for Christ: "Evangelus, another angel," as is sung of him.
! HYMN OF PRAISE
!
! SAINT DOMINICA [NEDELJA-KIRIAKI]
!
An only child, Saint Dominica,
Whose parents themselves for the Faith died--
Her parents, God's saints.
Now an orphan, Saint Dominica,
Gave all she had to the poor:
Only her body and garment remained,
And that, she sacrificed for Christ!
Dominica, as the dew, pure,
Refused the world's enticements,
Refused the temptations of men,
And disdained the terrors of the earthly life.
She, to suffering as to a wedding, went;
Enduring tortures and deep wounds,
Succored by the sweet name of Jesus!
She suffered bitter pains, harsh humiliations,
Assured of life eternal in God's Kingdom!
Her whole body ran red with blood,
But the joy of Paradise is sweet!
O Dominica, God's chosen one,
For Christ, wondrous martyr,
With a sword from the earth you were driven,
But crowned with glory in heaven!
Teach us the Faith to honor:
Encourage us, our lives to give, for the Faith,
By your prayers, help us,
O wonderful spiritual candle,
Amidst the candles of Paradise.
! REFLECTION
The example of St. Dominica, the beautiful virgin, and that of St. Astius, the rich young man--both of whom submitted themselves to torture and death for Christ the Lord--lead us to the thought that there is nothing in history comparable to the power of Christ, by Whose help young men conquer themselves--and, through that, conquer everything else. To obtain victory over oneself is the greatest victory. The Church numbers such victors by the thousands, and many thousands. In writing about virginity, St. Cyprian says: "To conquer pleasure is the greatest pleasure, neither is there a greater victory than the victory over one's desires. He who conquers one opponent proves himself stronger than another, but he who conquers passion proves himself stronger than himself. Every other evil is easier to conquer than pleasure, for all other evils are repulsive--while the evil of pleasure is attractive. He who frees himself from desires, frees himself from fear, for fear arises from desire."
! CONTEMPLATION
To contemplate the miraculous bringing forth of water from the rock in Horeb (Exodus 17):
# How the thirsty Israelites doubted that God was with them, and murmured against Moses;
# How, by God's command, Moses struck the rock with his rod, and water flowed from the rock;
# How my heart has been turned to stone by doubt, and how streams of tears begin to flow from it when it is touched by the grace of faith.
! HOMILY
! About the sincere [and pure] milk of the word
"As newborn babes, desire the sincere [pure] milk of the word, that you may grow thereby: If so be, you have tasted that the Lord is gracious" (1 Peter 2: 2-3).
//As newborn babes//is how the great apostle regards Christians. Baptism is a new birth, and from baptism man counts his new life. The spiritually newborn must be fed with mild food, as the newborn in the flesh. What kind of food does the apostle recommend for Christians? //The sincere and pure milk of the word.// The physical child is fed with ordinary milk, which is only an image of the sincere [pure] milk of the word, by which a spiritual child needs to be fed. What then is this sincere and pure milk with which Christians should be fed? The apostle himself answers this when he says: //for you have tasted that the Lord is gracious.// Thus, it is the Lord Jesus Himself, Living and Life-giving. Christ's words are //the sincere and pure milk//. Brethren, blessed are you if you nourish your souls with the words of Christ, as with sweet milk, for your souls will grow fruitful and be blessed, and you will be prepared for the Kingdom of God.
Christ's miracles are //the sincere and pure milk//. Brethren, blessed are you if you nourish your souls with this sweet milk, for you will be like unto the angels who sing the praises of the miracles of God day and night.
The Body and Blood of Christ are //the sincere and pure milk//. Brethren, blessed are you if you nourish your souls with this sweet milk, for you will become members of the Living and Immortal Body of Christ in the heavens.
Christ's resurrected victory over death is //the sincere and pure milk//. Brethren, blessed are you if you nourish your souls with this sweet milk, for you--while yet in this life--will walk as victors, and in the life to come you will stand at the right side of Christ the Victor.
Brethren, the whole of Christ is //the sincere and pure milk//. Let us be eager for this milk above all else, that we may grow to salvation. This is the only nourishment for salvation. All else is for decay and the grave.
O Lord Jesus, Lamb of God, You Who are //the sincere and pure milk//, nourish us with Yourself, as You did nourish Your holy apostles--that we too may grow enough to be saved.
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT MARTYR SAINT PROCOPIUS
Procopius was born in Jerusalem of a Christian father and a pagan mother. At first his name was Neanias. Following the death of his father, his mother raised her son completely in the spirit of Roman idolatry. When Neanias had grown up, Emperor Diocletian saw him, took a liking to him, and brought him to his palace for military service. When this nefarious emperor began to persecute Christians, he ordered Neanias to go to Alexandria with a garrison of soldiers in order to exterminate the Christians. But on the way, something happened to Neanias like that which once happened to Saul [Paul]. In the third hour of the night there was a strong earthquake and, at that moment, the Lord appeared, and a voice was heard: "Neanias, where are you going, and against whom are you rising up?" In great fear, Neanias asked: "Who are You, Lord? I am unable to recognize You." Then there appeared in the air an exceedingly luminous cross, as of crystal, and from the cross came a voice saying: "I am Jesus, the crucified Son of God." And the Lord further said to him: "By this sign that you have seen, conquer your enemies, and My peace will be with you." Commander Neanias's life was completely changed. He issued an order to make a cross such as he had seen, and instead of going against the Christians, he and his soldiers used their force against the Agarians, who were attacking Jerusalem. He entered Jerusalem as a victor, and revealed his Christian faith to his mother. Brought before the court, Neanias removed his commander's belt and sword, and threw them before the judge, thereby showing that he was a soldier only of Christ the King. After being tortured extensively, he was cast into prison. There the Lord Christ appeared to him again, baptized him, and gave him the name Procopius. One day twelve women appeared before his prison window and said to him: "We too are servants of Christ." Accused for this, they were thrown into the same prison. St. Procopius taught them the Faith of Christ, and prepared them to receive their "martyr's crowns." (This is why St. Procopius, along with the God-crowned Emperor Constantine and Empress Helena, is mentioned in the order of crowning during the wedding ceremony.) Subsequently, the twelve women were brutally tortured. Witnessing their suffering and bravery, the mother of Procopius also came to believe in Christ, and all thirteen were slain. When St. Procopius was led to the scaffold, he raised his hands toward the east and prayed to God for all the poor, the needy, the orphans and the widows, and especially for the Holy Church, that it would grow and spread, and that Orthodoxy would shine to the end of time. And from heaven it was made known to him that his prayers were heard, after which he joyfully laid his head under the sword and went to his Lord in eternal joy. St. Procopius honorably suffered at Caesarea in Palestine, and was crowned with a wreath of immortal glory, on July 8, 303 A.D.
! SAINT PROCOPIUS, FOOL FOR CHRIST
Procopius was a miracle-worker from Ustiug who died in the year 1303 A.D. He was of Varangian (Norse) descent and a merchant by profession. Coming to Novgorod on business, he was awed by the beauty of Orthodoxy and embraced the Orthodox Faith. Desiring to be a perfect Christian, he distributed his estate to the poor and began to practice all the other virtues. He pretended insanity, so that men would not praise him, and he was able to see into the hearts of men as well as their destinies, and to predict natural events, which afterward would indeed occur. By his tearful prayers before the icon of the Birth-giver of God, Procopius averted a terrible hailstorm from the town of Ustiug, and thus brought the sinful town to repentance. His body was found dead on the street, completely covered with snow. A church was built over his miracle-working relics.
! THE VENERABLE THEOPHILUS THE MYRRH-GUSHER [MIROTOCIVI]
Theophilus was born in Macedonia in the village of Ziki. He was a very educated man and a great ascetic. By order of Patriarch Niphon of Constantinople, he traveled to Alexandria to make inquires as to whether it was true that Patriarch Joachim had moved a mountain by his prayers and had drunk poison without harmful effects, being forced to do this by the Jews and Muslims. Convinced of the truthfulness of these miracles, Theophilus returned to the Holy Mountain (Athos), where he lived in asceticism, first in Vatopedi, then in Iveron, and finally in the cell of St. Basil near Karyes. They offered the archbishopric of Thessalonica to this holy man, but he refused. Through profound silence, divine meditation and heartfelt prayer, he succeeded in purifying his mind of all passionate thoughts, and thus he became a pure vessel of the Holy Spirit in which Christ dwelt. In speaking of his imminent falling asleep in the Lord, he instructed his disciple Isaac not to bury him when he ws dead, but to tie a rope around his legs, drag him, and toss him into the river. With great fear the disciple carried this out. By by God's providence, the relics of St. Theophilus were revealed, and when they brought them to his cell, a miraculous myrrh began to flow from them. He entered into rest on July 8, 1548.
! HYMN OF PRAISE
!
! SAINT PROCOPIUS
!
When it is the will of the Omniscient God,
Persecutors become His servants;
God-haters, wonderful apostles;
And pagans, zealots for the Faith.
By God's will, Saul became Paul,
And Neanias--Saint Procopius!
Procopius, against Christ, went to war,
Yet a Christian to his mother came!
Tortures he once prepared, yet now received them.
Like lightning, truth he recognized,
And before the Son of God bowed down,
And from the earthly king turning,
Of the King on High, a servant became.
The King of Heaven on him a gift bestowed--
The gift of strength, the afflicted to help.
And as it was then, so is it now:
Procopius is friend to the downcast.
For today as of old, he helps.
! REFLECTION
St. Anthony teaches: "Be fearful that you do not become famous because of some work that you do. If they begin to praise you because of your work, do not rejoice or take delight in it, but keep your works secret as much as you can, and do not allow anyone to speak about them." How much more peace and joy would there be among men on earth, if a part of mankind would take these holy words to heart! Even though St. Theophilus lived as a simple monk secluded on Holy Mt. Athos, he was famous in all the patriarchates of the east, as much for his learning as for his virtuous, ascetical life. It once happened that Theoleptus, the Patriarch of Constantinople, visited Thessalonica. At that time the arch-episcopal throne of Thessalonica was vacant. The Christians of Thessalonica unanimously implored the patriarch to appoint Theophilus as their archbishop. The patriarch, a compatriot and friend of Theophilus, wrote a personal letter to him, in which he invited him to accept the arch-episcopal throne. Fearing the glory of men, yet not easily being able to refuse the patriarch, the humble Theophilus immediately received the "great angelic habit" [The Great Schema], and informed the patriarch of this, adding: "If God so wills, we will see each other in the Kingdom of Heaven." Such were the spiritual giants, whom the Church calls saints--shunning vanity and the glory of men.
! CONTEMPLATION
To contemplate the miraculous changing of bitter water into sweet water (Exodus 15):
# How the thirsty Israelites came upon bitter water in Marah and were unable to drink it, and the people began to murmur against Moses;
# How God commanded Moses to cast a tree (wood) into the water, and the water became sweet;
# How this tree foreshadowed the Cross of Christ, by which the bitterness of our life is transformed into sweetness;
# How my entire being is bitter water, until I bring Christ Crucified into myself.
! HOMILY
! About the Living Stone
"To whom coming, as unto a living stone, disallowed indeed of men but chosen of God and precious, You also, as lively stones, are built up a spiritual house, a holy priesthood to offer up spiritual sacrifices acceptable by Jesus Christ" (1 Peter 2: 4-5).
Brethren, what does the stone signify, if not stability? Brethren, what does the stone teach us, if not stability? The living stone signifies immortality. The apostle calls Christ the Lord the Living Stone, because He is immortal and the Giver of immortality. The apostle calls Christians living stones, as partakers of the immortality of Christ.
Brethren, what do unbelievers think, concerning man's fate at the end of time? They think that the same thing happens to man as to a stone: a man dies, becomes senseless, and is transformed into dust. Yet a stone is already dead and senseless, and under certain conditions it is transformed into dust. So both the unbelievers and the believers compare man with a stone. The unbelievers, because of the deadness and the insensibility of the stone; and the believers, because of the durability and the stability of the stone. For the former [unbelievers], the stone is a symbol of death, but for the latter [unbelievers], the stone is a symbol of immortality.
In truth, without Christ, mankind has always been and will always be like dead stones. But Christ is like a living stone. Only adhere to Him, and you will become as living stones. In building a house, the builder chooses only those stones that are chiseled into shape and prepared to fit easily with the other stones in the wall. The builder rejects the unchiseled, the unprepared, the unpolished and the fragile stones. Building the home, or a temple, of His Immortal Kingdom, Christ chooses men as the builder chooses stones, with one characteristic--life, spiritual life. The Lord rejects spiritually dead men as bad building blocks, and accepts only those who are alive, who resemble Him and who fit into place with the other living stones. These other living stones are the angels, prophets, apostles and saints. Brethren, let us endeavor to be a holy material for the holy house of the Kingdom of Christ--which He is building day and night, and which He will finish completely in the fullness of time.
O Lord Jesus, Builder of the Kingdom of Heaven, enliven us with Your Holy Spirit, and build us also, as living stones, into the house of Your eternal glory.
To Thee be glory and praise forever. Amen.
! THE PRIESTLY-MARTYR PANCRATIUS [PANCRAS], BISHOP OF TAORMINA
This saint was born in Antioch, during the time when the Lord Jesus Christ walked as a man among men on earth. Hearing about the miracles of Christ, the parents of Pancratius desired to see the Lord, the Miracle-worker. Together with Pancratius, they traveled to Jerusalem, where they saw Jesus, heard His words, and witnessed His miracles. There Pancratius became acquainted with the Apostle Peter. After the Ascension of the Lord, both the parents and the son were baptized in Antioch. Pancratius withdrew to a cave in Pontus, where the Apostle Peter found him. In agreement with the Apostle Paul, he appointed Pancratius as the Bishop of Taormina in Sicily. In Taormina, St. Pancratius worked many miracles, destroyed the idols, baptized the unbaptized, strengthened the baptized, and righteously governed the Church of God. A heathen commander by the name of Aquilinus heard that the entire city of Taormina had become Christian, and set out with an army in order to destroy the city. St. Pancratius calmed the fears of the faithful, and he himself went out from the city with the clergy, carrying in his hands the invincible weapon, the Honorable Cross. When the army approached the city, a darkness fell upon them and the soldiers were overcome with great fear. They were seized with great confusion, and turned against one another, stabbing and slaughtering each other with their swords. Thus the God-pleaser Pancratius saved the city and his flock by the power of his prayer before the Lord. Finally, Pancratius was stoned to death by envious and evil heathens, and found his rest in the Lord. His holy relics lie in Rome.
! THE PRIESTLY-MARTYR CYRIL, BISHOP OF GORTINA IN CRETE
As an eighty-four year old man, Cyril suffered for Christ during the reign of Decius. He was thrown into fire, but was saved by the providence of God. Then the pagan judge issued the following sentence: "Just judgment cannot tolerate that Cyril, who ws delivered from the fire, remain among the living. Therefore, I am ordering him to be slain by the sword." The holy elder joyfully placed his head under the sword and was beheaded, to live eternally in the Kingdom of Christ.
! THE VENERABLE MARTYRS PATERMUTHIUS AND COPRES
The Egyptian Christians Patermuthius and Copres were tortured by the Emperor Julian the Apostate. Patermuthius was seventy-five years old and Copres was forty-five. The emperor succeeded in turning Copres away from the Faith of Christ, and persuaded him to embrace the idols. The apostate Copres cried out: "I am Julian's, not Christ's." But when the aged Patermuthius rebuked him, reminding him of eternal torments, Copres came to his senses and cried out before the emperor: "I am Christ's and not Julian's." Both were beheaded with the sword. Alexander, one of the emperor's soldiers, also suffered with them. Having witnessed their bravery in suffering, he had himself become a Christian. They honorably suffered for Christ, and went to Christ in the year 361 A.D.
! THE VENERABLES PATERMUTHIUS AND COPRES
Even though they bear the same names, these two are different from those mentioned above. Initially, this Patermuthius was the leader of a band of robbers, but after a miraculous vision, he converted to the true Faith and was tonsured a monk. This is what happened: He had climbed upon the roof of the home of a godly woman, in order to enter the house and pillage it. But sleep overcame him and he saw in a dream someone who warned him not to commit evil and to repent. Not only was Patermuthius baptized, but he was also tonsured a monk. Both Patermuthius and Copres were great miracle-workers. By the grace of God, they healed people from every pain and affliction, guided sinners on the true path, and discerned the future. A sinner lying on his deathbed implored Patermuthius that his life be prolonged, in order that he might repent. After praying, the saint told him that God had prolonged his life for three years. The sinner repented, and died exactly three years later. Patermuthius and Copres reposed in the Lord toward the end of the fourth century, at a very old age.
! SAINT THEODORE, BISHOP OF EDESSA, AND OTHERS WITH HIM
Theodore was tonsured a monk at the age of twenty, and spent thirty-six years as a monk. Then, during the reign of Emperor Michael and Empress Theodora, Theodore was elected Bishop of Edessa. He died in the year 848 A.D. Also commemorated with him are his teacher, St. Theodosius the Stylite of Syria; his brother, St. John the Hermit; and St. Ader, a wealthy nobleman who left his wife and was tonsured a monk.
! HYMN OF PRAISE
!
! SAINT PANCRATIUS [PANCRAS]
Pancratius holy, during his childhood,
Warmed himself in the sun of the face of Christ.
Summer after summer flew fast away,
But in his mind that face remained,
Day and night, luminous before him.
All that darkened that image, he resisted,
And his possessions and the home of his parents he left,
And left every deceptive desire,
And the pleasures of the world that please men.
Alone, he went into the wilderness,
And to the last day of his earthly course
He was infused with the sweetness of the divine countenance.
A radiant lamp is not easily hid--
Pancratius in his own way, and the Lord in His.
Sicily, a pagan land was,
That needed the light of St. Pancratius,
That needed his witness of Christ's face,
That needed the blood of the martyr!
All that was needed, Pancratius gave.
As a martyr he fell, as an immortal one he remained.
Above Sicily, he remained as a light--
A guide to that face that would forever warm it.
! REFLECTION
Many ask themselves why God takes young men, maidens and children from this life--why does He not let them grow old, and then take them through death to the other world? This is God's economy, this is the holy will of His providence. But there are some examples, in the enormous experience of the Church, in which God sometimes acts in this way according to the wishes and prayers of his saints in the other world, or of relatives. St. Ader (in monasticism Athanasius) appeared to his wife, whom he had suddenly left with three children when he entered a monastery, where he died. When the wife reached a state of despair--out of her concern for her helpless children and also for her husband, for she did not know where he was--he appeared to her in a dream from the other world. His face was glowing and he was wearing a radiant white garment. He said to her: "Cease crying and railing against me. Behold, I will take two of the children from you to myself; and you, if you want to, can devote yourself to the salvation of your soul." At the same time and in the same manner, he also appeared to St. Theodosius the Stylite and said to him: "In three days, an old hermitess, who lives near the monastery, will go to the Lord. In that cell, put my wife, so that she may live an ascetical life as a nun. Let the youngest child remain with her until he grows up. He will walk in my footsteps and will inherit the apostolic throne in Jerusalem." And in truth, all this occurred as was foretold. On the third day the old hermitess died, and so also did Ader's two older children. His wife then took over the cell of the old hermitess with the youngest son, who--when he grew up--became the Patriarch of Jerusalem.
! CONTEMPLATION
To contemplate the miraculous victory over Amalek (Exodus 17):
# How the people prevailed against Amalek as long as Moses prayed to God with upraised hands;
# How Moses, with upraised hands in prayer, prefigured the victorious Crucifixion of Christ;
# How, through the power of the Cross and prayer, I too can conquer the dark passions that Amalek represents.
! HOMILY
! About the judgment of God on the righteous
"For the time is come that judgment must begin at the house of God: and if it first begin at us, what shall the end be of them that do not obey the Gospel of the Son of God?" (1 Peter 4:17).
When the judgment of God comes upon the house of the righteous man, the unrighteous one should not maliciously rejoice, but should tremble with fear. If the righteous man and the unrighteous one are neighbors, and if the hand of God falls on the righteous one, it has fallen on them both--on the former to temper and on the second to warn. When bitter suffering befalls the righteous one, it does not befall him without the will of God. Let not the unrighteous one rejoice, for this suffering is more for his sake than for the sake of the righteous one--that is, that he may see the wrath of God, and hasten to change his spirit and correct his works. Let him also ask himself: when such is the wrath of God against the righteous one, what will it be against me?
Therefore know, brethren, that justice is strength and injustice is weakness. Which can endure more and not break under the strain: might or weakness? Without a doubt, might. It is for this reason that a heavy yoke (burden) is placed on the righteous man. Let not the unrighteous one jeer (ridicule) when he sees the righteous one under a heavy yoke, and let him not say: My unrighteousness is better than his righteousness! Let him look upon the yoke of the righteous one with fear and trembling, and let him sincerely say to himself: That is my yoke, but I am entirely too weak to bear it. That is why it was thrown on his back, on the back of the righteous one, that I may see it and repent of my ways, and through repentance become strengthened for the burden that awaits me. //Judgment must begin at the house of God--//that is God's immeasurable mercy toward sinners, toward the weak ones who have become weakened by sin. Let them open their eyes and read the wrath of God that has been recorded. Judgment must begin at the house of God, for the house of God is strong, and the house of God is the righteous man, in which the Spirit of God abides. When the wind rocks the tower of stone, then let the hut dwellers fortify their huts.
O my brethren, how fateful and awesome are those apostolic words for sinners!
O Lord Jesus, just and merciful, have mercy on us and save us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR JUSTIN THE PHILOSOPHER
Justin was born of Greek parents in the Samaritan town of Shechem, later called Nablus, one hundred-five years after Christ. He zealously sought wisdom among philosophers, at first with the Stoics and after that with the Peripatetics, with the Pythagoreans and finally with the Platonists. Even though Plato's philosophy did not satisfy him, nevertheless, he adhered to it the longest time, not having anything else that would attract him more. By God's Providence Justin encountered an honorable elder, who shook his faith in the philosophy of Plato and persuaded him that men cannot know the truth about God unless God reveals it and that God had revealed the truth about Himself in the books of Holy Scripture. Justin began to read Holy Scripture and became a thoroughly convinced Christian. However, he did not want to be baptized or to be called a Christian until he was personally convinced of the falseness of all the accusations that the pagans raised against the Christians. Coming to Rome in a philosopher's dolman [cape], he quickly achieved great respect as well as many followers there. He was present at the martyrdom of St. Ptolemy and St. Lucian. Witnessing the tortures of innocent Christians, Justin wrote an //Apologia//(Defense) of Christians and Christian teachings and presented it to Emperor Antoninus and to the Senate. The emperor read the //Apologia// with care and ordered the persecution of Christians to cease. Justin took a copy of the emperor's decree and journeyed with it to Asia, where, with the help of this decree, he saved many persecuted Christians. After that he returned to Rome. When a persecution began under Emperor Marcus Aurelius, he wrote another Apologia and sent it to the emperor. A disreputable philosopher, Crescens, a Cynic, out of envy denounced him as a Christian because Justin had always overcome him in their debates, and Justin found himself in prison. Desiring the death of Justin and fearing that he [Justin] would somehow justify himself before the court, Crescens seized the opportunity and poisoned Justin in prison. So ended the earthly life of this great defender of the Christian Faith, who took up habitation in blessed eternity in the year 166 A.D.
! THE HOLY MARTYRS JUSTIN, CHARITON, CHARITA, EUELPISTUS, HIERAX, PAEON, VALERIAN [LIBERIANUS] AND JUSTUS
They all suffered martyrdom in Rome during the reign of Marcus Aurelius and the Roman prefect [eparch] Rusticus. When Rusticus asked: "Do you think that if you die for Christ you will receive a reward in heaven?" St. Justin replied: "We do not think, we know!" Then they were all beheaded in the year 163 A.D. and took up their habitation in the Eternal Kingdom of Christ our God.
! THE VENERABLE AGAPITUS OF THE CAVES IN KIEV
Agapitus was an unmercenary physician, who practiced medicine by using natural remedies. He was a disciple of St. Anthony of the Caves. He cured people through prayer and by giving them greens, from which he prepared bread for himself. In this manner he cured Prince Vladimir Monomachus, because of which Agapitus became known everywhere. Being envious of this, the prince's physician, an Armenian, began to slander Agapitus. When Agapitus became ill, the Armenian came to him and, examining him, said that he [Agapitus] would die within three days and that if he [Agapitus] did not die, he, the Armenian, would become a monk. Agapitus said that it had been revealed to him by the Lord that he would not die in three days, but in three months. And so it happened. After the death of Agapitus, the Armenian came to the abbot of the Caves and begged him to tonsure him a monk, for, he said, Agapitus had appeared to him from the other world and had reminded him of his promise. Thus the formerly envious one became a humble monk by the providence of God, Who wishes that all men be saved. St. Agapitus died in about the year 1095 A.D.
! HYMN OF PRAISE
! ST. JUSTIN THE PHILOSOPHER
!
Whoever belongs to Christ dies for Christ.
Saint Justin, defender of the truth,
Recognized the power of Christ and expressed it,
And fearlessly traveled throughout the empire,
Defending the righteous, the heathens admonishing,
To the entire world, shining with truth.
He was from the city of unbaptized ones, where once ten lepers
To Christ the Savior, bitterly cried out,
And by His word were healed.
Now Justin's leprosy of falsehood
By the power of the Faith of Christ was healed.
Like a father he protected Christians;
The foolishness of paganism he unmasked;
To emperors he spoke the truth;
He was a light until the candle burned down,
Until the evil ones his body took,
And his soul to Paradise the angels raised,
That in heaven it might shine like the sun,
As his //Apologia// also shines,
Glorifying the name of the immortal Justin,
Teaching the world what is the truth.
! REFLECTION
No one has ever spread as much shameful slander about Christ the Lord as the Jews. Their Talmud seethes with evil and malice toward the Lord. But all of those worthless calumnies are refuted by the most prominent historian of the Jews, Josephus Flavius, a rabbi and scholar who lived near the end of the first century after Christ. Josephus writes: "Now there was about this time Jesus, a wise man, if it be lawful to call Him a man; for he was a doer of wonderful works, a teacher of such men as receive the truth with pleasure. He drew over to Himself both many of the Jews and many of the Gentiles. He was the Christ. And when Pilate, at the denunciation of the most eminent men among us, had Him condemned to the cross, those that loved Him from the first did not forsake Him. He appeared to them alive again the third day, as the divine prophets had foretold, and they foretold many other things concerning Him. And the sect of Christians, so named after Him, remains to the present day." [Antiquities of the Jews, Volume 2, Page 45 1845 Edition]. Thus wrote a man who did not believe in Christ but was a scholar free of prejudice and malice.
! CONTEMPLATION
To contemplate the miraculous healing of Peter's mother-in-law:
# How the Lord took the feverish woman by the hand, and the fever left her and she served them;
# How the Lord can cure even me of the fever of passion, so that I may immediately straighten up and serve Him with my whole spirit.
! HOMILY
! About what is the beginning of wisdom
"The fear of the Lord is the beginning of wisdom" (Proverbs 1:7).
If someone knew the number of stars in the heavens and the names of the fish in the sea and the amount of the grass in the field and the habits of the beasts in the forest, but did not have the fear of God, his knowledge would be as water in a sieve. And his knowledge would make him a greater coward in the face of death than the completely ignorant.
If someone could guess all the thoughts of mankind and foretell the fate of mankind and reveal every mystery that the earth conceals in its depths, but did not have the fear of God, his knowledge would be as milk poured into an unclean container, by which all the milk would be spoiled. And, in the hour of his death, his wisdom would not shine even as much as a piece of charcoal without a flame, but would make the night of his death even darker.
//The fear of the Lord is the beginning of wisdom. //How can he who has not begun aright finish aright? Whoever has started out on a wrong path from the beginning must turn back and take up the correct beginning, i.e., he must set his feet on the right path. He who does not have the fear of God cannot have love for God. What are we talking about? He who has no fear of God has no faith in God. The greatest ascetics, those who mortified themselves and who lived a life of asceticism day and night for forty or fifty years, were filled with the fear of God until death, and these, the most sinless among mortals, cried out at their hour of death: "O God, have mercy on me a sinner!"
The fear of God is the salt of all piety. If there is no such salt then all of our piety is insipid and lax. The fear of God girds the loins, girdles the stomach, makes the heart sober, restrains the mind, and flogs self-will. Where is repentance without the fear of God? Where is humility? Where is restraint? Where is chastity? Where is patience? Where is service and obedience?
O my brethren, let us embrace this word as the holy truth: //The fear of the Lord is the beginning of wisdom.// O Lord Almighty, implant Your fear in our hearts.
To Thee be glory and praise forever. Amen.
! THE PRIESTLY-MARTYR TIMOTHY, BISHOP OF BRUSSA
Because of Timothy's great spiritual purity, God granted him the gift of working miracles, and he cured all diseases and afflictions of the people. During the reign of the wicked Emperor Julian, who denied Christ, Saint Timothy was cast into prison. Even in prison the faithful visited him in order to listen to the wise instruction of their arch-pastor. Learning of this, Julian ordered the executioner to behead Timothy in prison, in the year 362 A.D. His soul departed into Paradise, while his relics have remained miracle-working, to help the people and to manifest the power of God.
! THE HOLY MARTYRS ALEXANDER AND ANTONINA
Both Alexander and Antonina were from Alexandria. Antonina was an honorable virgin and Alexander, an imperial soldier. They were both Christians. Antonina was first brought to trial and tortured. When they cast her into prison, Alexander, by the command of an angel of God, went to the prison (even though until then he had not know Antonina), covered her with his military mantel and told her to lower her head and so pass through the guards in front of the gates. And so the virgin escaped, and the soldier Alexander remained in prison. Then they brought Alexander before the judge and tortured him for the name of Christ. Hearing of this, Antonina herself appeared before the judge, who subjected both of them to various tortures. He severed their hands, flogged their naked bodies, burned their wounds with candles, and finally threw them into a fire which was burning in a pit, and then covered them with earth. They suffered honorably for the sake of the love of Christ and took up their habitation in the mansions of the Heavenly King on May 3, 313 A.D. Festus, the evil judge, became dumb at the moment of the death of the martyrs, and an evil spirit seized him, tormented him for seven days, and finally killed him.
! SAINT BASSIAN, BISHOP OF LODI
Bassian was born a pagan in Syracuse of prominent and wealthy pagan parents. He was educated in philosophy in Rome. By his earnest desire, he was baptized by the pious Elder Gordianus. This offended his parents; in order to escape their wrath, and in accordance with the command of Saint John the Theologian, who had appeared to him, Bassian traveled to Ravenna and visited Bishop Ursus, his kinsman. At the advice of the bishop, Bassian took up residence in the Church of the Holy Martyr Apollinarius outside the city. There he struggled long in labor, fasting and prayer. When the bishop of the city of Lodi in Liguria died, Bassian was elected, according to a revelation in a dream, even though he did not desire it. He was consecrated bishop by Ambrose of Milan and Ursus of Ravenna. Bassian possessed a great gift of healing and could also resurrect the dead. Bassian was present at St. Ambrose's final moments and heard from his mouth how he saw the Lord Jesus Christ. Bassian lived in labor and asceticism to an old age, and in the ninetieth year of his life he died and was translated into the Kingdom of God in about the year 409 A.D. Bassian's holy relics remained miracle-working, to witness to the power of God and the greatness of God's saints.
! HYMN OF PRAISE
! SAINT BASSIAN
Holy Bassian loved the Lord;
Holy Bassian to the Lord prayed.
Upon him, the merciful Lord bestowed grace:
What all men do, Bassian perceived,
How the demons dance an evil dance,
And how, men to evil, they incite.
Once Bassian through the town walked
And saw a merchant as he falsely weighed.
On the scale stood a devil black,
Wrongly weighing and falsely counting.
The merchant was happy to cheat everyone
And with a few goods to make great profit!
Holy Bassian to the market walked
And to the merchant cried out: "Open your eyes!
In easy gain, do not rejoice!
Open your eyes! Behold your partner!"
With that the merchant's eyes were opened;
He saw the devil and fell backward,
Filled with fear, filled with trembling.
All gain he saw for him was cursed,
And began to sob bitterly as he before the saint knelt.
To Bassian he said: "Pray for me."
"Repent, Repent!" Bassian instructed him,
"That your soul eternally not suffer."
From his accomplice, the devil, money he had received,
But the devil his soul had sought in return.
! REFLECTION
It is not the same to eat your meal with a blessing and to eat it without a blessing. Every meal is God's table, which God Himself has set for us. This is why it is necessary to thank God as our Host and beg His blessings. Food that has been blessed is more tasty and more satisfying, while unblessed food is unpalatable, unsatisfying and unhealthy. On one occasion, Emperor Theodosius the Younger went for a walk in the surroundings of Constantinople and, seeing the hut of a monk, stopped and visited. The elder asked the emperor whether he would like something to eat? "I would," answered the emperor. The elder brought bread, oil, salt and water before the emperor. The emperor ate and drank and then asked the monk: "Do you know who I am?" "God knows who you are," replied the monk. "I am Emperor Theodosius." The monk bowed down before the emperor silently. The emperor said to him: "I am an emperor and the son of an emperor, but, believe me, never in my life have I eaten such tasty food as I have today with you." "And do you know why?" asked the elder. "Because," he continued, "we monks always prepare our food with prayer and blessing, and therefore bitter food is transformed for us into tasty food. With you, however, food is prepared with much labor, but you do not seek a blessing (from God), and because of that even tasty food becomes tasteless."
! CONTEMPLATION
To contemplate the miraculous healing of the man with a withered hand: //A man with a withered hand happened to be there and they put this question to Jesus, hoping to bring an accusation against him: "Is it lawful to work a cure on the Sabbath?"// (St. Matthew 12:10):
# How the Lord said to the man with the withered hand: //Stretch forth your hand!// And he stretched it forth;
# How my hands are also withered when I do not give charity. The Lord continually speaks to me: //Stretch forth your hand!//
! HOMILY
! About how that of which he is afraid befalls the sinner
"The fear of the wicked, it shall come upon him; but the desire of the righteous shall be granted" (Proverbs 10:24).
The wicked one fears imminent death, the thief fears the burglar, the murderer fears the sword, the proud one fears shame, the abductor fears hunger, the glutton fears sickness, and the slanderer fears the judgment of truth. That which the wicked one fears is what will befall him.
The righteous one desires a pure conscience, good thoughts, peace, charity, love, truth, justice and meekness. God gives these to him even while he is here on earth. The righteous one desires the Kingdom of God, Paradise, the company of the angels and saints, and to reflect upon the face of God in life eternal. God gives all these to him when He calls him to Himself.
Oh, how just is the Lord toward the wicked one and how beneficent He is toward the righteous one! That which the wicked one fears, the Lord permits to befall him; and that which the righteous one fears, the Lord removes from him. Of what is the righteous one afraid? Only sin. God removes sin from the righteous one and directs his feet on the path to virtue; and God protects the righteous one from evil spirits, the sowers of sin, and, by His grace, waters the seeds of virtues in his heart.
O All-seeing Lord, protect us from the paths of the wicked, from the gain of the wicked, and from the fear of the wicked! Help our wavering hearts to become steadfast in the desire only for that which is pleasing to You. For that which is pleasing to You will, in the end, conquer and reign, and everything else will be given over to decay and forgetfulness.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE BARTHOLOMEW
Bartholomew was one of the Twelve Great Apostles. In all probability, it appears that Bartholomew and Nathaniel are one and the same person. Together with the Apostle Philip and Philip's sister, the virgin Mariamna--and for a time with St. John the Theologian--Bartholomew preached the Gospel first throughout Asia, then in India and finally in Armenia, where he died a martyr's death. In Hierapolis, these holy apostles, by prayer, caused the death of a large serpent that the heathens kept in their temple and worshipped. In this same city, by prayer, they restored sight to Stachius, who had been blind for forty years. It was here that a mob rose up against them and crucified Philip and Bartholomew. (Bartholomew was crucified upside down). At this time, there occurred an earthquake in which the evil judges and many people perished. Feeling that this was a punishment from God, many ran to remove the apostles from the crosses, but Philip was already dead, although Bartholomew was still alive. After this, Bartholomew went to India, where he preached and translated the Gospel of St. Matthew into the Indian language. Then he entered Armenia, where he cured the king's daughter of insanity. But the envious brother of King Astyages seized God's apostle, crucified him on a cross, skinned him, and finally beheaded him in Armenian Albanopolis [Derbend]. Christians honorably buried his body in a lead coffin. Because many miracles occurred over his relics, the pagans took the coffin and cast it into the sea. But the water carried the coffin to the Island of Lipara, where Bishop Agathon, through a revelation in a dream, met it and buried it in the church. St. Bartholomew, attired in a white garment, appeared in church to the Venerable Joseph the Hymnographer and blessed him with the Gospel, that he might be able to sing spiritual hymns, saying: "Let heavenly waters of wisdom flow from your tongue!" He also appeared to Emperor Anastasius (491-518 A.D.) and told him that he would protect the newly established town of Dara. Later, the relics of this great apostle were translated to Benevento and then to Rome. Great and awesome miracles have occurred over these relics.
! SAINT BARNABAS, THE APOSTLE
Barnabas was one of the Seventy Apostles. He was born in Cyprus of wealthy parents from the tribe of Levi, and studied together with Saul under Gamaliel. At first he was called Joseph, but the apostles called him Barnabas, "son of consolation," because he was exceptionally capable of comforting the souls of the people. After Saul's conversion, Barnabas was the first to introduce Saul to the apostles; Barnabas later preached the Gospel with Paul [Saul] and Mark in Antioch and in other places. In all probability, he was the first to preach in Rome and Milan. He suffered on the island of Cyprus at the hands of the Jews, and he was buried by Mark beyond the western gate of the town of Salamis. On his chest there was placed a copy of the Gospel of St. Matthew which he had copied with his own hand. His grave remained unknown for several hundred years, but since many received healing from sickness at this place, it was called: "the place of healing." In the time of Emperor Zeno and the Chalcedon Council [451 A.D.], the apostle appeared in a dream to Archbishop Anthemius of Cyprus on three successive nights and revealed to him the location of Barnabas' grave. This appearance of the apostle occurred exactly at the time when Peter, the power-hungry Patriarch of Antioch, was seeking to bring the Church in Cyprus under the jurisdiction of the throne of Antioch. After the appearance and discovery of the miraculous relics of the Holy Apostle Barnabas, it was established that the Church in Cyprus, as an Apostolic Church, should always be independent. Thus the autocephaly of the Church in Cyprus was established.
! THE COMMEMORATION OF THE HOLY ICON OF THE THEOTOKOS "AXION ESTIN," [DOSTOJNO JEST - IT IS TRULY MEET TO BLESS YOU] AND THE MIRACLE THAT OCCURRED BEFORE IT DURING THE REIGN OF PATRIARCH NICHOLAS CHRYSOVERGES (983-996 A.D.)
The miracle consists of this: One night a monk was reading the Canon to the Mother of God and was singing "More honorable than the Cherubim" in his cell in the Monastery of the Pantocrator, now called "Axion Estin" after the icon. His elder had gone to Karyes. Suddenly a man appeared in church and began to sing: "It is truly Meet." Until then that hymn had been unknown in the Church. Upon hearing this hymn, the monk became enraptured, as much by its contents as by the beautiful heavenly singing. "Among us, we sing it in this manner," said the stranger to the monk. The monk wanted to have this hymn written down, and brought a stone tablet on which the stranger wrote down the hymn with his finger as though upon wax. Suddenly he vanished. This stranger was the Archangel Gabriel. The tablet was taken to Constantinople, and the hymn has endured in the Church even to this day.
! HYMN OF PRAISE
! "IT IS TRULY MEET"
A monk at night, alone in church
With fervent prayer dispelled the darkness from his soul
All at once another monk arrived--about him, nothing unusual--
And, like an experienced chanter, began to sing.
Then the first monk began: "More Honorable ..."
Glorifying the Mother of God, the Mother most glorious.
To him, the miraculous guest spoke about this hymn of praise:
"Among us," said he: "this hymn we sing differently.
We do not begin as you do,
But rather with 'It is truly Meet,' venerable father!"
And the entire hymn "It Is Truly Meet" he recited.
The first monk tried not to miss a word.
"Now I breathe easier, O my virtuous brother.
Your hymn, allow me to copy!"
But no paper or even a pencil had he:
The church is a place for prayer not for writing!
Then the midnight guest over the church made the sign of the Cross,
And on a stone with his finger he began to write.
As on soft wax, on the stone he wrote;
At this man the monk was amazed.
To the unusual guest, the monk asked: "Who are you?"
"My name is Gabriel. For you that should be enough."
And straightway he disappeared. With great fear the monk
Recognized the Archangel under the monastic robe.
That which he wrote no one erased.
With heavenly fragrance the church was filled.
! REFLECTION
A true friend prays to God for his friend. A true friend is concerned for the salvation of the soul of his friend. To dissuade a friend from false paths and to direct him on the path of truth--that is precious friendship. The saints of God are the greatest friends of mankind. Two youths, Barnabas and Paul, were friends while they were together attending the school of Gamaliel. When Barnabas became a Christian, he persistently and tearfully prayed to God that He would also enlighten Paul's mind and turn his heart in order that he might become a Christian. Barnabas often spoke to Paul about Christ the Lord, but Paul ridiculed him and considered him as one led astray. However, the Good Lord did not leave the prayers of Barnabas without fruit. The Good Lord appeared to Paul and turned him from the path of falsehood to the path of truth. The converted Paul then fell before the feet of his friend and cried out: "O Barnabas, teacher of truth, I am now convinced that everything you said to me about Christ is the truth!" Barnabas wept with joy and embraced his friend. The friend saved the soul of his friend by his fervent prayer. If Barnabas had succeeded in establishing Paul as emperor of Rome, he would have done less for him than he did in bringing him to the truth by prayer.
! CONTEMPLATION
!
To contemplate the miraculous healing of the blind and dumb man: //Then was brought to Him one possessed with a devil, blind and dumb: and He healed him, insomuch that the blind and dumb both spoke and saw// (St. Matthew 12:22):
# How the Lord healed the man who was blind and dumb;
# How the Lord can instantly heal even my soul, blind and dumb because of my remoteness from Christ, only if I bring my soul to Him.
! HOMILY
! About the master and the slave
"He who spares his rod hates his son but he who loves him takes care to chastise him" (Proverbs 13:24).
God's love for men transcends the love of men for men as the heaven transcends the earth, and yet the man-loving God chastises men. God chastises men, not in order to destroy them, but to correct and save them. O blessed chastisement which emanates from love! //For whom the Lord loves, He chastises; and He scourges every son whom He receives// (Hebrews 12:6). With what does God chastise? With a rod! What kind of rod? The rod of sickness, the rod of misfortune, the rod of loss, the rod of hunger, the rod of crop failure, the rod of drought, the rod of floods, the rod of the death of relatives and friends, the rod of evil demons when He permits them authority over man. These are the rods of God by which God chastises His children in order that He may correct them, bring them back to their senses, enlighten them, and save them.
Why should the parent not chastise his children if he truly loves them? The rod is a tool of great love and concern. If a child is not sensitive to spiritual chastisement, he is sensitive to the rod. The more insensitive a child is to the spirit and conscience, the more sensitive he is to the body. The body was not given to man in order that it have meaning by itself; rather, the body is to be a servant of the spirit, to help the spirit and to benefit the spirit. If corporal punishment awakens the spirit in man, and the spirit awakens the conscience, then the body has completely fulfilled its duty toward the spirit, its master. If the master [spirit] is asleep, then the servants are struck in order to arouse the master [the spirit]. If the servants awaken their master in the hour of danger, they will not lament the blows that they have received, for they have saved their master. And the awakened and saved master will know how to repay his servants. Hence, in truth, //He who spares his rod hates his son.// Whosoever spares the servant, betrays the master.
O All-wise Lord, open the hearts of parents that they may receive this holy instruction of Yours.
To Thee be glory and praise forever. Amen.
! THE VENERABLE ONUPHRIUS THE GREAT
This saintly hermit had been living in the desert for sixty full years when the monk Paphnutius visited him. His hair and beard reached to the ground and his body, due to a long period of nakedness, was covered with long hair. All his hair was white as snow and his entire appearance was brilliant, sublime and awesome. Seeing Paphnutius, Onuphrius called him by name and recounted to him his [Onuphrius's] life in the wilderness. His guardian angel had appeared to him and brought him to this place in the wilderness. For a long time he had eaten only vegetables, which could rarely be found in the wilderness. After he had endured violent combat with the temptations of the demons, and his heart had been completely strengthened in the love of God, an angel of God brought him bread for nourishment. Besides that, by the good providence of God, there grew up next to his cell a palm tree that brought forth dates abundantly, and a spring of living water began to flow there. "However," Onuphrius said: "I mostly nourish myself and quench my thirst with the sweet words of God." To Paphnutius's question as to how he received Holy Communion, the hermit answered that an angel of God brought him Holy Communion every Saturday. The next day the elder told Paphnutius that it was the day of his departure from this world; he knelt down, prayed to God and gave up his spirit unto God. At that moment Paphnutius saw a heavenly light illuminating the body of the reposed saint and heard the singing of angelic hosts. Having honorably buried the body of Onuphrius, Paphnutius returned to his monastery, that as a living witness he might narrate to others, for their benefit, the wondrous life of this man and the greatness of God's providence toward those who have completely given themselves over to the service of God. Onuphrius died in the year 400 A.D.
! VENERABLE PETER THE ATHONITE
Peter was a Greek by birth and a soldier by profession. Once, in battle against the Arabs, Peter was captured, bound in chains, and cast into prison. Peter remained imprisoned a long time in the town of Samara on the Euphrates River, and he constantly prayed that God would free him from prison and take him to a wilderness, where he would dedicate himself completely to a life of prayerful asceticism. St. Simeon the Receiver of God, together with St. Nicholas, appeared to him in prison and touched his iron chains with his staff; they melted like wax and Peter suddenly found himself in a field outside the town. He immediately set out for Rome, where he was tonsured a monk by the pope himself at the tomb of St. Peter. After this he again departed by boat for the east. The All-Holy Birth-giver of God, along with St. Nicholas, appeared to him in a dream, and the Birth-giver of God told St. Nicholas that she had designated Mt. Athos for Peter to live on in asceticism. Up to this time Peter had never heard of Mount Athos. Disembarking therefore on the Holy Mountain, Peter settled in a cave, where he remained for fifty-three years in difficult ascetic labors, in a struggle with hunger and thirst, with heat and cold, and especially with deomonic powers, until he had overcome all with the help of God. After he had endured the first temptations and had successfully passed the first difficult tests before God, an angel of God began to bring him bread every forty days.
On several occasions, the tempter--the devil--appeared to him under the guise of an angel of light, but Peter repelled him with the sign of the Cross and the name of the All-Holy Birth-giver of God. About a year before his death he was discovered by a hunter who was hunting deer around Athos, and from the mouth of the saint heard his life's story. He died in the year 734 A.D. His relics were translated to Macedonia.
! THE VENERABLE TIMOTHY THE EGYPTIAN HERMIT
Timothy first lived a life of asceticism in the Thebaid and then withdrew into the wilderness, where he lived for thirty years. Having pleasing God, he died peacefully.
! THE VENERABLE BASSIAN AND JONAH
Bassian and Jonah were monks of the Solovki Monastery. They drowned and were washed ashore in the year 1651 A.D. Over their graves a sign appeared, and because of this a church was built. The Petrominsk Monastery was subsequently established there. Once, when Tsar Peter the Great was saved from a tempest, he remained there for three days, made a cross, and erected it on the shore.
! HYMN OF PRAISE
!
! THE VENERABLE PETER THE ATHONITE
!
Saint Peter in the fearful wilderness
Of all earthly riches was deprived,
But through tearful prayer he overcame
All the rich illusions of the devil.
His heart he bridled and to God raised it;
His mind he set upright and to heaven uplifted it.
Immobile as a rock among the cliffs,
Wearied by hunger and all-night vigils,
He directed himself toward every good,
As a fleshless one in earthly flesh.
On Mt. Athos, for half a century,
In prayer he spoke only with God.
From age he turned as white as snow;
No man he saw, nor did he desire to.
To him God revealed the window of heaven;
Countless miracles he saw,
The Mother of God and God's angels,
And the all-wonderful saints of God.
To him the Lord an angel sent
Who gave him Holy Communion from heaven,
Until Peter made himself a spiritual giant,
A city on a high mountain,
To be a teacher throughout the ages,
To the holy monks, a wonderful example.
! REFLECTION
Great and wonderful is the Mystery [Sacrament] of Holy Communion. Even anchorites [recluses] and hermits craved for nothing so much as to be given the possibility to receive Holy Communion. St. Mary of Egypt begged St. Zosimas to bring her the Holy Mysteries by the Jordan and commune her. Returning from visiting St. Onuphrius, the Venerable Paphnutius found a humble community of four young ascetics in the desert. When Paphnutius asked them whether and how they received Holy Communion, they replied that an angel of God visited them every Saturday and Sunday and gave them Holy Communion. Paphnutius remained until the following Saturday and was personally convinced. When Saturday dawned the entire community was filled with an indescribable, wonderful fragrance, and while they were at prayer, an angel of God in the form of a handsome young man, as bright as lightning, appeared with the All-pure Mysteries. Paphnutius became frightened and fell to the ground in fear. But they raised him up and brought him to the angel, so that he, along with them, received Communion from the hand of the angel. According to his own testimony, St. Onuphrius received Holy Communion from the hand of an angel, as did many other anchorites and hermits. Therefore, it is completely erroneous to think that solitaries and hermits did not receive Holy Communion. God, Who provided for their bodily nourishment, did not leave them without the Life-giving nourishment of the Body and Blood of Christ the Lord.
! CONTEMPLATION
To contemplate the miraculous multiplying of the bread in the wilderness: //And when it was evening, his disciples came to Him saying: This is a desert place, and the time is now past; send the multitude away that they may go into the villages, and buy themselves victuals// (St. Matthew 14:15):
# How the Lord fed five thousand people with the five blessed loaves;
# How He is that Living Bread Who alone can miraculously feed my hungry soul, which all the rest of the world together cannot feed.
! HOMILY
! About the palace and the hut
"The house of the wicked shall be overthrown but the hut of the righteous shall flourish" (Proverbs 14:11).
The palace of Herod lies in ruins, but the cave of the Child of Bethlehem remains. The crowns of the caesars have been lost, but the bones of the martyrs have been preserved. The palaces of the pagan kings have been transformed into piles of stone and dust, but the caves of the ascetics have grown into most beautiful churches. The golden idols have been scattered into nothing, but the chains of the Apostle Peter are preserved as a holy relic. The powerful Roman Empire is now only a tale of the dead, while the hut of Christianity, the Holy Church, is today the most powerful realm in the world. Where are the Jews, the murderers of God? They are dispersed throughout the world. Where are the powerful Romans? In the grave. Where is the power of bloody Nero? Where is the power of the evil Diocletian and the depraved Maximian? Where is the success of Julian the Apostate? Where are those high towers? They are where the tower of Babel is--beneath dust and ashes, beneath shame and damnation.
Go about your own city and inquire how many homes of the godless are excavated? How many huts of the righteous have grown into beautiful houses? Brethren, heaven and earth are founded on justice, on God's steadfast justice. That is why all the pagan creations are like arrogant bubbles, which burst and are trampled on by passers-by. The palaces of the pharaohs and the Babylonians are like trampled bubbles, while the tent of the righteous Abraham flourishes and blossoms in eternity. O my brethren, how all-powerful and long lasting is justice, and how noisy and transient is injustice, like a storm on a summer's day!
O Righteous Lord, how magnificent and consistent You are in the exercise of Your justice.
To Thee be glory and praise forever. Amen.
! THE HOLY FEMALE MARTYR AQUILINA
Aquilina was born in the Palestinian town of Byblos of honorable Christian parents. At age seven little Aquilina was already completely versed in the true Christian life, and at age ten she was so filled with divine understanding and the grace of the Holy Spirit that she preached Christ to her female companions with great power and zeal. When Diocletian's persecution began, someone accused Aquilina before Volusian, the imperial deputy, who was more like a beast than a man. Volusian first ordered that Aquilina be flogged and then that a red-hot rod be passed through her ears and brain. To the last moment, the virgin Aquilina freely and openly confessed Christ the Lord, but when her brains and blood began to flow from her head, she fell as though dead. The deputy, thinking Aquilina was indeed dead, ordered her body to be carried outside the city and thrown upon a dung heap for the dogs to consume. But an angel of God appeared to her at night and said to her: "Arise, and be whole!" The virgin arose and was whole, and for a long time she offered up praise of thanksgiving to God, imploring Him not to deprive her of fulfilling the ascetic feat of martyrdom. A voice from heaven was heard: "Go; it shall be unto you as you ask!" And Aquilina set out for the town. The gates of the town opened of their own accord before her, and she entered the palace of the deputy like a spirit and appeared before his bed. The deputy was seized with unspeakable fear, seeing the virgin alive whom he thought was dead. The following day, at his command, the executioners led Aquilina out to behead her. Before her beheading, the virgin Aquilina prayed to God on her knees and gave up her soul. The executioner cut off her lifeless head. Her relics gave healing to many of the sick. Aquilina was twelve years old when she suffered for the Lord. She suffered and was crowned with a martyr's wreath in the year 293 A.D.
! SAINT TRIPHYLLIUS, BISHOP OF LEUCOSIA [NICOSIA] IN CYPRUS
Triphyllius was a disciple of St. Spyridon and later his fellow worker on the island of Cyprus. He was a merciful man, pure in thought and chaste throughout his life, "a living fountain of tears," and a great ascetic. He governed Christ's flock well, and when he reposed he received a wreath among the great hierarchs in the heavens. He died peacefully in the year 370 A.D.
! SAINT ANNA AND HER SON JOHN
Taken as an orphan into the home of a nobleman and cared for as an adopted daughter, Anna was raised and educated in that home. As a worthy maiden, she was wed by this nobleman to his son. When the elder nobleman died, the relatives pressed his son to release his wife because of her lowly birth and to marry another who, according to origin and wealth, would be more suitable for him. The nobleman's son feared God and did not want to do this. Seeing her husband in conflict with his relatives, Anna secretly left him and fled to a distant island, where there was not a living soul. But she arrived at the island pregnant and soon bore a son. There she lived in asceticism for thirty years in fasting and prayer. Then, according to God's providence, a hieromonk landed on this island, baptized her son, and gave him the name of John. This holy soul, Anna, lived in asceticism in the fifth century and died peacefully.
! HYMN OF PRAISE
!
! SAINT TRIPHYLLIUS
!
While Saint Triphyllius was yet a deacon,
The Psalter and the Gospels he read.
Humbly and with a sweet voice to the people he read,
And the holy Spyridon attentively listened.
Once in a church crowded with people,
The chapter on the Paralytic he beautifully read,
How the gentle Lord the sick one saw.
"Take up your bedding," said He, and the sick one departed.
Triphyllius substituted the word "bedding" for "bed."(//)
Then said Spyridon: "My son, come to me!
How, my dear deacon, do you change the words,
The words which our gentle Savior uttered?
The word 'bed' from His mouth came
But 'bedding' you said, and His word you omitted!
My son, this is a book from on high inspired;
Therefore, everything as it is written in it, let us read.
Full of power, the Gospel words are,
And weak and decayed human words are.
The bed of a man is not the same as an animal's bedding;
Therefore, my son, say: 'God forgive me!'"
Triphyllius, the deacon, his error realized,
Bitterly repented and was much ashamed.
Triphyllius was blessed because of his spiritual father,
Saint Spyridon the glorious miracle-worker.
[(//) The distinction between these two words cannot be made in English.
The word Tryphillius substituted can mean the type of "bed" used by animals. --//Ed.//]
! REFLECTION
Meekness and kindness adorned our saints and gave them strength and understanding not to return evil for evil. When Emperor Constantius, the son of the Emperor Constantine the Great, became ill in Antioch, he summoned St. Spyridon to offer prayers for him. St. Spyridon, in the company of Triphyllius, his deacon, departed Cyprus and arrived in Antioch before the imperial palace. Spyridon was clad in poor clothing. He wore a simple woven cap on his head, in his hand was a staff from a palm tree, and on his breast he bore an earthen vessel containing oil from the lamp that burned before the Precious Cross (which at that time was the custom of Christians in Jerusalem to wear). Dressed in this way and, in addition, exhausted by fasting, prayer, and the long journey, in no way did the saint betray his rank and dignity. When he wished to set foot in the imperial palace, one of the emperor's servants, thinking him to be an ordinary beggar, struck him with his fist on the cheek. The meek and kind saint turned the other cheek to him. When, with great difficulty, he succeeded in reaching the emperor, Spiridon touched the head of the emperor and the emperor recovered.
! CONTEMPLATION
To contemplate the Lord's miraculous walking on water as on dry land: //And when the apostles saw Him walking on the sea, they were troubled, saying: 'It is a spirit and they cried out in fear'// (St. Matthew 14:25):
# How the boat with the disciples was in danger on the waves of the sea at night, and how the Lord, seeing this, hastened to their help;
# How I too am often in trouble from the darkness and the waves of passions and how the merciful Lord hastens to help me in walking over passions as over a solid road.
! HOMILY
! About the path of life and the path of death
"Sometimes a way seems right to a man but the end of it leads to death!" (Proverbs 14:12).
It sometimes appears to man that the path of the godless is right, for he sees that the godless man obtains riches and succeeds. Oh, if it were only given to him to see the end of that path! He would be horrified and would never tread on that path.
If the end of a path is destruction, can it be the right way? Therefore, O man, do not say that a way is right if you do not see its end. You ask: "How can I, a weak and shortsighted man, perceive the end of a long path?" In two ways: by reading Holy Scripture within the experience of the Orthodox Church, and by observing the end of the path of life of those around you and who die before you. However, the first way is the more reliable one, and if you adhere to it, know that you will not stumble into the night of eternal death.
Only that path is right which is shown by God as right. All other ways that appear right to your mind, but which do not coincide with the way of God, are wrong and are deadly. Behold, even the beasts have their paths, but would you travel those paths if they seemed right to you? Do not go, for in the end you will fall into the hungry jaws of the beasts. And the path shown by God, even if it appears wrong to you, is right--therefore travel by it. Because of our sins, the path of God occasionally seems wrong to us. If we were without sin and if our minds were not distorted by sin, it would not be possible for us, even for a moment, to conceive that another path is right except God's path. To a distorted mind, many wrong paths seem right, and the only right path seems wrong.
O All-seeing Lord, our Guide, correct our minds, that we not be detained on false paths. O Jesus, You are the only Way, Truth and Life, and what we invent apart from You is the wrong way, a lie and death.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET ELISHA
Elisha lived nine hundred years before Christ. When the Lord willed to take the aged Prophet Elias (Elijah) to Himself, He revealed to him that He had designated Elisha, the son of Shaphat, of the tribe of Reuben from the town of Abel-Meholah, as his successor in the prophetic service. Elias informed Elisha of God's will and draped him with his mantle, imploring God for a two-fold portion of grace of prophecy for him. Elisha immediately left his home and family and followed Elias. When the Lord took Elias in a fiery chariot, Elisha remained to continue the prophetic service with yet greater power than Elias. By his purity and zeal, Elisha was equal to the greatest prophets, and by the miraculous power that was given to him by God, Elisha exceeded them all. He parted the waters of the Jordan as Moses once parted the Red Sea; he made drinkable the bitter waters in Jericho; he brought forth water into the excavated trenches during the war with the Moabites; he multiplied the oil in the pots of the poor widow; he resurrected the dead son of the Shunammite woman; he fed a hundred people with twenty small loaves of bread; he healed commander Naaman of leprosy; he called down leprosy upon his servant Gehazi because of the latter's greed; he blinded the entire Syrian army and also forced another army to flee; he foretold many events to the nation as well as to individuals. Elisha died at a very old age.
! SAINT METHODIUS, PATRIARCH OF CONSTANTINOPLE
Methodius was born in the town of Syracuse in Sicily. After the completion of his secular studies, he was tonsured a monk and began to live a life of asceticism in a monastery. Patriarch Nicephorus took him into his service. During the reign of the iconoclastic emperors, he became widely known as a firm defender of the veneration of icons. For this, the wicked Emperor Theophilus exiled him to an island with two common criminals, where he languished in a damp prison for seven years, without light and without sufficient food, as though in a grave. During the time of the pious Empress Theodora and her son Michael, Methodius was freed and was chosen as patriarch (in accordance with an earlier prophecy of St. Joannicius the Great). On the first Sunday of the Great Fast [Lenten Season], Methodius solemnly carried the icons into the church, and he also wrote a canon in honor of the icons. Unable to outwit him, the vile heretics hired a woman who declared that the patriarch had engaged in an impure relationship with her. The whole of Constantinople was horrified at this slander. Nevertheless, not knowing how he could otherwise prove his innocence, the patriarch overcame his embarrassment, removed his clothes and stood naked before the court, which he had assembled at his request, and showed his withered body, debilitated from fasting. The court was clearly convinced that the patriarch had been slandered. Hearing of this, the people rejoiced and the heretics were put to shame. Then, the woman admitted that she had been persuaded and paid to bring this slander against the saint of God. Thus, those who thought to bring shame upon Methodius, unintentionally increased his fame. This great confessor of the Faith died peacefully in the year 846 A.D. and took up habitation in the Kingdom of God.
! SAINT JOHN, METROPOLITAN OF EUCHAITA
John was surnamed Mavron [The Black.] He was a very educated man and at the same time a spiritual man. In his old age, during the reign of Emperor Alexius Comnenus, John became Metropolitan of Euchaita. He is especially well known for that fact that St. Basil, St. Gregory the Theologian and St. John Chyrsostom (see January 30) appeared to him and explained how all three of them are equally glorified in heaven. After this vision the dispute among the people--concerning who of the three saints was the greatest and who was the least--quieted down. St. John also wrote the famous Canon to the Most Sweet Jesus and a canon to the Guardian Angel as well as other beneficial writings. He died peacefully in the year 1100 A.D.
! VENERABLE NIPHON
Niphon was born in the region of Argyrokastron in the village of Lukov. He was the son of a priest. From his youth he was attracted to solitude and prayer. That desire finally led him to Mt. Athos, where he lived a life of asceticism, at first in the cave of St. Peter the Athonite and later in the wilderness of St. Anna. He did not even want to eat bread but fed on vegetation and roots. Some envious people accused him of having an aversion to bread, but he easily and quickly cleared himself of this accusation. Finally he became associated with St. Maximus of Kapsokalyvia. Because of his sincere love for God, Niphon was endowed with the gift of miracle-working and discernment (clairvoyance). He healed the sick by his prayer and by anointing with oil, and he clearly saw events both past and future. About himself he prophesied that he would die during the Fast of Saint Peter [This fast precedes the feast of Saints Peter and Paul]. When the day of his death dawned, he said to the brethren assembled around him: "Do not weep, rather rejoice, for in me you will have an intercessor before God for your salvation." At the end he said: "It is time for me to depart," and he gave up his holy soul to God on June 14, 1330 A.D.
! HYMN OF PRAISE
! THE PROPHET ELISHA AND COMMANDER NAAMAN (2 KINGS 5)
What good are riches and this beautiful world,
What good are authority and power, when a man is leprous?
But the commander Naaman is covered with leprosy,
From leprosy completely white, as though covered with purulence.
But the commander to the man of God hurries,
Only from him hoping for a cure,
With his entire caravan of clothing and gold.
This, to the man of God, let it be a payment!
Elisha said to him: to the Jordan go,
And in the water, seven times to bathe.
At his misfortune Naaman became angry:
"A river clearer and larger, do we not have?"
And quickly to his home, he wanted to return,
But from this, his wise servant dissuaded him.
"O Master," he said, "do not give up quickly.
Behold, the Jordan is nearby; go and bathe!"
Naaman hearkened to him and hastened toward the Jordan,
And in the river seven times he immersed himself.
Naaman became whole and the leprosy disappeared;
Naaman became whole and clean as a child.
"God is One, the God of Israel," he cried out;
"He works glorious miracles in abundance!"
! REFLECTION
The all-wise St. John Chrysostom said: "A place will not save us if we do not carry out the will of God." There is a tale of a certain monk who lived in a monastery where five brethren loved him and one brother offended him. Because of this one brother who offended him, he moved to another monastery. However, in this monastery eight of the brethren loved him and two of the brethren offended him. He then fled to a third monastery. But here, seven of the brethren loved him and five of the brethren offended him. He set out for a fourth monastery, but along the way he thought: "How long will I flee from place to place? I will never find peace in the whole world. It would be better for me to become patient." He pulled out a piece of paper and wrote in bold letters: "I will endure all for the sake of Jesus Christ, the Son of God." When he entered the fourth monastery, here also some love him and others offended him. But he patiently began to endure the offenses. As soon as someone offended him, he would take out that piece of paper and read: "I will endure all for the sake of Jesus Christ, the Son of God." So with patience he succeeded and all came to love him, and he remained in that monastery until his death.
! CONTEMPLATION
To contemplate the Lord's miraculous walking on the water as though on dry land: //But in the fourth watch of the night Jesus came to them walking upon the sea// (St. Matthew 14:25):
# How the Lord, walking upon the water, called to Peter: "Come!" (St. Matthew 14:29), and Peter set out, but because of his weak faith began to sink;
# How the Lord also calls me to walk over the waters and storms of the passions, and how I set out but sink because of my little faith.
! HOMILY
! About humility as a precursor of glory [honor]
"…And humility goes before honors [glory]" (Proverbs 15:33).
Here the word is about true glory and not false glory; about glory that is eternal and not about glory that dies. Glory that is of man is glory that dies, and glory that is of God is eternal. Those whom men glorify are not glorified, and those whom God glorifies are glorified. Our Lord said to the Jewish scribes: //How can you believe who receive glory [honor] from one another and do not seek the glory [honor] which is from the only God?//(St. John 5:44). See how our Lord makes a distinction between the glory from men and the glory from God? And about Himself, He said: //I do not receive glory from men// (St John 5:41).
He who seeks glory from men travels the path of pride, and he who seeks glory from God travels the path of humility. No one is glorified by God without humility. The saints of God were the most humble servants of God. The Most Holy Birth-giver of God [Theotokos] was adorned with overwhelming humility. Her being chosen as the Mother of God is attributed to her great humility: //Because He has regarded the lowliness of His handmaid// (St. Luke 1:48). But the humblest of the humble was our Lord Jesus Christ Himself, the Setter of the contest. During His earthly life humility always preceded glory. Brethren, it must also be that way in our life if we desire true glory. For if humility does not precede glory, glory will never come.
O Lord Jesus, Model and Teacher of humility, our only glory and the Glorifier of all the humble and meek, inspire us with Your inexpressible humility.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET AMOS
Amos was born in the village of Thecua near Bethlehem. Being of simple origin and life. Amos was a swine herdsman for a wealthy man of Jerusalem. But God, Who does not regard a person by his outward appearance but rather by the purity of his heart, and Who took both Moses and David from their sheep and appointed them leaders of the people, chose this Amos as one of His prophets. Amos rebuked King Uzziah and his pagan priests for idolatry and dissuaded the people from worshipping the golden calves in Bethel, teaching them to worship the One Living God. When the chief pagan priest, Amaziah, persecuted Amos, he prophesied that the Assyrians would conquer Israel, that they would slay the king and the sons of Amaziah, and that the Assyrian soldiers would defile Amaziah's wife before his eyes because he had led the people into adultery with idols. All of this later came to pass. The son of the pagan priest struck the prophet on the forehead with his staff so forcefully that Amos fell down. Barely alive, Amos was brought to his village of Thecua, where he surrendered his holy soul to God. Amos lived in the eighth century before Christ.
! THE HOLY MARTYRS VITUS, MODESTUS AND CRESCENTIA
St. Vitus was born in Sicily of renowned but non-believing parents. Modestus was his teacher and Crescentia was his governess. St. Vitus was baptized at an early age, and at the age of twelve he withdrew to live a life of great asceticism. Angels appeared to him and directed and strengthened him in his asceticism, and he himself was as radiant and beautiful as an angel of God. The hand of a judge who beat him withered, but Vitus healed the hand through prayer. His father was blinded, seeing in his room twelve radiant angels "whose eyes were as stars and whose faces were as lightning." Vitus restored his sight through prayer. When his father wanted to kill him, an angel appeared to Vitus and took him, together with Modestus and Crescentia, to Lucania on the shore of the river Silaris. Here Vitus worked many miracles over the infirm and the insane. At the request of Emperor Diocletian, Vitus traveled to Rome, where he expelled an evil spirit from the emperor's son. The emperor did not reward him for this but, on the contrary, cruelly tortured him because he would not worship the dumb idols. However, the Lord delivered him from all torments and, by His invisible hand, transported him back to Lucania, where he, Modestus and Crescentia all reposed in the Lord. The relics of St. Vitus are located in Prague, the Czech Republic.
! THE VENERABLE MARTYR DOULAS
Doulas lived a holy life in a monastery in Egypt. One of his brethren, out of envy, accused him of sacrilege: the stealing of ecclesiastical articles. They removed the cassock from the innocent Doulas and turned him over to the prince for trial. The prince ordered him to be scourged and wanted to cut off his hands, according to the law for such a crime, but at that moment that brother repented and declared the innocence of Doulas. After twenty years of exile and humiliation, Doulas was restored to the monastery, and on the third day he reposed in the Lord. His body vanished in a miraculous way.
! THE HOLY MARTYR LAZAR [LAZARUS], PRINCE OF SERBIA
Lazar was one of the Serbian noblemen who ruled the Serbian empire after the death of Tsar Dušan. After the death of Tsar Uroš, Patriarch Ephraim crowned Lazar as the Serbian king. Lazar sent a delegation to Constantinople with the monk Isaiah to implore the patriarch to lift [remove] the anathema from the Serbian people. He fought against the Turkish powers on several occasions. Finally, on June 15, 1389 A.D., he clashed [fought] with the Turkish Emperor Amurat at Kosovo Polje [the Field of Blackbirds, Kosovo Polje] where he was beheaded. His body was translated to and interred in Ravanica, the monastery he founded [Zaduzbina] near Ćuprija, and was later translated to [New] Ravanica in Srem, and from there, during the Second World War (1942), it was translated to Belgrade and placed in the Cathedral Church of the Holy Archangel Michael, where it rests today incorrupt, extending comfort and healing to all those who turn to him with prayer.(//) St. Lazar restored the monasteries of Hilandar [Mt. Athos] and Gornjak. He built Ravanica and Lazarica [in Kruševac] and was a benefactor of the Russian monastery St. Pantaleon [Mt. Athos] as well as many other churches and monasteries.
(//) In 1989, on the occasion of the 600th anniversary of his martyrdom, St. Lazar's relics were again translated to the Monastery of Ravanica in Ćuprija. --//Trans.//
! SAINT EPHRAIM, PATRIARCH OF SERBIA
As the son of a priest, Ephraim yearned for a spiritual and ascetical life from an early age. He fled to Mt. Athos when his parents wanted him to marry. He later returned and lived a life of asceticism in the Ibar gorge and in the Monastery of Dečani [Kosovo]. When rivalry and war broke out concerning precedence in the state and, unfortunately, even in the Church, the Synod [Sabor] chose Ephraim to succeed the deceased Sava as patriarch in 1375 A.D. When he was informed of his election, he wept bitterly but was unable to refuse. He crowned Prince Lazar as Tsar in 1382 A.D., then renounced his throne and turned it over to Spyridon and again withdrew to the wilderness. Following the death of Spyridon in 1388 A.D., Tsar Lazar begged him to accept the throne again. He governed the Serbian Church in the difficult time of the defeat at Kosovo [1389 A.D.] until 1400 A.D. when he died in the eighty-eighth year of his earthly life and took up his habitation with the Lord, Whom he loved. His relics repose in the Monastery of Peć [Kosovo].
! BLESSED AUGUSTINE, BISHOP OF HIPPO
Augustine turned from paganism to Christianity, thanks to the counsels, tears and prayers of his mother, Monica. He was a great teacher of the Church and an influential writer, but with certain impermissible extremes in his teaching. As bishop of Hippo, he glorified the Lord for thirty-five years and lived a total of seventy-six years on earth (354-430 A.D.).
! HYMN OF PRAISE
!
! SAINT VITUS
!
The most excellent Vitus, full of heavenly honey,
Before the unbelievers, confessed Christ,
And mocked the lifeless idols
And the dark idolatrous soothsayers.
He glorified Christ as the power of God;
To his father and to the judge, he taught the truth,
But against him, both of them took up arms,
And for the young Vitus, torments prepared.
But God, His martyrs protects
And glorifies those who glorify Him.
Vitus needed to witness to the Lord Christ
Before the emperor
And in Rome, to suffer publicly,
That his name would be more glorified.
Little Vitus the angels held,
Little Vitus the angels led.
And his soul, the angels bore;
Into Paradise they took it and to God presented it.
! REFLECTION
It is not always easy to conquer the spirit of vanity and conceit in oneself. Only the great spiritual directors have succeeded in this, with God's grace above all, with constant vigilance over their souls, and with very delicate spiritual sensitivities and distinctions. Abba Nisteroes was once walking with one of his brethren. Suddenly they spotted a serpent on the road. The brother quickly moved aside, and the great Nisteroes fled after him. "Are you also afraid, father?" the monk asked Nisteroes. The elder replied: "No, my son, I am not afraid, but I had to flee otherwise--otherwise I would not have escaped from the spirit of vanity." That is: "Had I remained in place, you would have been amazed at me, and from that I would have become vain!"
! CONTEMPLATION
To contemplate the miraculous healing of many who were sick: //And (they) besought Him that they might only touch the hem of His garment: and as many as touched were made perfectly whole// (St. Matthew 14:36):
# How many who were sick only touched the hem of the Lord's garment and were made whole;
# How my soul can be healed if I touch His Body and Blood, as the physical garment of His Divinity.
! HOMILY
! About the poor man and his Creator
"He who mocks the poor, blasphemes his Maker (Creator)" (Proverbs 17:5).
If you are wealthy, in what are you wealthy, if not in the property of God? The things which constitute your wealth--whose are they, if not God's? Therefore, if you take pride in what you possess, you are taking pride in the property of another; you taking pride in that which is loaned to you by God. Why do you then mock the poor man, who has less of someone else's property in his hands? Why do you mock him if he has borrowed less from God than you? If he has taken less, he owes less; and you who have taken more, owe more. Not only should you not mock the poor man but you should admire him. Behold, he struggles on the battlefield of this world with much less means than you. Both of you are soldiers, but you fight as a soldier abundantly equipped with all that is necessary, and he fights naked and hungry. If both of you succumb and surrender to the enemy, he will be judged more leniently than you. However, if you are both victorious, he will receive a greater reward than you, and his victory will be more celebrated than yours.
He who mocks the naked and hungry soldier mocks his king. He who mocks the poor defames his Creator. If you know that the poor man's Creator is your Creator, the one and the same, you will not mock him. If you know that the poor man stands in the same military regiment as you, you will cover him, feed him, and bring him closer to yourself.
O Omnipotent Lord, boundless is Your wisdom in the economy of Your creation. Illumine us by Your Holy Spirit, that we may marvel at that economy and behold all of Your creatures with reverence and love, beholding them through You.
To Thee be glory and praise forever. Amen.
! SAINT TIKHON, BISHOP OF AMATHUS
Saint Tikhon was a miracle-worker. Following the death of Blessed Mnemonius, Tikhon was unanimously elected bishop and consecrated by the renowned Epiphanius for the Diocese of Amathus. His purity of life and zeal for Orthodoxy recommended him for this office. There were still pagans on Cyprus at that time. With apostolic zeal St. Tikhon undertook to convert the unbelievers into believers, and he had great success in this. After lengthy labor in the vineyard of the Lord, Tikhon took up habitation in blessed eternity in about the year 425 A.D. He is called a miracle-worker because of the many miracles he worked during his life. Tikhon's father was a baker. When his father left him alone in the bakery, he would distribute bread free of charge to the poor. His father once reproached him for this. Tikhon prayed to God and their granary was so filled with wheat that the door could not be opened without difficulty. Again, at another time, he planted withered branches of a vine and the vine became green and in due time brought forth fruit.
! THE HOLY MARTYRS TIGRIUS AND EUTROPIUS
Tigrius and Eutropius were among the clergy of St. John Chrysostom. When evil men banished Chrysostom from Constantinople, the cathedral church [Hagia Sophia] was set on fire and the flames that rose from it fell upon the houses of the persecutors of this beacon of the Church. The people saw the finger of God in this, but the enemies of Chrysostom attributed this fire to his adherents. Many of those who were accused suffered bitterly because of it, among them the presbyter Tigrius and the reader Eutropius. Optatius, the mayor of the city, an unbaptized Greek, began with particular malice to pursue Chrysostom's followers. Tigrius, in his youth, had been the slave of a wealthy man and had been castrated by him. Having been freed from slavery, he dedicated himself completely to the service of the Church, and in this service he shone as a bright ray. Optatius subjected this "meek, humble, charitable and hospitable" man to great tortures and then banished him into exile to Mesopotamia, where he died in prison. Eutropius, chaste from birth, pure, blameless and kind, was beaten with oxen whips and rods and finally hanged. When Christians took his body to bury it, sweet angelic singing was heard in the air.
! HYMN OF PRAISE
!
! SAINT TIGRIUS AND SAINT EUTROPIUS
Glorious Chrysostom soared like an eagle.
Beside him were Tigrius and Eutropius the reader.
Like small eaglets, but strong and faithful,
They followed him, kind and innocent.
But impotent malice, foulness serves;
The weak and the evil, the devil unites quickly.
The malicious rose up against the servants of God
And on them poured out a sea of mockery.
Accused of being arsonists, the men of God,
These wonderful martyrs, under torture were placed.
Suffering is intended for heroes,
While it despises those who are weak in virtue!
Tigrius the presbyter, and Eutropius the reader,
By torture the truth of God they confirmed.
The heroes of God were slain
As arsonists--innocent lambs!
After their eagle, the eaglets took flight,
And in Paradise sweet, to rest they came.
Malice from the mud yelps after the eagles;
In mud was it born and in mud it remains.
! REFLECTION
In enumerating the miracles of the Christian Faith, we must never forget the countless and great miracles of change of heart and disposition in people truly converted to the Faith. How many are the raging criminals that this Faith has tamed! How many bloodthirsty robbers has the Faith transformed into innocent lambs! How many debauched ones has the Faith turned into chaste ones! How many persecuters has the Faith turned into defenders of the Faith! How many selfish, avaricious men has the Faith taught compassion! How many fearful ones has the Faith directed on the road to extreme self-sacrifice! Metropolitan Philaret writes thus about Russian Prince Vladimir: "A lover of all pleasures who could not have loved them more, the pagan Vladimir became in Christianity a model of chaste married life. He dismissed all his wives and concubines and lived with one wife, the devout Anna. An evil, vindictive and bloodthirsty fratricide in paganism, Vladimir was in Christianity the most compassionate friend of the poor. The poor always had access to him, and he distributed both money and food with a generous hand." More than that: "The sick are unable to come to my palace," he said, and he commanded that meat, fish, bread, yeast and honey be carted about the streets. The Gospel words //Blessed are the merciful// (St. Matthew 5:7) penetrated into the depth of his heart and became his rule of life.
! CONTEMPLATION
To contemplate the miraculous healing of the daughter of the woman of Canaan: //And behold a woman of Canaan came out of the same coasts and cried out unto Him saying: "Have mercy on me, O Lord, thou Son of David; my daughter is grievously vexed with a devil"// (St. Matthew 15:22):
# How the woman of Canaan persistently and repeatedly implored the Lord to save her daughter from the devil who tormented her;
# How the Lord praised the faith of the woman and healed her daughter;
# How the Lord can also free my soul from the devil, who has fallen into alienation from God, if only I persistently pray to Him with faith.
! HOMILY
! About how death and life depend on the tongue
"Death and life are in the power of the tongue" (Proverbs 18:21).
Did not our Lord Himself confirm this when He said that men will give an answer for every idle word before the Dread Judgment? Didn't He explicitly say: //But I tell you, that of every idle word men speak, they shall give account on the Day of Judgment. For by your words, you shall be justified and by your words, you shall be condemned//(St. Matthew 12: 36-37). Whoever is justified will receive life. Whoever is condemned will receive death. Therefore, do you see how life and death are in the power of the tongue? The Apostle James says: //If anyone does not offend in word, he is a perfect man, able also to lead round by a bridle the whole body// (St. James 3:2).
The unexplored mystery of words is truly great, and the influence of words cannot be measured or estimated. Today the words of men can be carried by artificial instruments from one end of our planet to the other. A word spoken by a tongue in America can be heard by an ear in Europe. Is not this an image of the All-hearing God? O my brethren, we cannot whisper anything to the earth that the heavens will not hear. Our every word comes before the assembly of the angels of God. Hades receives our every evil word and retains it as a guarantee of our eternal death, and Paradise receives every good word and retains it as a guarantee of our eternal life. Truly the Old Testament sage speaks wisely and reminds us opportunely with the words: //Death and life are in the power of the tongue.//
O Lord our Savior, eternal Word of God, help us to bridle our tongues so that they do not speak to our destruction. Help us to speak with the tongue only that which is according to Your holy will and that which is for our eternal salvation in immortal life.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS MANUEL, SABEL AND ISHMAEL
Manuel, Sabel and Ishmael were brothers born in Persia, of a pagan father and a Christian mother. They were educated in the spirit of Christianity and were baptized. As Christians, they were high-ranking officials at the court of King Alamundar. They were sent to Emperor Julian the Apostate to conduct negotiations and to confirm peace between the Persian and Graeco-Roman empires. The apostate emperor arranged a blasphemous celebration in honor of the idols in Chalcedon. At this celebration the emperor, with his noblemen, offered sacrifices to the idols. The Persian emissaries absented themselves from this celebration. The emperor summoned them and ordered that they also take part in the celebration and offer sacrifices to the gods. They declared that they were foreign citizens and that they came as emissaries of the Persian king for the sake of establishing peace between the two empires, and not for anything else; that they were Christians and that they consider it unworthy to worship dead idols and to offer them sacrifices. The emperor became enraged and cast them into prison. The next day he brought them out and again began to dispute with them about the Faith, but the holy brothers were adamant and unwavering. They were then bound naked to trees, beaten, and scraped with an iron brush. During their torture they prayed to God with thanksgiving for their tortures: "O sweet Jesus, these torments are sweet for the sake of Your love!" An angel of God appeared to them, comforted them, and removed every pain from them. Contrary to all rules of international relations, the wicked Emperor Julian finally pronounced judgment that the three brothers be beheaded. When they were beheaded there was a great earthquake. The earth split and received the bodies of the holy martyrs so that the pagans could not burn their bodies, as directed by the emperor. The earth later gave up the bodies of these martyrs so that Christians could find them and honorably bury them. Over their relics there occurred many miracles, seeing which, many pagans converted to the Christian Faith. When the Persian king heard how Julian had inhumanely given his emissaries over to death, he prepared an army against him. Convinced of victory, Julian set out against the Persian Empire, but he was overwhelmingly defeated and perished in shame, to the joy and laughter of the entire world.
! THE VENERABLE PIOR
Pior was a hermit [Silentary] in Nitria. Inflamed with love for God, Pior renounced the world at an early age and withdrew to the Egyptian desert, where he heroically lived a life of asceticism. It is said that he never sat at the table to eat but that he always ate standing and working. When asked why he did this, St. Pior replied: "I do not want to concern myself with eating as an occupation but rather as something marginal." When they called him to a council to judge a brother who had committed a sin, Pior arrived carrying a sack of sand on his back and a small bag of sand on his chest. Asked what it meant, the saint replied: "The sack of sand on my back represents my sins, which I do not see, and the bag of sand on my chest represents the sins of my brother, whom I have to judge." All the brethren were then ashamed and cried out: "This is the path of salvation!" Pior lived to be a hundred years old and reposed in the Lord in the fourth century.
! HYMN OF PRAISE
!
! THE HOLY MARTYRS MANUEL, SABEL AND ISHMAEL
!
Of a Christian mother and a pagan father,
Three blood brothers, wonderful peacemakers,
Manuel, Sabel and young Ishmael,
Dead for Christ's sake to earthly delight.
To serve peace they voluntarily set out--
To unite in peace the Persian and Greeks.
But Julian the cursed, the servant of the devil,
Began to dispute with the three brothers about the Faith
And proposed that the brothers, in Christ baptized,
Embrace his faith impure.
To the crowned beast the brothers then replied:
"To change our Faith, we did not come,
But peace to make, O Emperor of the Greeks.
In the Son of God, we have faith.
The worse for the better can well be given up,
But the better for the worse, only a madman would exchange."
The enraged emperor--in him hades burned--
In bitter torments the three brothers slew.
But God the All-seeing, Who the value of each knows,
Against the evil emperor turned with anger.
Julian, the evil one, weak before God,
A shameful death died, and everyone laughed;
Everyone laughed who knew his pride,
And through him the weakness of injustice they recognized.
! REFLECTION
The adversaries of Christ have always achieved results oppposite to their efforts against Christ. Instead of stopping the river of Christianity, they have widened it, deepened it, and made it louder. Instead of drying Christianity up, they have, so to speak, caused a flood throughout the entire world. Where one martyr fell, a company of Christians was created; where shame was committed, glory sprouted; where it was said that Christianity was finished, there was the beginning of luxuriant crops. In spite of all international considerations and customs, Julian the Apostate, because of his insane idolatrous fanaticism, killed the Persian emissaries for peace, Manuel, Sabel and Ishmael. What did Julian accomplish by this? He multiplied the number of Christians, increased the number of martyrs, and hastened his own end and the end of paganism. Indirectly and unwillingly, the apostate helped in the spreading and deepening of Christianity, not only by his evil persecution but also by his inadvertent statements. Thus, in discussions with Christians, Julian stated: "Christ did nothing in His life that would merit glory, unless it is counted as a great deed that He healed the lame and the blind and expelled demons!" O wretched Julian! As if opening the eyes of only one blind man by the power of words alone were not a greater deed than the subjugation of ten kingdoms! How valuable it is that Julian, as the greatest betrayer of Christ after Judas, acknowledged the miracles of Christ.
! CONTEMPLATION
To contemplate the miraculous Transfiguration of the Lord Jesus: //And after six days Jesus took Peter, James and John his brother and brought them up into a high mountain apart. And was transfigured before them" //(St. Matthew 17:1-2):
# How the face of the transfigured Lord shone as the sun;
# How even I, although darkened by sin, can shine by Christ's power and grace with the original radiance of sinless man.
! HOMILY
! About the punishment of those who bear false witness
"The false witness will not go unpunished and he who utters lies will perish" (Proverbs 19:9).
God and all the hosts of heaven see everything that happens in the world. Therefore, how can man conceal the truth from so many witnesses of the truth? And not only do the heavenly hosts see the truth but they also are zealous for the truth. Therefore, how can a mortal man go against the truth, which means, against the myriads of heavenly zealots for the truth? In truth, darkened in the mind is the one who thinks that he can conceal the truth and proclaim a lie instead of truth. When millions of discerning angels know the truth, can a man conceal the truth? Can someone rise up against the truth and not be punished? O my brethren, there is nothing more false than falsehood! Nothing more unsuccessful! Nothing more arrogant! Nothing more insane!
God and all the hosts of heaven see that which occurs inside a man. A man's guardian angel especially sees it. And this guardian angel does not tolerate a man's bringing forth from himself and about himself that which is not in him. If a man remains persistent in his lie, his angel will abandon him and will turn him over completely to the spirits of falsehood. Then, woe to that man! Of what benefit is it to witness falsely against the entire world, if his angel will witness truthfully against him before God and the hosts of heaven? It would be better for that man if he had not been born. For, whoever lies, lies to the Spirit of God, and the Spirit of God leaves the liar in darkness and death.
O Lord of Truth, sustain us by the power of Your Holy Spirit, that we never witness falsely. Make Your Holy Truth sweet to us and remove false words from our tongue.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR LEONTIUS
Leontius was a Roman commander in Tripoli in Phoenicia during the reign of Emperor Vespasian. He was born in Hellas [Greece]and was "of great physical stature, powerful, strong and brave in battles." Hadrian, the imperial deputy, sent a military detachment to arrest Leontius, for Hadrian was a fierce adversary and persecutor of Christians. Hypatius, the senior officer of this detachment, became ill enroute with a bitter fever, because of which the detachment had to slow down its march. One night an angel of God appeared to Hypatius and said to him: "If you want to be well, cry out three times toward heaven with all your soldiers: 'O God of Leontius, help me!'"
Hypatius informed his companions of his vision and all in unison cried out as the angel instructed, and immediately Hypatius became well. This miracle astonished all, but especially a certain Theodulus. Hypatius and Theodulus then went ahead of the other soldiers to seek Commander Leontius. Leontius received them graciously and served them. When he expounded his faith in Christ to them, their hearts burned with love for Christ, and at that moment a bright cloud descended upon Hypatius and Theodulus and dew fell upon them from the cloud. It was the Holy Spirit of God Himself baptizing these converted souls, and at that moment St. Leontius spoke these words: "In the name of the All-holy Trinity: Father, Son and Holy Spirit." The evil Hadrian, learning that Hypatius and Theodulus had become Christians, ordered that they be scourged without mercy and then beheaded with an axe. Thus reposed these two spiritual children of Leontius.
Then Hadrian decreed cruel tortures for Leontius, but Leontius remained unwavering in his holy faith. His entire body was covered with wounds, but he diligently prayed that God not abandon him. In the midst of the cruelest torments, an angel of the Lord appeared to him, encouraging and comforting him. Finally the torturers knocked the martyr Leontius to the ground and beat him until he gave up his soul to God. The sufferings of St. Leontius was personally witnessed by a certain Notarius, who recorded all that he saw on lead tablets and placed them in the martyr's grave. St. Leontius suffered honorably in the year 73 A.D.
! THE VENERABLE LEONTIUS, THE DISCERNER (CLAIRVOYANT)
Leontius was of Greek descent from the Peloponnese. He lived a life of asceticism sixty years in the Monastery of Dionysiou [Mt. Athos] and entered into rest in the year 1605 A.D., being eighty-five years of age. It is said that this saint entered the monastery only once and only once did he leave the monastery in sixty full years. That is, he entered when he first went to Dionysiou and departed when they carried him out for burial. He possessed the miraculous gift of discernment (clairvoyance) and prophecy, and myrrh flowed from his relics after his repose.
! HYMN OF PRAISE
!
! SAINT LEONTIUS
!
Leontius, with the heart of a lion:
A lion's heart and a lion's name.
Of his God, he was not ashamed
But, before all, confessed Christ--
The Savior of the world, Christ God.
Youth, strength and commander he scorned
For the sake of the truth of Christ crucified
And from death resurrected gloriously.
Flattered, honored, glorified and favored with gifts,
He, his God, did not deny.
Flogged, spat upon, scraped and crucified,
He, his God, did not deny.
But the greater the torment and mockery,
The flame of faith, the greater and brighter.
The Roman Empire and all the powers of hades
Against him had turned,
But he knew that alone he was not.
And that beside him stood Christ.
A pillar of stone amidst angry reeds,
A pillar of fire amidst slaves of darkness.
By his faith he amazed the people;
To live eternally his life he gave.
! REFLECTION
As a scientist examines natural phenomenon with great attention, so should we, with even greater attention, examine the phenomena and actions of the grace of God. Behold what one of the great spiritual fathers witnesses about the act of Holy Communion. Father John of Kronstadt writes: "I am amazed at the greatness and the life-giving power of Divine Communion. An elderly woman, who was spitting blood and was so completely exhausted that she was unable to eat, began to recover the day that she received Communion from me. A young girl close to death began to recover, eat, drink and speak after Communion, whereas before that she had been unconscious, in convulsions and was not eating or drinking anything." Oh, if every priest, with the attention of a scientist and the love of a prayerful man, would observe and follow the actions of the grace of Holy Communion as did Father John!
! CONTEMPLATION
To contemplate the miraculous healing of the young man whom the devil tormented, at times throwing him into the fire and at times into the water: //Lord, have pity on my son: for he is a lunatic and suffers severely; for often times he falls into the fire and often times into the water// (St. Matthew 17:14):
# How the Lord rebuked the devil, and the young man was made whole;
# How the evil spirit also casts me at times into the fire of passions and at times into the water of carnality;
# How the Lord can also save me from falling into the fire and into the water, if only I pray to Him.
! HOMILY
! About God's indebtedness
"He who has compassion on the poor lends to God and He will repay Him for his good deed" (Proverbs 19:17).
The poor man who begs and the rich man who gives--both make the Lord their debtor, but only under the condition that the poor man begs in the name of the Lord with humility and that the rich man gives in the name of the Lord with compassion. Everyone who receives should know that he receives that which belongs to God, and everyone who gives should know that he gives that which belongs to God. Such giving has a price and such receiving has a price. All of us enter this world naked, and naked shall we leave this world. All of us are beggars before the Lord, for we possess nothing that we have not received from the Lord. Therefore, give to the poor man as God has given to you. You take what is another's and you give to your own when you perform charity (give alms). The poor man is closer to you than all of your goods, even as to God, the Creator of men, every man is incomparably more precious than all of his goods. If you have been given riches, they have been given to you for temptation: that your heart be tempted! That God and all the heavenly hosts might see whether you understood from whom are all your riches and why they were given to you. Blessed are you if you know that your goods are from God and belong to God! Blessed are you if you consider the poor as your companions, as members of your family, and share with them that which God has entrusted to you!
Oh, how immeasurable is God's love for mankind! Behold, all that you have belongs to God, and yet God considers Himself your debtor if you take from Him and give to the poor, and He will repay you for your good. What kind of mercy can be compared to this!
O man-loving Lord, open our minds to understand the mystery of Your mercy, and soften our hearts like wax, that as wax they may burn and shine with the reflection of Your inexpressible mercy!
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE JUDE
Saint Jude was one of the Twelve Apostles. He was the son of Joseph and Salome^^1^^ and the brother of James, the brother of the Lord. Joseph the carpenter had four sons with Salome [the daughter of Angeja, the son of Varahina, the brother of Zacharias]: James, Hosea, Simon and Jude. This Jude is sometimes called: "Jude, the brother of James" due to his brother being better-known (St. Luke 6:16 Acts 1:14). St. Jude begins his epistle in this manner: //Jude, the servant of Jesus Christ and the brother of James// (St. Jude 1:1). Even though he could be called the brother of the Lord as much as James, he did not do this, out of humility and shame, for he did not at first believe in Christ the Lord. When the elderly Joseph, before his death, wanted to leave a portion of his estate to Jesus, as well as to his other children, all of them protested, even Jude. Only James voluntarily set aside a share of his portion and intended it for Jesus. Jude is also called Levi and Thaddeaus. There is another Thaddeaus of the Seventy Apostles (August 21), but this Thaddeaus or Jude was one of the Great Apostles. Jude preached the Gospel throughout Judea, Samaria, Galilee, Idumedia, Syria, Arabia, Mesopotamia and Armenia. In Edessa, the town of Abgar, he augmented the preaching of the other Thaddeaus. When Jude was preaching in the regions around Ararat, he was captured by pagans, crucified on a cross and killed by being shot with arrows, that he might reign eternally in the Kingdom of Christ.
^^1^^//Not the Salome of Bethlehem, but another.//
! THE VENERABLE PAISIUS THE GREAT
Paisius was an Egyptian by birth and language. After a vision in a dream, his mother dedicated him to the service of God. As a young man, Paisius came to the Venerable Pambo, who received him as his disciple and as a fellow disciple of the Venerable John Kolovos [The Dwarf], who later wrote the biography of Paisius. To the joy of his spiritual father, Paisius added labor to labor and ascetic feat to ascetic feat. Many times the Prophet Jeremiah, whom he especially loved and often read, appeared to him. Angels of God often appeared to him and even the Lord Christ Himself. "Peace be with you, my beloved chosen one!" the Lord Christ said to him. By the great grace of God, Paisius possessed the special gift of abstaining from food. Often he did not taste bread for fifteen days, more often for a week, and once, according to the testimony of St. John the Dwarf, he went for seventy days without partaking of anything. He waged a great struggle with the spirits of evil, who appeared to him at times exactly as they are and at times in the form of radiant angels. But the blessed servant of God did not permit himself to be deceived and beguiled. Paisius was famous throughout Egypt as a clairvoyant and miracle-worker. He took up his habitation in eternity in the year 400 A.D. The Venerable Isidore of Pelusium translated the relics of Paisius to his monastery and honorably buried them.
! THE HOLY MARTYR ZOSIMAS
Zosimas was a Roman soldier during the reign of Emperor Trajan. He courageously confessed his faith in Christ the Lord, for which he endured cruel tortures. In the midst of his tortures, he heard a voice from heaven saying: "Be brave Zosimas, and sign yourself with the cross, I am with you!" Angels of God appeared to him in prison. After many tortures, Zosimas was beheaded in the year 116 A.D.
! THE VENERABLE JOHN THE HERMIT [ANCHORITE]
John lived a life of asceticism in the sixth century in the proximity of Jerusalem. Through his asceticism, he achieved a high degree of purity and power, so that even the wild beasts were submissive to him. John reposed in the Lord in extreme old age, in the year 586 A.D.
! HYMN OF PRAISE
!! THE VENERABLE PAISIUS THE GREAT
Paisius the great from the earliest age
Behind him, the doors of all desires he closed.
His spirit to God he lifted, his only desire,
Like all the great saints of old.
Wonderful Paisius, the monks asked:
"Which virtue to God is most pleasing?"
"That which is hidden!" to them, Paisius replied,
"And that which is made known is not pleasing to God."
When Paisius, by his life, had glorified God,
Unto him, the glorified Lord Christ appeared:
"Peace be to you, O Saint. What do you wish? Tell me.
According to your wish, so it will be. Ask and receive!"
When, from the Lord, these words he heard,
Paisius gave himself over to weeping like a child.
"O gentle Lord, a man of great sin am I,
And because of my many sins, greatly downcast am I.
According to Your mercy, forgive me my sins,
All my sins, O God, from my early youth.
And for future times, grant me strength,
That with new sins, my yoke, I will not burden,
That to the end of my life, Your will I may do
And with greater love burn for You."
The Lord, this wise desire, fulfilled for him,
And to His saint, granted a blessing.
! REFLECTION
The monks once inquired of Paisius the Great: "Father, speak to us a word of salvation. How should we live according to God?" The elder replied to them: "Go and keep the commandments of God and preserve the traditions of the Fathers." The tradition of the Fathers is the experience of the saints in the spiritual field, the enormous experience of nearly two-thousand years, the experience of many hundreds and thousands of holy men and women. What an extremely rich depository of wisdom! What an immense mass of proofs of every truth of Holy Scripture! All that wealth, all that wisdom, all those proofs, all that experience, the Protestants have rejected! Oh, what inexpressible madness! Oh, the poverty of beggars!
! CONTEMPLATION
To contemplate the miraculous healing of the two blind men: //And behold, two blind men sitting by the wayside, heard that Jesus was passing by, and cried out, saying: "Lord, Son of David, have mercy on us!"// (St. Matthew 20:30):
# How the two blind men cried out to the Lord: //Lord, Son of David, have mercy on us!//;
# How the merciful Lord touched their eyes and they saw;
# How I also am blinded by sin; and how even I can see if I cry out to the Lord to touch me.
! HOMILY
!! About revenge and the Avenger
//"Say not, I will repay evil! Trust in the Lord and He will help you"// (Proverbs 20:22).
Do not be vengeful; do not return evil for evil. The evil from your neighbor is sufficient. If you return evil for evil to him, you will double the evil in the world. If you do not return evil for evil to him, he can still burn away his evil through repentance. Thus, through patience and forgiveness, you will reduce evil in the world.
Do not be vengeful; do not return evil for evil, but wait on the Lord. He sees and remembers, and in your time both you and he who does evil will know that God sees and remembers. You ask yourself: What have I done in not returning evil for evil? You have done the wisest deed that you could do in the given situation, i.e., you have relinquished your struggle to the One stronger than yourself, and the stronger One will fight victoriously for you. If you enter into battle with the evil doer, you might be defeated. But God cannot be defeated. Therefore, relinquish your struggle to the victorious and undefeated One and patiently wait.
Learn from a small child. If someone attacks a child in the presence of his parents, the child does not return the attack by attacking, but rather looks to his parents and cries. The child knows that his parents will protect him. How is it that you do not know what a little child knows? Your heavenly Parent is constantly beside you. Thus, do not be vengeful; do not return evil for evil; rather look to your Parent and cry. Only in this way will you guarantee victory for yourself in the conflict with evil men.
O Almighty Lord, Who said: //Vengeance is Mine// (Romans 12:19 Hebrews 10:30), protect us from the unrighteous ones by Your almighty hand, and restrain us from vengeance. Counsel us by Your Holy Spirit that the greater heroism is to endure rather than to avenge.
To Thee be glory and praise forever. Amen.
! SAINT NICEPHORUS, CONFESSOR AND PATRIARCH OF CONSTANTINIOPLE
Nicephorus was a nobleman of Constantinople. His father, Theodore, a high-ranking official of the imperial court, was wealthy and pious. Nicephorus served at the court for several years in the same profession as his father. Seeing all the vanity of the world, he withdrew to the shores of the Bosphorus and founded a monastery. The monastery was quickly filled with monks and he governed it; but he was not willing to receive the monastic tonsure, under the pretext that he was not worthy, even though in all things he served as a model to all. Before that, he had participated in the Seventh Ecumenical Council [Nicea, 787 A.D.] as a layman, at the wishes of the emperor and the patriarch, and the Council had benefited greatly by his superior knowledge of Sacred Scripture. When Patriarch Tarasius died, Nicephorus was elected patriarch against his will. Immediately following his election in the year 806 A.D., he received the monastic tonsure and, in succession, all the ecclesiastical ranks. He was enthroned as patriarch in the Church of the Divine Wisdom of God [Hagia Sophia]. This took place during the reign of Emperor Nicephorus, who immediately after that went to war against the Bulgarians and was slain. His son Stauracius reigned only two months and died. After him there ruled the good Emperor Michael, surnamed Rangabe, but he reigned for only two years, until he was overthrown by Leo the Armenian and banished into exile. When Leo was to be crowned, the patriarch sent him a book of the Orthodox Confession of Faith to sign (according to the custom of all Byzantine emperors which was considered an oath that they would uphold and defend the True Faith). The emperor did not sign it but rather postponed signing it until after the coronation. When the patriarch crowned him, Leo refused to sign the book, and he quickly proved himself to be a heretic, an iconoclast. The patriarch attempted to advise him and restore him to the True Faith, but in vain. The emperor forcibly banished Nicephorus to the island of Proconnesus, where he remained for thirteen years, enduring every kind of misery and privation, and he entered into eternity in the year 827 A.D. He governed the Church of Christ as patriarch for nine years.
! THE HOLY NEO-MARTYR CONSTANTINE
Constantine was born of Muslim parents on the island of Mitylene. Having been healed of a grave illness with the help of holy water in church, and having witnessed other miracles of the Faith of Christ, he was baptized on Mt. Athos in the Scete of Kapsokalyvia. Later, Constantine fell into the hands of the Turks, who hanged him in Constantinople on June 2, 1819 A.D. after forty days of cruel tortures.
! THE HOLY MARTYR JOHN THE NEW OF SUCEAVA
John was a nobleman from Trebizond. He was accused by an envious Latin and suffered for Christ in the city of Akerman in the year 1492 A.D. After being tortured for refusing to embrace the Persian religion (for the mayor of the town was an adherent of that faith), St. John was tied to the legs of a horse and dragged through the town. Upon seeing John, an evil Jew ran up to him and slaughtered him. That night many saw a fiery pillar over his body and three light-bearing men around it. With great honor the Moldavian commander Joalexander later translated his honorable body to the town of Suceava and buried it in the metropolitanate church, where it reposes even today, miraculously saving men from various pains and illnesses. John suffered honorably and was glorified on June 2, 1492 A.D.
! THE PRIESTLY-MARTYR ERASMUS OF OHRID
This saint was born in Antioch and lived during the reigns of Emperors Diocletian and Maximian. He lived a strict life of asceticism on Mt. Lebanon and was endowed by God with the great gift of working miracles. As a bishop, he went out to preach the Good News (Gospel). Arriving at the town of Ohrid, Erasmus, by his prayers, resurrected the son of a man named Anastasius and baptized him. Through this fortuitous circumstance Erasmus baptized many other pagans and destroyed the altars of the idols in Ohrid. For this he was denounced before Emperor Maximian, who was residing at that time in Illyria. The emperor brought him before a copper idol of Zeus and ordered him to offer sacrifice and worship the idol. St. Erasmus manifested so great a power that a horrible dragon emerged from the idol, terrifying the people. Again the saint manifested great power and the dragon died. The saint then preached Christ and baptized twenty thousand souls. The embittered emperor ordered that all twenty thousand be beheaded, and he subjected Erasmus to severe tortures and cast him into prison. An angel of God appeared to Erasmus, as once to the Apostle Peter, and led Erasmus out of the prison. After that, this servant of God departed for Campania, where he preached the Gospel to the people, and then he returned to the town of Hermelia, where he retreated to a cave, in order that he might live a life of asceticism there until his death. Before his repose, he bowed down three times toward the east and with uplifted arms prayed to God that He forgive the sins and grant eternal life to all those who would with faith call upon his name. At the completion of his prayer a voice from heaven was heard: "Let it be as you prayed, my little healer Erasmus!" Uttterly joyful, the saint gazed up at the heavens once more and saw a wreath of glory descending upon him and choirs of angels, prophets, apostles and martyrs coming toward him to receive his holy soul. At last he cried out: "O Lord, receive my spirit!" and died, in about the year 303 A.D. The cave, with a small church dedicated to St. Erasmus, exists today not far from Ohrid, and from it the great power of the God-pleaser Erasmus the priestly-martyr is manifested even today.(//)
(//) In the Slavonic Prologue and Menaion, St. Erasmus is commemorated on May 4, while in the Greek Synaxarion on June 2. The latter is more correct, since this saint has been commemorated in Ohrid on June 2 from time immemorial.
! HYMN OF PRAISE
! SAINT NICEPHORUS
Great was Nicephorus, great among the saints;
Great was Nicephorus, like a giant among men.
But [Leo] the emperor with the name of a lion was small;
Of spite and malice his [Leo's] entire "glory" consisted.
An emperor is to lead the affairs of the state,
Not the dogmas of the Orthodox Faith to judge.
The dogmas for him, Patriarch Nicephorus interpreted,
But the arrogant little emperor pretended to be wise.
Though emperor he had become, a simple //shudra//(//) he remained,
Not heeding the counsels of the wise saint.
The emperor banished the patriarch to a desolate, distant place,
And he himself, divine truth, began to interpret.
Great was Nicephorus, great in exile,
As also on the throne in his dignity.
From within, was all of his greatness,
And not false and incidental, changing from day to day.
Nicephorus, by faith and purity, a saint became,
By strong faith, fasting and humble simplicity.
And Emperor Leo was slain--terribly slain.
Perhaps he would have repented, but it was too late.
(//) //Shudra//: one of the four original castes in India, whose members engaged in the lowest professions. --//Trans//.
! REFLECTION
The veneration of icons is an integral part of Orthodoxy, from which it cannot be separated. That the veneration of icons appears to some people the same as idolatry is no proof against icons. To the Jews it seemed that Christ worked miracles by the power of Satan and not God, and to the Romans it seemed that Christian martyrs were ordinary sorcerers and magicians. Saint Nicephorus said to Leo the Armenian, the iconoclastic emperor: "An icon is a divine thing, but not to be worshipped." Then he explained how God commanded Moses to make a serpent of brass and to raise it in the wilderness, even though just before this He had commanded: //Thou shall not make unto thee any graven image// (Exodus 20:4). The latter He commanded in order to save the chosen people from the idolatry of the Egyptians, and He commanded the former that He, the One and Most High God, might manifest His power through a visible thing. In the same manner He manifests His power through icons. This is His holy will and our aid for salvation. If icons are things of little significance or even idolatry, why would many of the holiest and most spiritual men and women in the history of the Church have suffered to the death for icons?
! CONTEMPLATION
To contemplate the miraculous healing of the leper: //And behold, there came a leper and worshipped him saying, Lord, if You will, You can make me clean// (St. Matthew 8:2):
# How the leper implored the Lord to heal him and how the Lord touched him with His hand and he was healed;
# How I, too, am leperous from sin, and how the Lord can touch my soul and heal it, if I pray to Him.
! HOMILY
! About how wisdom proclaims itself everywhere
"Wisdom cries aloud in the street, in the open squares she raises her voice; down the crowded ways she calls out, at the city gates she utters her words" (Proverbs 1:20-21).
The Wisdom of God is the Lord Jesus Christ Himself, through Whom every created thing was created. All that was created manifests its All-wise Creator, both that which is in the fields and that which is in the city. In the fields is pure and bright nature, while in the city is man with his trades and skills. The Wisdom of God cries out--and does not whisper--through all of nature and through all beneficial trades and skills of man. She [Wisdom] has covered all the fields; she has filled the entire city; she is above the earth and under the earth, in the starry firmament and in the depths of the seas. He who wants to hear her can hear her in every place; he who wants to learn from her and be delighted by her can be taught and delighted in every place; he who wants to be corrected and built up by her can be corrected and built up by her in every place.
Thus the Wisdom of God is clear and evident in all created things in the world from its very beginning. But the Wisdom of God is clearer and more evident in the prophets and in other men of God who were made worthy to approach her [Wisdom] outside created nature. Through their mouths, the Wisdom of God has been proclaimed in the fields, in the cities, on the streets of the cities, and at the doors of men.
But the Wisdom of God is most audible and most clear in the person of the Lord Jesus Christ Himself. In the person of the Lord Jesus Christ, the Wisdom of God was manifested in the flesh and demonstrated to men in Its miraculous power and beauty. This Wisdom of God does not speak through things nor through men, but speaks of Itself and from Itself alone, personally and directly. By His wisdom the Lord has filled the entire world through His Holy Church, so that it can be said that today, just as twenty centuries ago in Palestine, He cries out in the fields, on the streets, to the greatest throngs in the world, throughout the cities, and before all doors, through the servants of the Word.
O my brethren, let us open the doors of our souls to the Wisdom of God, incarnate in the Lord Jesus Christ!
O Lord Jesus, Wisdom and Power of God, open our souls and abide in them.
To Thee be glory and praise forever. Amen.
! THE HOLY HIEROMARTYR METHODIUS, BISHOP OF PATARA
Methodius dedicated himself to asceticism from his youth, and like a city on a hill he was seen and called to the episcopacy in the city of Patara in Lycia. As a learned and eloquent hierarch, Methodius wrote against the heresy of Origen. His "God-inspired words shone throughout the entire world like lightning." The pagans rose up against him, tortured him and beheaded him in Chalcis in Syria in the year 311 A.D.
! THE HOLY MARTYRS ARISTOCLES, DIMITRIANUS AND ATHANASIUS
Aristocles was a priest of the cathedral church in the town of Tamasus on Cyprus and lived a God-pleasing life. Because of his great zeal for the Faith, Aristocles was made worthy to hear a voice from heaven instruct him to go to Salamis in Cyprus and receive the wreath of martyrdom. The deacon Dimitrianus and the reader Athanasius accompanied him. Arriving in Salamis, these men of God began to preach Christ. The pagans seized them and, after torturing them, beheaded Aristocles, but Dimitrianus and Athanasius they burned alive, in the year 306 A.D.
! THE VENERABLE NAHUM OF OHRID
Nahum's principle feast is celebrated on December 23, while June 20 is his summer feast. (See his life on December 23). During the summer feast there is a great assembly of people at the Monastery of St. Nahum. Many sick people come or are brought there to receive healing through faith and prayer over the relics of the saint. Not only Orthodox people but also people from other faiths come to seek help from St. Nahum. In 1926 a Muslim from Resna brought and donated a bell to the monastery out of thanksgiving to St. Nahum for having healed his brother from his deathbed and restored him to life. The donor was Jemail Zizo and his brother, who was healed, was called Suleiman Zizo. Both were prominent citizens of Resna.
! SAINT KALLISTOS I, PATRIARCH OF CONSTANTINOPLE
As a disciple of Gregory the Sinaite, Kallistos lived a life of asceticism for twenty-eight years on Mt. Athos in the Scete of Magoula at the Monastery of Philotheou. He later founded the Monastery of St. Mamas. He was elected patriarch of Constantinople in the year 1350 A.D. After four years he withdrew from the patriarchal throne and returned to Mt. Athos. But during the reign of John Palaeologus, he was returned again to the throne, where he remained as patriarch until his death. He died in the year 1368 A.D. on the way to Serres, to where he was traveling to meet the Serbian Empress Helena, who came to seek help against the Turks. He compiled a beautiful guide [manual] for ascetics together with Ignatius of Xanthopoulos. In addition to this, he wrote the Lives of St. Gregory the Sinaite and St. Theodosius of Trnovo, as well as numerous homilies. It is interesting to note how St. Maximus of Kapsokalyvia prophesied the death of Patriarch Kallistos. On his way to Serbia, Kallistos traveled across the Holy Mountain. Seeing him, St. Maximus said: "This elder will never see his flock again, for behind him is heard the funeral chant: //Blessed are the undefiled in the way// (Psalm 119:1)."
! SAINT LEUCIUS, BISHOP OF THE CITY OF BRINDISI [ITALY]
Leucius was born in Alexandria and at an early age he entered a monastery. He was deemed worthy of great revelations and powerful grace, so that he resurrected the dead and drove out demons from men. At first he was bishop in Alexandria, and then he crossed over to Italy at a command from heaven, to the pagan town of Brindisi, baptized all the people, and built a church there to the Mother of God. After many successful labors, he took up his habitation in eternity during the reign of Emperor Theodosius II, in the fifth century.
! BLESSED STUDIOS
Studios was a prominent patrician and consul in Constantinople. He founded the church of St. John the Forerunner near the Golden Gates, as well as a monastery named the Studion after him. This monastery became famous for its many glorious men, spiritual fathers, ascetics and many who suffered for the Faith [martyrs], the most famous of which was St. Theodore the Studite. The Latin Crusaders destroyed this monastery in 1204 A.D., but Emperor Constantine Palaeologus Porphyrogenitus rebuilt it in the year 1293 A.D. A Turkish mosque stands on that site today.
! HYMN OF PRAISE
!
SAINT LEUCIUS
!
"Leucius, Leucius, with heart made white:
In the Book of Life of blessed names,
Thy memory in the heavens will eternal be,
And on earth the Church will glorify you!"
Such a voice Leucius, from the heavens, heard,
And a fragrant peace his heart calmed.
Against Leucius the holy the black devil arose,
But Leucius, against him [Devil], with the Cross rose up.
By demonic arrows, he was not wounded,
But by the power of God, all the power of the devil he destroyed.
To the good shepherd, God gave power,
And he preserved his flock in sinful Egypt.
He further founded a church in Brindisi
And instructed the people to defend the will of God.
Many people and glorious noblemen he baptized,
And with the torch of the Orthodox Faith, enlightened all.
By his miracles he astonished the whole world,
And then to the Lord he departed, a wreath of glory to receive.
! REFLECTION
Saint Cyprian writes on immortality: "If a famous man promised you something, you would believe his promise and would not even dare to think that he who is always faithful to his word would deceive you. But behold, O treacherous one, God Himself speaks to you, and you are wavering with doubt. God has promised you immortality after your departure from this world, and do you impudently doubt this promise? This means you do not recognize God at all; it means that by your unbelief you insult Christ the Lord and Teacher." O how powerful is the faith of the saints of God! How clear and understandable and well-explained it is with simple and powerful examples! The unholy doubt, not because they are supposedly more rational, but because they are unholy. The holier man is always more rational, for in the clear mirror of his heart he sees the truth.
! CONTEMPLATION
To contemplate the miraculous withering of the unfruitful fig tree: //And seeing a fig tree by the wayside, he came up to it and found nothing on it but leaves; and He said to it, "May no fruit ever come from you henceforth forever!" And immediately the fig tree withered up// (St. Matthew 21:19):
# How the Lord cursed the fig tree that had many leaves but no fruit, and the fig tree withered up;
# How my life too, which has many leaves--bodily cares, desires and thoughts--but is without spiritual fruit, can come under the same curse, if I do not mend my ways.
! HOMILY
! About how our salvation is in the hands of God
"The horse is prepared against the day of battle: but salvation is in the Lord" (Proverbs 21:31).
We are obligated to prepare ourselves, but our success depends on God. All of our preparation is only as a proposal to God, and it is not the preparation that determines the outcome, but God. That is why, based on their experience, people wisely say: Man proposes but God disposes.
O soldier of Christ, prepare your mind as a good horse, arm your heart with virtues, temper your will with asceticism; but know that //salvation is in the Lord.//
O Merchant of Christ, trade well every day, exchanging the material for the spiritual, the earthly for the heavenly, and mortality for immortality; but know that //salvation is in the Lord.//
O plowman of Christ, plow and re-plow your soul, sow the good seed of the Gospel in it every day, clear out the field of your soul from weeds, watch over it; but know that //salvation is in the Lord.//
A horse did not help Pharaoh in the Red Sea. Neither did the riches of Babylon help in the day of reckoning with God. A person can have prepared everything, but in the decisive moment he can still lose all. For salvation is not in preparation, but //in the Lord//. That is why the saints, even though they were most prepared for the Kingdom of God, sighed in the hour of their death, not knowing whether they would be received into the Kingdom. Oh, how well they remember the words of the Lord: //When you have done everything that was commanded you, say: "We are unprofitable servants!"//(St. Luke 17:10). Brethren, let us be prepared for the day of temptation, well girded and armed, but let us not hope in our own preparation, //but in the Lord//.
O Lord our Savior, help us and save us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR JULIAN OF TARSUS
Julian was of noble and senatorial origin. He lived in Tarsus in Cilicia and suffered during the reign of Diocletian. Even though he was only eighteen years of age when he was subjected to torture for the Faith, St. Julian was sufficiently educated and strengthened in Christian piety. The imperial deputy led him from town to town for an entire year, torturing him and all the while trying to persuade him to deny Christ. Julian's mother followed her son at a distance. When the deputy seized Julian's mother and sent her to counsel her son to deny Christ, she spoke to him for three days in prison, giving him the opposite advice, teaching him and encouraging him not to lose heart but to go to his death with thanksgiving and courage. The torturers then sewed Julian in a sack with sand, scorpions and serpents and cast the sack into the sea, and Julian's mother also died under torture. His relics were thrown onto the shore by the waves, and the faithful translated them to Alexandria and buried them honorably in the year 290 A.D. St. Julian's relics were later translated to Antioch. St. John Chrysostom himself delivered a eulogy [an oration of praise] on the holy martyr Julian. "From the mouth of the martyr," Chrysoston said, "proceeded a holy voice, and together with the voice a light emanated brighter than the rays of the sun." Further, he added: "Take anyone, be it a madman or one possessed, and bring him to the grave of this saint, where the relics of the martyr repose, and you will see how he [the demon] without fail will leap out and flee as from a burning fire." It is obvious from these words how numerous must have been the miracles that had taken place at the grave of St. Julian.
! THE VENERABLE JULIUS AND JULIAN
Julius and Julian were brothers from the Greek province of Mirmidonia. From childhood they were reared in Christianity with the vow that they would always live in chastity and serve the Church. Julius was a presbyter and Julian a deacon. They received a decree [grammata] from Emperor Theodosius the Younger to destroy pagan temples and build Christian churches throughout the empire. Like two apostles, these two brothers converted non-Christians into Christians in the East and in the West [of the empire] and built churches. They built more than one hundred churches during their lifetime. They reposed peacefully in the Lord near Milan. The inhabitants of Milan invoke the help of St. Julius against wolves.
! THE HOLY MARTYR ARCHIL [ ARCHILIOS] II, KING OF GEORGIA
Archil was the son of King Stephen and the grandson of the great Georgian King Wakahtang Gorgaslan. King Archil, a great Christian and a defender of Christianity, was tortured by the Muslims and beheaded for Christ on March 20, 744 A.D. He was eighty years old when he suffered for the Lord and took up his habitation in blessed eternity.
! THE HOLY MARTYR LUARSAB II, PRINCE OF KARTLI IN GEORGIA
Luarsab's father, George X, suffered for the Faith and was poisoned by a Persian Shah. Luarsab, however, was cast into prison near Shiraz, where he languished for seven years. Then, by order of Shah Abbas I, he was hanged in prison with two of his servants on June 21, 1622 A.D. A heavenly light was seen over his grave.
! HYMN OF PRAISE
!
! SAINT JULIUS AND SAINT JULIAN
!
When Julius and his brother Julian
Had built their ninety-ninth church
To the Most-high God,
Julian, then, a tomb constructed
For his brother, the holy Julius.
And when his brother the grave he showed,
Julius to him, meekly said:
"Prepare yourself, my brother in the flesh.
This grave, for you, was built.
Prepare yourself to God to go
Before your brother, the sinful Julius."
And God Julius designated
A hundredth church yet to build
On a certain isolated island.
As the most glorious Julius said, so it happened.
Before the older brother, the younger brother reposed,
And the older brother the hundredth church added.
And when the hundredth, on the island, he built,
Then he also in eternity took up his habitation.
! REFLECTION
When a man begins to train himself in keeping silent, silence seems to him to be lesser than speech; but when he is trained in silence, then he knows that speech is lesser than silence. A monk said to St. Sisoes: "I would like to preserve my heart but I cannot." The elder responded: "How can we preserve the heart when the gate to our heart--the tongue--stands open?" Charillos, the nephew of Lycurgus, was once asked why his uncle issued so few laws. He replied: "For those who speak little, many laws are not needed."
! CONTEMPLATION
To contemplate the miraculous healing of the blind Bartimeus: //And they came to Jericho. And as He was leaving Jericho with His disciples and a very great crowd, Bartimeus, a blind man the son of Timeus, was sitting by the wayside begging //(St. Mark 10:46):
# How Bartimeus cried out to the Lord with faith for healing, and the Lord healed him;
# How even I, blinded in soul, sit by the road where the Lord passes by, and if I cry out to Him, He will heal me.
! HOMILY
! About sowing and reaping
"He who sows iniquity reaps calamity [misfortune]" (Proverbs 22:8).
If you commit iniquity, calamity [misfortune] may pass you by on the very day you commit the iniquity, but calamity [misfortune] has heard the voice of iniquity and unavoidably will come in its own time.
Some sowing is sweet, but the harvest is bitter. Some sowing resembles life, but the fruit and harvest of that sowing is death.
Pay attention and learn from Holy Scripture:
Eve sowed iniquity through disobedience, and pain in childbirth befell her.
Cain sowed iniquity through fratricide, and pain and sleepless wandering throughout the earth befell him.
Sodom and Gomorrah sowed iniquity, and reaped the pain of a horrible death.
The sons of Eli the High Priest sowed iniquity, for they defiled themselves near the Ark of the Covenant, and they reaped suffering, for they bitterly lost their lives in battle.
Call to mind Saul, his iniquity and his sufferings. And again, call to mind Ahab and Jezebel. And again, call to mind Herod and Judas. And again, call to mind today and yesterday and the day before yesterday and every other day gone by, and listen to the words of every day: //He who sows iniquity reaps calamity [misfortune]!// Is there a village in the world that does not have this teaching before its eyes? Is there a roof that does not conceal beneath it such knowledge? Is there any living man who has not witnessed this teaching in the living examples around him?
O All-wise Lord, if we did not know Your will we would be less responsible. But since You gave us to know Your will, O All-merciful One, grant us the strength to fulfill it throughout all the days of our lives.
To Thee be glory and praise forever. Amen.
! THE PRIESTLY-MARTYR EUSEBIUS, BISHOP OF SAMOSATA
Eusebius was a great denouncer of Arianism. When the throne of Antioch became vacant, Meletius was elected patriarch at the insistence of Eusebius. Meletius was a great beacon of the Church, who, after his death, was found worthy of great praise by St. John Chrysostom. However, the Arians quickly banished Meletius from Antioch. When Constantine's pernicious son Constantius died, another much worse than he was crowned--Julian the Apostate. During Julian's persecution of Christians, St. Eusebius removed his clerical attire, donned a soldier's uniform and, under the guise of a soldier, visited the persecuted Church throughout Syria, Phoenicia and Palestine, strengthening the Orthodox Faith everywhere and ordaining the necessary priests, deacons and other clergy and, in some places, bishops. Following the turbulent death of Julian, St. Eusebius counseled Meletius to convene a council in Antioch in 361 A.D., at which twenty-seven hierarchs were present. The Arian heresy was condemned once more and the Faith of Orthodoxy was proclaimed in the same manner as it had been expressed at the First Ecumenical Council [Nicea 325 A.D]. Along with Meletius and Eusebius, St. Pelagius of Laodicea, a well known, chaste and ascetic man, made a great impact at the Council of Antioch. This council was held during the reign of the pious Emperor Jovian. However, Emperor Jovian soon died and the wicked Valens was crowned, and a persecution of Orthodoxy again ensued. St. Meletius was exiled to Armenia, Eusebius exiled to Thrace, and Pelagius exiled to Arabia. After Valens, Gratian was crowned emperor, and he granted freedom to the Church and recalled the exiled hierarchs to their former sees. Thus they returned: Meletius to Antioch, Eusebius to Samosata, and Pelagius to Laodicea. At that time many dioceses and parishes were vacant, and Eusebius zealously hastened to find canonical shepherds for the people. When he came to the town of Doliche to enthrone the newly elected bishop, Marinus, and to denounce the heresy of Arius (which was strong in that town), a fanatical heretic hurled a ceramic tile at Eusebius' head and mortally wounded him. Thus this great zealot, saint and martyr of Orthodoxy died, to live eternally in the blessedness of Paradise. He suffered in the year 379 A.D.
! THE HOLY MARTYRS ZENO AND ZENAS
Zeno was a Roman officer in the Arabian town of Philadelphia, and Zenas was his servant. When the persecution of Christians began during the reign of Emperor Maximian, St. Zeno boldly appeared before the commander Maximus, confessed his faith in the One Living God, and counseled Maximus to renounce lifeless idols and embrace the only true Faith. The commander became enraged and cast Zeno into prison. When the faithful Zenas visited his master in prison, he also was seized and arrested. Both of them were tortured for Christ and finally thrown into a fire into which the pagans had poured oil. Their souls were crowned with wreaths in the Kingdom of Christ, and their bodily remains were interred in the Church of St. George at a place called Cyparisson.
! HYMN OF PRAISE
!! SAINT EUSEBIUS, SAINT MELETIUS AND SAINT PELAGIUS
The Church is never without shepherds,
Nor without suffering, nor without heroes.
When the sharp sword flashed in Goliath-like manner,
Resistance offered, the Shepherd of Samosata.
Eusebius, and Meletius with him,
Like two stars--and the third, Pelagius--
Zealots of Holy Orthodoxy,
Glorious saints of God's Church.
Suffering for Christians there was at that time,
From both sides, bitter sufferings.
On one side, the wild heretics;
On the other side, the insane emperors.
To preserve one's soul, it was difficult,
And the truth of God to uphold
Against lies and against violence.
Amidst the tares, a little sweet basil there was,
A little immortelle, a little feather grass.
Three hierarchs--three fragrant flowers:
Enough honey for all the poison of the world.
Eusebius as a zealot began
And as a martyr his life ended.
O Eusebius, thou high priest,
O God-pleaser, bless us!
! REFLECTION
Why does the good Lord permit assaults and trials to fall on the true Faith, while He permits the pleasure of tranquility to heresies and paganism? "Why?" St. John Chrysostom asks and immediately replies: "So that you might recognize their weakness (i.e, of heresies and paganism)--when you see that they disintegrate on their own without any disturbance--and also be convinced of the power of the Faith that endures misfortunes and even multiplies through its adversaries." ... "Therefore, if we quarrel with the pagans or with the slanderous Jews, it is sufficient to emphasize, as evidence of divine power, that the Faith (Christianity), which was subjected to countless struggles, maintained victory," even when the entire world stood against her [the Church]. St. Isaac the Syrian says: "The wondrous love of God toward man is recognized when man is in misfortunes that are destroying his hope. Here God manifests His power for his [man's] salvation. For man never recognizes the power of God in tranquility and freedom."
! CONTEMPLATION
To contemplate the miraculous dumbness of Zacharias the High Priest: //And behold, you shall be dumb and unable to speak until the day when these things come to pass, because you have not believed my words which will be fulfilled in their proper time// (St. Luke 1:20):
# How Zacharias did not believe the angel of God that the aged womb of his wife [Elizabeth] could conceive and give birth, and how he was struck dumb because of this, in accordance with the words of the angel;
# How I too am as though struck dumb when I cannot sufficiently speak about God's miracles because my faith is small.
! HOMILY
!! About how the slothful man excuses himself
"The slothful man says: A lion is outside; in the streets I might be slain!" (Proverbs 22:13).
In order to justify his slothfulness, the slothful man emphasizes the difficulties and obstacles of a certain task and magnifies them beyond measure. If a man annoys him, he will say that the entire village annoys him; if the leaves rustle, he will claim that he is unable to go to work because of a storm; if a rabbit is in front of his house, he will say it is a lion! He says this in order to avoid leaving his house, and to delay his work.
Slothfulness is completely contrary to the nature of man. The nature of man is activity; the nature of man seeks to be occupied, to work and to build. Slothfulness is a sure sign of the distortion of nature in a man. That slothfulness is a terrible vice is clear in that the active man is never envious of the slothful man, while the slothful man is envious of the active man; in the same manner, the sober man is not envious of the drunkard, while the drunkard is envious of the sober man.
O Lord, ever-active Creator, save us from the dull and sinful slothfulness by which we distance ourselves from our primordial [first-created] nature, from Your image and likeness, O Master of all things! Inspire us with Your Holy Spirit, ever active and joy-creating.
To Thee be glory and praise forever. Amen.
! THE HOLY FEMALE-MARTYR AGRIPPINA
Saint Agrippina was born and educated in Rome. From her childhood she trained herself to live according to the Gospel, driving away the stench of passions from her heart and filling her heart with the sweet-smelling fragrance of purity, virginity and chastity. She was betrothed to Christ the Lord and suffered as a bride of Christ during the reign of Emperor Valerian. She endured flogging with rods until her bones were crushed. An angel of God appeared to her and strengthened her. Under further tortures St. Agrippina gave up her soul to God. Her companions, Vassa, Paula and Agathonica, took her relics to the island of Sicily and buried them there with honor. A church was later built there in St. Agrippina's honor. Countless miracles were wrought through her relics. By the power, even the Hagarenes were turned away from the town where her relics lay. St. Agrippina reposed in the year 275 A.D. and was crowned with glory.
! THE HOLY MARTYRS EUSTOCHIUS AND GAIUS, AND THOSE WITH THEM
Eustochius was a pagan priest during the reign of Emperor Maximian, but, witnessing the heroism of the Christian martyrs, he rejected paganism and was baptized. Eudoxius, the Bishop of Antioch, personally baptized him. After that, Eustochius gradually converted his relatives to Christianity. His relative Gaius was baptized along with three children: Probus, Lollias and Urban. All of these, and others with them, were brought before the court, tortured and beheaded in Lystra for the sake of their faith in Christ the Lord. Their souls took up their habitation in the Immortal Kingdom of Christ.
! THE COMMEMORATION OF THE ICON OF THE ALL-HOLY BIRTH-GIVER OF GOD [THEOTOKOS] OF THE TOWN OF VLADIMIR
When the Tartar King Ahmet besieged Moscow, Prince John (Ivan) Vasilievich set out with an army to defend the city. Even though the army of Prince John was smaller in number and weaker than the Tartar army, it nevertheless emerged victorious. All at once, an indescribable fear overcame the Tartars, and they became confused and fled. Everyone ascribed this unexpected success to the icon of the All-Holy Birth-giver of God, before which the Russian people had prayed for salvation from the Tartars. As a result of this, June 23 was designated in Russia for the commemoration of this miracle.
! THE HISTORY OF THE REPENTANCE OF THEOPHILUS
Theophilus, out of envy toward his bishop, rendered his soul to the devil and renounced Christ and the Birth-giver of God [Theotokos] in writing. However, Theophilus later repented bitterly and obtained the forgiveness of the Holy and All-pure One after forty days of fasting and tearful prayers, and received back the paper he had written renouncing Christ, which he had given to the devil, and openly confessed his sin in church before the bishop and the people. When the bishop pronounced the words of forgiveness and administered Holy Communion to him, the face of Theophilus shone like the sun. Behold an example of how the merciful God not only forgives the sins of true penitents but also includes them among the saints.
! HYMN OF PRAISE
!! SAINT AGRIPPINA
Agrippina, purer than a lily,
Of the Son of God, the betrothed--
Her soul was brighter than a flame,
And her faith firmer than a rock.
To the Lord she prayed, while being flogged;
She chanted psalms while enduring the wounds.
Forgiving all and blessing all,
Like a pillar of blood she stood before the court.
When her bones were crushed,
An angel descended and healed the wounds!
But when new sufferings were imposed,
Agrippina's strength gave out.
To God, Agrippina gave her spirit;
The soul departed but the body remained.
The holy relics of St. Agrippina
Are the defense of the land of Sicily,
Medicine to those in misfortune and to the sick,
And protection from belligerent hoards.
By the prayers of Saint Agrippina
May many troubles pass us by.
! REFLECTION
Christian patience is a meek patience, but patience that harbors an impotent malice does not differ much from vengeance. Our saints are great in every evangelical virtue, but how great and magnificent are they in meek patience! Perhaps they appear the greatest to us in this virtue because we are the smallest in it. When the desert fathers had once gathered around John Kolovos [The Dwarf] to hear an instruction, a certain envious one heckled: "Your vessel, O John, is full of poison!" To that the meek John immediately responded: "You said that, only seeing the exterior; but what would you have said if you had been able to see the interior?" When they brought out St. Cyprian, the Bishop of Carthage, for beheading, he commanded that twenty-five gold pieces be given to his executioner following his death.
! CONTEMPLATION
To contemplate the miraculous healing of Zacharias from dumbness: //And immediately his mouth was opened and his tongue loosed and he began to speak, blessing God// (St. Luke 1:64):
# How Zacharias became dumb because of his disbelief of the angel of God;
# How Zacharias spoke as soon as he fulfilled the command of the angel: //And asking for a writing tablet, he wrote the words: "John is his name"// (St. Luke 1:63);
# How dumbness will fall from my soul as soon as I begin to fulfill the commandments of God, and how my soul will be full of words and wisdom according to God.
! HOMILY
!! About how we must not envy the sinners
"Be not emulous [envious] of evil men" (Proverbs 24:1).
Does anyone envy the leper? No one envies him. Why then do some envy the evil man, when evil is a greater sickness than leprosy? Leprosy is a disease of the flesh, but evil is a disease of the soul. A leper can be healthy within, while he is unhealthy on the outside; and an evil man can be healthy on the outside, while his interior is ill--his heart is ill. A tree that is sick on the outside but has a healthy core has greater value than a tree that is healthy on the outside but has a rotten core. Thus, leprosy is a lesser evil than evil, i.e., than sin. For by evil, the All-wise One means sin (thought of sin as evil).
Does the physician envy the sick person? He does not envy him. Neither does the righteous one envy the sinner. If you do not know whether you are righteous, examine your heart: do you envy the sinner? If you envy the sinner then you are not righteous; if you do not envy the sinner, then rejoice, O righteous one of God. A sick person may envy a sick one, a sick person may envy a healthy person, but a healthy person does not envy a sick person. Neither does a righteous man envy the sinner. A physician recognizes a fatal illness of his patient and, knowing that, he pities him, but he does not envy him. A righteous one recognizes the sickness of sin, horrifying and deadly, and does not envy the sinner but pities him.
O good and compassionate Lord, uproot envy from our hearts and plant love.
To Thee be glory and praise forever. Amen.
! THE NATIVITY OF SAINT JOHN THE FORERUNNER AND BAPTIST OF THE LORD
Six months before his appearance in Nazareth to the All-holy Virgin Mary, the great archangel of God, Gabriel, appeared to Zacharias the high priest in the Temple at Jerusalem. Before announcing the miraculous conception by the unwedded virgin [Mary], the archangel announced the miraculous conception by the childless old woman [Elizabeth]. Zacharias did not immediately believe the words of the herald of God, and thus his tongue was bound by dumbness and it remained thus until eight days after the birth of John. On that day the relatives of Zacharias and Elizabeth gathered for the young child's circumcision and naming. When they asked the father what name he wished to give to his son, since he was mute he wrote on a tablet: "John." At that moment his tongue became loosed and he began to speak. The home of Zacharias was on the heights between Bethlehem and Hebron. The news of the appearance of the angel of God to Zacharias was spread throughout all of Israel, as well as that of his dumbness and the loosing of his tongue at the moment when he wrote the name "John." The news concerning this even reached Herod. Therefore, when Herod sent soldiers to slay the children in Bethlehem, he directed men to the hills, to the dwelling place of the family of Zacharias, to kill John also. But Elizabeth promptly hid the child. Enraged at this, King Herod sent his executioners to Zacharias in the Temple to slay him (for it happened that it was again Zacharias' turn to serve in the Temple of Jerusalem). Zacharias was slain between the court and the temple and his blood coagulated and petrified on the paving stones and remained a perpetual witness against Herod. Elizabeth hid with the child in a cave, where she died soon after. The young child John remained alone in the wilderness under the care of God and His angels.
! SAINT NICETAS, BISHOP OF REMESIANA
Nicetas was a friend and the contemporary of St. Paulinus of Nola (January 23). It appears that he was a Slav and as such preached the Gospel among the Slavs in the region of Niš and Pirot. The extent of the change that St. Nicetas wrought among the Slavs is best shown in the hymn which St. Paulinus composed about St. Nicetas:
O what a change! And how fortuitous!
The impassible mountains, which once concealed bloodthirsty robbers, Now shelter monks; disciples of peace. Where once wild beasts were common, There are now the faces of angels. The righteous hide in caves in which evildoers once dwelt.
The episcopal see of Nicetas was Remesiana, which some understand to be Pirot. In addition to his missionary labors, St. Nicetas also wrote several books, including six books on the Faith and a book about a fallen maiden (which roused many to repentance). Saint Nicetas reposed in the Lord in the fifth century.(//)
(//) That Nicetas was a Slav and lived in Pirot is attested to by Archbishop Philaret of Chernigov in his book //Saints of the Southern Slavs.//
! THE HOLY MARTYRS ORENTIUS, PHARNACIUS, EROS, FIRMUS, FIRMINUS, CYRIACUS AND LONGINUS
They were all brothers and Roman soldiers during the reign of Emperor Maximian. When the Romans were waging war against the Scythians beyond the Danube River, St. Orentius came forth to battle with Marathom, the Scythian Goliath, and slew him. Because of this, the entire Roman army offered sacrifices to the gods, but Orentius and his brothers declared that they were Christians and could not offer sacrifices to the deaf and dumb idols. Despite their military merits, they were condemned to exile in the Caspian region. However, along the way, all seven, one after the other, died from hunger and sufferings and took up their habitation in the Kingdom of Christ.
! HYMN OF PRAISE
!
! SAINT JOHN THE BAPTIST
!
By a miracle of God John entered the world,
As once did Sarah's and Abraham's Isaac;
By a miracle of God he remained alive
From Herod's bloody knife.
The knife, the young child John, missed,
But John's father it did not miss.
By a miracle of God John sustained himself
For thirty years in the desert.
To a servant of God, angels are shepherds;
To the poor, angels are guardians!
John grew, a loveable lamb,
That he might serve the Lamb of God,
That he might proclaim the bright day before the sun.
The unknown One, he recognized and glorified.
Of the great prophets, he was the last,
And of God's apostles, the beginning.
Like Elias, with God he spoke,
And like an apostle he loved and rebuked.
Of the high priest, wondrous son,
Of the martyrs of God, first-crowned brother.
! REFLECTION
One of the differences between the eloquent philosophy of the Greeks [Hellenes] and the Christian Faith is that Greek philosophy can clearly be expressed with words and comprehended by reading, while the Christian Faith cannot be clearly expressed by words, and still less can it be comprehended by reading alone. When you are expounding the Christian Faith, the example of the one who expounds it is indispensible; and for its understanding and acceptance, both reading and the practice of what is read are necessary. When Patriarch Photius read the words of St. Mark the Ascetic on the spiritual life, he noticed a certain lack of clarity in the author, about which he wisely said: "It [unclarity] does not proceed from the obscurity of expression but from the truth which is expressed there; it is better understood by means of practice (rather than by means of words) and cannot be explained by words only. And this," the great patriarch adds, "is the case not only with these homilies, and not only with this man, but rather with all of those who attempt to expound the ascetic rules and instructions, which are better understood by deeds (in practice)."
! CONTEMPLATION
To contemplate the miraculous recognition by the Elder Simeon the God-receiver: //And he came by inspiration of the Spirit into the Temple. And when his parents brought in the child Jesus to do for him according to the custom of the Law: //(St. Luke 2:27):
# How this holy elder recognized in the Spirit the helpless Child as Lord and Messiah, while the blinded scribes and priests did not recognize Him, either then or when He worked numerous miracles and revealed unheard-of wisdom;
# How my soul too, if it has grown old in sin, cannot recognize the Lord.
! HOMILY
! Against malicious rejoicing
"Rejoice not when your enemy falls; and when he stumbles, let not your heart exult" (Proverbs 24:17).
He is a man; do not rejoice in his fall. He is your brother; let not your heart leap for joy when he stumbles. God created him for life, and God does not rejoice in his fall. And you also, do not rejoice at that which grieves God. When a man falls, God loses; do you rejoice in the loss of your Creator, of your Parent? When the angels weep, do you rejoice?
When your enemy falls, pray to God for him, that God will save him; and give thanks to God that you did not fall in the same manner. You are of the same material, both you and he, like two vessels from the hand of the potter. If one vessel breaks, should the other one smile and rejoice? Behold, the small stone that broke that vessel only waits for someone's hand to raise it to destroy this vessel also. Both vessels are of the same material, and a small stone can destroy a hundred vessels.
When one sheep is lost, should the rest of the flock rejoice? No, they should not. For behold, the shepherd leaves his flock and, being concerned, goes to seek the lost sheep. The shepherd's loss is the flock's loss too. Therefore, do not rejoice when your enemy falls, for your Shepherd and his Shepherd, the Lord Jesus Christ, does not rejoice in his fall.
O Lord Jesus Christ, Thou Good Shepherd, remove malicious joy from our hearts, and in its place plant compassion and brotherly love.
To Thee be glory and praise forever. Amen.
! THE VENERABLE FEMALE-MARTYR FEBRONIA [FEVRONIA]
Febronia was the daughter of Prosphorus, a senator from Rome. In order to avoid marriage with a mortal man, Febronia betrothed herself to Christ and was tonsured a nun in the East, in the land of Assyria, in a convent where her aunt Bryaena was abbess. Lysimachus, the son of a nobleman, desired to wed Febronia, but since Emperor Diocletian suspected him of being a secret Christian, he sent Lysimachus to the East with his uncle Silenus to apprehend and kill Christians. Silenus was as cruel as a beast, and he exterminated Christians everywhere without mercy. Lysimachus, on the contrary, spared the Christians wherever he could and hid them from his beastly uncle. Having made Palmyra devoid of Christians, Silenus came to the town of Nisibis, close to which was a convent with fifty ascetics, among whom was Febronia. Even though she was only twenty years old, Febronia was respected both in the convent and in the town because of her great meekness, wisdom and abstinence. In this convent they adhered to the rule of the former abbess, Blessed Platonida, that every Friday be spent only in prayer and the reading of sacred books, without any other type of work. Bryaena had appointed Febronia to read the sacred books to the sisters while she was hidden behind a curtain, so that no one would be distracted and captivated by the beauty of her face. Hearing about Febronia, Silenus ordered that Febronia be brought to him. But, when the holy virgin refused to deny Christ or to enter into marriage with a mortal man, Silenus ordered them to whip her, then knock out her teeth, then cut off her hands and breasts and legs, and finally to slay her with a sword. But a horrible punishment from God befell the torturer that same day: a demon entered into him and he was overcome by a deadly terror. In this fear he struck his head against a marble pillar and fell dead. Lysimachus ordered that Febronia's body be gathered and brought to the convent, where it was honorably buried, and he and many other soldiers were baptized. From the relics of St. Febronia there occurred many healings, and she appeared on the day of her feast and stood in her usual place among the sisters, and all the sisters looked upon her with fear and rejoicing. St. Febronia suffered honorably and took up her habitation in eternal blessedness in the year 310 A.D., and in the year 363 A.D. her relics were translated to Constantinople.
! VENERABLE DIONYSIUS
Dionysius was the founder of the Monastery of St. John (Dionysiou) on Mt. Athos. He was born in Koritza in Albania. His older brother, Theodosius, withdrew to Mt. Athos, where he eventually became the abbot of the Monastery of Philotheou. When St. Dionysius had grown up, he went to his brother in Philotheou and his brother tonsured him a monk. By divine providence, while Theodosius was in Constantinople on a work assignment for the monastery, he was chosen and consecrated Metropolitan of Trebizond. A wondrous light began to appear every night to Dionysius on the spot where he later built the Monastery of St. John the Forerunner. Understanding the appearance of this light as a sign from heaven that he should build a monastery there, Dionysius traveled to Trebizond to seek help from his brother Theodosius and from Emperor Alexius Comnenus. The emperor gave him both money and a royal charter, which is still preserved in the monastery. Dionysius founded the Monastery of St. John the Forerunner in the year 1380 A.D. When pirates once plundered the monastery, Dionysius again traveled to Trebizond and died there at the age of seventy-two. The Monastery of Dionysiou still exists and flourishes to the present day. In this monastery there is an icon of the All-holy Birth-giver of God called "Of the Praise," that Emperor Alexius Comnenus donated to Dionysius. According to tradition, it was before this icon that the Akathist to the Theotokos [Birth-giver of God] composed by Patriarch Sergius was read for the first time.
! HYMN OF PRAISE
!
! SAINT FEBRONIA
!
The virgin Febronia confessed Christ
Before the court standing, bloody and pale:
Like a palm branch, the young Febronia.
With beautiful fruit, the branch became heavy,
And to Silenus she spoke: "A Bridegroom, have I,
And no honors whatever from you will I accept.
Christ is my glory, Christ is my pride.
Oh yes, the beautiful countenance of my Bridegroom!
Cut off my feet, cut them off--the path they have traveled!
Cut off my hands, cut them off--the work they have completed!
Cut out my tongue, cut it out--with my heart will I pray!
Smash my mouth, smash it--with my heart will I speak!
Whip and crush my body--why do I need my body?
The Bridegroom has prepared a more beautiful garment,
Among many holy ones, in the heavens above,
Among the angels, in sweet Paradise.
Do not think, O Silenus, when I depart,
That the fury of your life will die.
But hear me and remember: behold, the same day
Before the Living God, together we will go,
You as a torturer, and I as one tortured by you.
Each, his deeds, will bring with him."
! REFLECTION
St. Mark the Ascetic said: "Whoever desires to avert future tribulations must bear the present tribulations with joy." Men consider slander to be a great tribulation, and there are few who bear this tribulation without grumbling. How beautiful is the fruit of tribulation that is endured with good grace! Tribulation is given to us for good spiritual commerce, but we miss the opportunity and thus remain empty-handed in the market place. Behold, even Athanasius, Basil, Chrysostom, Macarius, Sisoes, and thousands of other followers of the Most-slandered One were themselves slandered. But God, Who orders all things for our salvation, had so ordered that, on the thorn of slander, there would spring forth fragrant roses of glory for all those who are slandered for His Name. Had Stephen not been slandered, would he have seen the heavens opened and seen the glory of God in the heavens? And did not the slander against Joseph the Chaste serve to his even greater glory?
! CONTEMPLATION
To contemplate the miraculous catch of fish in the deep: //But when He had ceased speaking, He said to Simon, "Put out into the deep and lower your nets for a catch"// (St. Luke 5:4):
# How the apostles went out into the deep and, with the blessing of the Lord, caught an abundance of fish;
# How I am empty and hungry as long as I stand in the shallows of the senses and fish there for power and wisdom;
# How I should enter into the spiritual depths, with the blessing of the Lord, and there net a good catch.
! HOMILY
! About today and tomorrow
"Boast not of tomorrow, for you know not what any day may bring forth" (Proverbs 27:1).
Brethren, let us not boast of that which is not within our power. The Lord has set the seasons and the years under His authority, and He arranges them. God Himself alone knows whether tomorrow will number us among the living or the dead. Some have died on the eve of their marriage; others have descended into the grave on the eve of their coronation with a royal diadem. Therefore, let no one say: "Tomorrow will be for me the happiest day of my life, for tomorrow I enter into marriage!" or, "Tomorrow I will be crowned with a royal diadem!" or "Tomorrow I am going to a great feast!" or "Tomorrow a great gain is coming to me!" Oh, let no one speak of the happiness of tomorrow. Behold, this very night your soul may depart your body, and tomorrow you will find yourself surrounded by black demons in the tollhouses [Mitarstvo]! This very night, a man can be separated from his relatives and friends, from wealth and honor, from the sun and the stars, and find himself in a totally unknown company, in an unseen place, and at an unexpected judgment.
Instead of boasting of tomorrow, it would be better to pray to God to //give us this day our daily bread.// Today may be our last day on earth. That is why it is better to spend this day in repentance for all our past days on earth, rather than vainly fantasizing about tomorrow, about a day which perhaps will not dawn for us. Vain fantasizing about tomorrow cannot bring us any good, but repentance with tears for one day can save us from eternal fire.
O righteous Lord, burn up the insane vanity that is in us.
To Thee be glory and praise forever. Amen.
! THE VENERABLE DAVID
David was born in Thessalonica. At first he lived in asceticism near Thessalonica in a hut built beneath an almond tree. Later he continued his asceticism in Thessaly. So much did he purify himself by fasting, prayer and all-night vigils that he was made worthy to receive great grace from God. Once he took live coals in his hand, placed incense on the coals and censed the emperor without any injury to his hand. Seeing this, the emperor bowed down to the ground before him. The people were amazed by his numerous miracles. He died peacefully and took up his habitation in eternal blessedness in the year 540 A.D.
! THE FEAST OF THE TIKHVIN [TICHVINE] ICON OF THE MOTHER OF GOD
This icon of the Holy Birth-giver of God [the Theotokos] was first in Constantinople, but in 1383 A.D., seventy years before the fall of Constantinople [in 1453 A.D.], it suddenly appeared in the sky near the town of Tikhvin in northern Russia. On the spot where it came down to the ground, a church and monastery were established. The icon is named for the town of Tikhvin. Countless miracles have been wrought from this miraculous icon; many of the sick, especially, have received healing from it.
! THE FEAST OF THE HOLY ICON OF THE MOTHER OF GOD, THE GUIDE [HODIGITRIA]
This icon was painted [written] on wood by the Evangelist Luke himself, and the All-holy Birth-giver of God saw this icon and blessed it. St. Luke gave this icon as a gift to the state official Theophilus, for whom he wrote the Acts of the Apostles. This icon was later brought from Antioch to Jerusalem; from Jerusalem Empress Eudocia took it and sent it to Constantinople as a gift to the emperor's sister, the pious Pulcheria. Pulcheria placed the icon in the church of Blachernae, a church she herself founded. The All-holy Birth-giver of God once appeared to two blind men and led them into the Church of Blachernae, before her icon, and there restored their sight. Because of this, this icon received the name Hodigitria--the Guide. When the armies of the Persian King Chozroes and the Scythian King Kagan attacked Constantinople, Patriarch Sergius brought this icon out and processed with it around the ramparts of the city. Then the All-holy Birth-giver of God saved the Christians from the non-Christians. The armies of the adversaries became confused, the sea became agitated, their boats sank, and the enemies who remained alive fled. Since then, this miracle of the All-holy Birth-giver of God has been commemorated on the Saturday of the Fifth Week of the Honorable Fast Season [Lent] with the chanting of the Akathist. During the time of iconoclasm, this icon was brought to the Monastery of the Pantocrator, and there it was sealed in a wall and a votive light [lampada] was left burning in front of it. It was later found just as it was when it had been sealed.
! THE FEAST OF THE ICON OF THE MOTHER OF GOD OF LYDDA OR ROME
[See "Hymn of Praise" below]
! HYMN OF PRAISE
!
! THE ICON OF THE MOTHER OF GOD [THEOTOKOS] OF LYDDA OR OF ROME
!
The Lydda icon of the Mother of God
Was sent by Patriarch Germanus, a prisoner for the Faith,
From Constantinople to the pope
When the East suffered for the icons.
The icon upon the water set out,
Faster than the boats that sail the sea,
Lighter than water and the zephyr;
Atop the waves, the water it touched not.
For a long time, the icon in Rome remained
For much time, many years,
Until the iconoclastic emperors
From their battle with Christ ceased from fatigue.
And when golden peace the East gilded
The icon of Lydda returned home,
Lighter than water and the zephyr;
Atop the waves, the water it touched not.
Two capital cities [Constantinople and Rome], two martyrs,
The power of the Birth-giver of God, recognized,
The power of the most wonderful icon of Lydda,
That raises the dead and heals the sick.
! REFLECTION
Ceaseless repentance is necessary for a Christian until his last breath. St. Mark the Ascetic says: "Think and you will see that the mystery of devotion in the saints of God was realized through repentance." Repentance, even at the hour of death! The following incident occurred: An old ascetic and renowned spiritual father was dying, and he called for a priest to give him Holy Communion. Along the way a robber joined the priest and desired to see for himself how a holy man dies. The holy elder peacefully received Holy Communion and peacefully talked with the priest. The robber then wept and said: "Blessed are you! Alas, what kind of death will I be worthy of?" The holy elder suddenly became proud and responded to him: "Be as I am, and it will be for you as it is to me!" The robber returned along the road weeping all the time and lamenting over himself and, at that moment, fell dead. Then the people saw a "fool for Christ" weeping over the holy elder but dancing and singing over the robber. When he was asked the reason for this, he replied: "By pride that one [the elder] lost all merits; by repentance this one [the robber] reaped all the fruits!"
! CONTEMPLATION
To contemplate the miraculous healing of the deformed woman: //And behold, there was a woman who for eighteen years had a sickness caused by a spirit; and she was bent over and utterly unable to look upwards// (St. Luke 13:11):
# How the Lord placed His hands on the deformed woman and the woman straightened up;
# How my soul is deformed like the woman and is bent over to the ground;
# How the Lord can place His hand, i.e., His Holy Spirit, upon my soul and the deformity will immediately be set aright.
! HOMILY
! About the fear of the wicked man
"The wicked man flees although no one pursues him; but the just man, like a lion, feels sure of himself"(Proverbs 28:1).
Wicked [Impious] men are even afraid of shadows; to them the shadows of trees seem like an army. Wherever something rustles, the wicked man thinks: the avenger is coming! He hears the trembling of leaves as the sound of chains; he takes the voices of birds as the shouts of hunters who give chase after game; he sees grass as sping on his evil deed, the water as a witness against him, the sun as a judge, and the stars as those who taunt him. Oh, my brethren, how many lies are born out of fear? For fear is of sin, sin is of the devil, and the devil is the father of all lies.
Fear is the first fruit of sin. When Adam sinned, he hid from the face of God. And when God cried out to him, Adam said: //I heard your voice in the garden and I was afraid//(Genesis 3:10). Adam did not know about fear before he sinned, nor did he hide from the face of God but, on the contrary, always hastened to encounter God. But as soon as he sinned he //was afraid//.
//But the just man, like a lion feels sure of himself.// Without sin--without fear. Without sin--without weakness. The sinless ones are powerful, very powerful, and brave, very brave. The righteous ones are strong and fearless. Such are the righteous ones, only the righteous ones.
O sinless Lord, save us from empty fear, but before that, preserve us from sin, the parent of fear.
To Thee be glory and praise forever. Amen.
! SAINT SAMPSON, THE HOSPITABLE ONE WHO RECEIVED STRANGERS
Sampson was born of wealthy and eminent parents in ancient Rome, where he studied all the secular sciences of that time, dedicating himself particularly to the science of medicine. Sampson was a compassionate and unmercenary physician and administered cures to the sick, both for the body and the soul, counseling everyone to fulfill the requirements of the Christian Faith. He later moved to Constantinople, where he lived in a small house, from which, as the sun disperses its rays of light, he spread forth upon the whole land alms, comfort, counsel, hope, medicine and, in general, help to the helpless, both spiritually and physically. The patriarch heard of the great virtues of this man and ordained him a priest. At that time, Emperor Justinian the Great became ill and all his physicians were convinced that the illness was incurable. Then the emperor prayed to God with great fervency, and God revealed to him in a dream that Sampson would heal him. And indeed, when the emperor learned of Sampson, he invited him to his court, and as soon as the elder placed his hand on the ailing spot the emperor recovered. When the emperor offered him enormous wealth for this, Sampson thanked him but did not want to accept anything, saying to him: "O Emperor, I had gold and silver and other goods, but I left all for the sake of Christ, in order to gain eternal, heavenly wealth." When the emperor insisted on doing something for him, holy Sampson implored the emperor to build him a home [hospice] for the poor. There Sampson served the poor as a parent serves his children. Mercy toward the poor and helpless was natural to him. Finally, this saintly man, completely filled with heavenly power and goodness, reposed peacefully on June 27, 530 A.D., and was interred in the Church of his relative, the Holy Martyr Mocius. After his death, Sampson appeared many times to those who called upon him for assistance.
! SAINT SEVERUS THE PRESBYTER
Severus lived in central Italy and was a man of extraordinary sanctity. Once he was summoned to hear the confession of a man who was dying and to give him Holy Communion, but he was late because he had been working in his vineyard. There the news reached him that the sick man had died. In great fear, as though he had killed the man, Severus began to weep bitterly over the deceased, and by his fervent prayer God restored the dead man to life. Then Severus heard his confession, gave him Holy Communion and prepared him for a Christian departure from this world. On the eighth day the man again died.
! SAINT JOANNA THE MYRRH-BEARER
Joanna was the wife of Chuza, Herod's steward: //Joanna the wife of Chuza, Herod's steward// (St. Luke 8:3). When Herod beheaded John the Baptist, he disposed of his head in an unclean place. Joanna removed the head of the Baptist and buried it honorably on the Mount of Olives, on Herod's estate. Later, during the reign of Constantine the Great, the head of John the Baptist was discovered. St. Joanna is also remembered as having been present at both the passion and the Resurrection of the Lord. She died peacefully.
! HYMN OF PRAISE
!
! SAINT SEVERUS
!
When a dead man came to life, men asked him:
"Tell us, where were you, and who awakened you?"
"In a place of fear and horror, I was;
In the company of black ones, wolves and dogs;
In the depths, full of every uncleanness;
In the bottomless pit of darkness, without a single ray.
And when my soul despair overcame,
By the hand, a radiant young man took me.
Then, from the depths, a cool current blew,
And black ones with heads of dogs charged me:
'This one--he is ours, he is ours, where are you taking him now?
As a citizen of hades, do you not recognize him?'
To this the angel said: 'Severus, for him, is praying!
And by the will of God I am taking him;
In the body, once more, he must appear;
Behold, to confess him, Severus is seeking!
To confess him and, Holy Communion, to give him.
Armies of evil and recalcitrants, stay away!'
Thus the angel spoke, and with me flew away
Throughout cold hades, through the bottomless darkness,
Until at holiness I arrived, and returned to my body.
That is the history of me, the deceased.
Oh, to be confessed, what a treasure it is
And, as a communicant, enter into the world of eternity!"
! REFLECTION
There is no one so stupid as he who cannot see his own sins and cannot see the virtues of others. There is no one so enlightened as he who can see and recognize his own sins and the virtues of others. St. John Chrysostom equates those who see only the faults of others, and criticize them, to flies that fall on the wounds of others, not in order to heal them but to gnaw at them and poison them more. "God has sent us here for penance [Epitimija]," said Blessed Theophilus of Kiev (+1853). He who knows and feels that he is here for penance immerses himself in silence and contemplation of his own sin, which has brought him to do penance. The same blessed one further said: "Weep also over the sins of your fellow man; without this, not one created human being will be saved." To weep over or to proclaim--how is it written, my son? With Blessed Theophilus, it is to weep over, but with Satan, to proclaim. And about himself, Blessed Theophilus at the point of death left this testament to his brethren: "Remember stinking Theophilus!" This is the testament of the holiest human being in Kiev in the year 1853 A.D.
! CONTEMPLATION
To contemplate the miraculous healing of the man ill with dropsy: //And behold, there was a man before him who had dropsy// (St. Luke 14:2):
# How the Lord touched the man with dropsy, and he was healed and went home;
# How my soul--being under the burden of love for the body--is under the burden of dropsy;
# How the Lord with one touch can heal the dropsy of my soul and free it from the excessive burden of the dankness of the passions.
! HOMILY
! About shelter from on high
"He who trusts in the Lord is safe" (Proverbs 29:25).
The righteous man is under the shelter of the Lord, under the shelter from on high. The water will not reach him nor will the flood drown him. Indeed, the flood did not drown Noah, for the Lord was a shelter from on high for him.
However, brethren, there is a flood worse than a flood of water, that is, the flood of the passions. When the passions begin to burn, when they begin to smoke and turn black, when they emit their stench and spread it all around--where will a man flee, and who will save him? Only under the hand of the Lord, only under His shelter, the shelter from on high. The flood of passions pursued David, but he fled and found shelter under the hand of the Lord; he saved himself from the fire, the smoke and the stench of the pursuing passions under the shelter from on high.
A man cannot save himself from the flood--only God can save him. God is the Master of the clouds and the Tamer of the passions. Indeed, He is the Shelter from on high. We flee to Him and hide ourselves under the hem of His garment. A dog appears like a lion to a beggar but like an empty sack before the feet of his master.
O Lord Most-high, Who sits upon the throne on high, You are our Shelter from on high. Be merciful to us, O our Creator, and extend Your hand to raise us up to Your shelter. Save us from the turbulent waters [passions] which rush to drown us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS CYRUS AND JOHN
These holy martyrs are commemorated on January 31, and their lives and sufferings are described under that date. But June 28 commemorates the translation of their relics from Canopus to Menuthis and the numerous miracles that occurred through their relics. St. Cyril, the Patriarch of Alexandria, prayed fervently to God to destroy the idolatrous impurity in the town of Menuthis, where there was a pagan temple and where the power of the demons ruled. An angel of God appeared to the patriarch and told him that Menuthis would be cleansed of its impurity if he translated the relics of Saints Cyrus and John to that town. The patriarch did so immediately: he translated the relics of the martyrs to Menuthis and built a church there in honor of Saints Cyrus and John. Through the relics of these martyrs, Ammonius, the son of Julian, the mayor of Alexandria, was healed of scorfula; a certain Theodore was healed of blindness; Isidore of Maiuma was cured of a wasting disease of the liver; the wife of Theodore of poisoning; a certain Eugenia of dropsy; and many other people were healed of various diseases and torments by the relics of these saints. All this occurred in the year 412 A.D.
! VENERABLE SENNUPHIUS "THE STANDARD-BEARER"
Sennuphius was a great ascetic and miracle-worker of the Egyptian desert and a contemporary of Patriarch Theophilus and Emperor Theodosius the Great. He is called the "Standard-bearer" because, by his prayers, he once helped Emperor Theodosius gain a victory over the army of his adversaries. When the emperor summoned Sennuphius to Constantinople, Sennuphius replied that he was unable to go, but sent him his tattered monastic habit and staff. Setting out to battle, the emperor donned Sennuphius's monastic habit and carried the staff, and he returned from battle victorious.
! THE VENERABLE PAUL THE PHYSICIAN
Paul was a Corinthian by birth. Completing his schooling, Paul withdrew to a monastery and was tonsured a monk. He had a difficult struggle with the impure spirit of fornication. When he had driven that spirit away from himself by the power of the Cross, it created a malicious falsehood, inciting a depraved woman to say that she had given birth to a child by Paul. Some heretics then dragged him from the monastery, placed the child in his arms, and forced him to walk through the town, so the people could spit on him. The baby was only a few days old. St. Paul prayed fervently to God and said to the people: "Behold, let the child himself say who is his father." The child stretched out its hand from the swaddling clothes, pointed to a blacksmith and said: "That man is my father and not Paul the monk!" Paul's adversaries became ashamed, and God granted Paul great healing power, so that when he laid his hands on the sick they were healed. Paul reposed peacefully in old age, having pleased God by his life on earth. He lived in the seventh century.
! HYMN OF PRAISE
!
! SAINT SENNUPHIUS
!
Sennuphius the elder in the wilderness fasted,
His body passionless, like dry bones,
But, like water flowing from a dry stone,
From him flowed the grace of the Holy Spirit;
In a deadened body, was hidden a spirit powerful.
The glorious Emperor Theodosius heard of this
And, when he was readying for war,
He invited the Elder Sennuphius to come,
His blessing to give, so that the emperor the devil would crush.
Numerous gifts to him, the emperor promised.
The Elder Sennuphius into tears broke out.
To Emperor Theodosius, a reply he sent,
Saying that he roads were too distant: that he could not come,
And with cares, he could not upset his prayer.
For every gift, he gave thanks to the emperor,
And to the emperor, his old monastic habit he sent.
Along with the cassock, an old staff he sent.
These, to the emperor, the monk's gifts were!
"The staff, let the emperor take, and the robe to don,
And, in battle, every adversary he will defeat."
As a monk attired, the emperor for battle set out,
And glorious victor from the battle he returned.
The emperor, a pillar of victory in the city, erected,
And his likeness as a monk on top of the pillar he placed,
That the faith of Emperor Theodosius, the world would remember,
And of Saint Sennuphius, the miraculous power.
! REFLECTION
The Protestants have denied the power of God to work miracles through material things. By doing this they thought to spiritualize the Christian Faith; however, in doing this they have impoverished and deformed Christianity. They have rejected the action of God's power through icons, through the relics of the saints, through the Cross, and finally, some of them, even through the power of Holy Communion. If they were to follow this erroneous path to the end, they would have to reject even the miracles which occurred through the living body of the Lord Jesus, for His body was also material; likewise the miracles from the touch of the hands of the apostles and the saints, for these hands are also material--not to mention the rod of Moses, or the vesture of the All-holy Birth-giver of God, or the handkerchief of the Apostle Paul and so forth. In this rejection, the Protestants stand in contradiction to the entire ancient Church. Here is one out of thousands and thousands of proofs that God acts through things, especially when He wants to glorify His saints: There was a tall pillar erected in Alexandria bearing a statue of Emperor Theodosius dressed in a monastic habit and with a monastic staff in his hand. This pillar served as a memorial of the emperor's victory over his adversaries while he was clad in the monastic habit of St. Sennuphius and held his staff in his hand. When God so wills, even one garment of a saint will conquer the powerful armies of unbelievers. Who would dare to limit the actions or the methods of action of the power of the Almighty God?
! CONTEMPLATION
To contemplate the miraculous healing of the ten lepers: //And as He entered into a certain village, there met Him ten men that were lepers which stood afar off// (St. Luke 17:12):
# How the Lord, by the power of His word, healed the ten lepers who begged Him;
# How the Lord can heal even me, spiritually and morally leprous, if I cry out to Him.
! HOMILY
! About holiness
"But as the One who called you is holy, be you also holy in all your behavior" (1 Peter 1:15).
Brethren, holiness is the virtue which encompasses all other virtues. Hence brethren, a saint is a man adorned with all the virtues. For if a man is prayerful but not compassionate, he cannot be called holy. Or if a man endures but is without faith and hope, he cannot be numbered among the saints. Or if a man is very compassionate but is without faith in God, in truth, such a man cannot be numbered among the saints. A saint is a perfect man such as Adam was in Paradise; or even better, such as the New Adam, the Lord Jesus Christ, is. This is the Saint above the saints. This is the Sower of holiness on earth and the Nurturer of the saints in history. He has called us to the dignity of the saints. He has showed us an example of a true saint. He is the prototype of the saints, as He is the archetype of man. A true man, my brethren, is nothing else but a saint. A saint and a man--it is one and the same. He showed us what it means to be a man and what it means to be a saint. The Apostle Peter commands us: //Be you also holy in all your [living] behavior!// A saint is not a saint in only one aspect of his life but rather in his entire life. We must be holy in every work of our life, large and small, in order to be numbered among the saints; i.e., among people whose lives were in accordance with the prototype of the saints and the archetype of man, the Lord Jesus Christ.
! O All-holy Lord, to Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE PETER
Peter was the son of Jonah and the brother of Andrew, the First-called. He was of the tribe of Simeon, from the town of Bethsaida. He was a fisherman and was at first called Simon, but the Lord was pleased to call him Cephas or Peter: //And he brought him to Jesus. And when Jesus beheld him, He said, You are Simon the son of Jonah: you shall be called Cephas, which is by interpretation, a rock//(John 1:42). He was the first of the disciples to clearly express faith in the Lord Jesus, saying: //Thou ! art the Christ, the Son of the living God// (Matthew 16:16). His love for the Lord was great, and his faith in the Lord became gradually stronger. When the Lord was brought to trial, Peter denied Him three times; but after only one glance into the face of the Lord, Peter's soul was filled with shame and repentance. After the descent of the Holy Spirit, Peter showed himself to be a fearless and powerful preacher of the Gospel. Following one of his sermons in Jerusalem, three-thousand souls were converted to the Faith. He preached the Gospel in Palestine, Asia Minor, Illyria and Italy. Peter worked many powerful miracles: he healed the sick and resurrected the dead, and the sick were healed even from his shadow. He had a great struggle with Simon the Magician, who proclaimed himself to be a god, but who was in reality a servant of Satan. Peter finally shamed and defeated him. By order of Simon's friend, the evil Emperor Nero, Peter was condemned to death. Having consecrated Linus Bishop of Rome, and having counseled and comforted the flock of Christ, Peter proceeded joyfully to his death. Seeing the cross before him, he begged his executioners to crucify him upside down, for he considered himself unworthy to die as had his Lord. Thus, this great servant of the Great Lord reposed and received a wreath of eternal glory.
! THE HOLY APOSTLE PAUL
Paul was born in Tarsus and was of the tribe of Benjamin. At first he was called Saul. He studied under Gamaliel, and was a Pharisee and a persecutor of Christianity. He was miraculously converted to the Christian Faith by the Lord Himself, Who appeared to him on the road to Damascus. He was baptized by the Apostle Ananias, named Paul and numbered in the service of the Great Apostles. With fiery zeal Paul preached the Gospel everywhere, from the borders of Arabia to Spain, among the Jews and among the Gentiles, and received the title "the Apostle to the Gentiles." As horrible as his sufferings were, so much greater was his superhuman patience. Throughout all the years of his preaching, Paul hung from day to day as on a weak thread between life and death. Having fulfilled all his days and nights with labor and suffering for Christ, having organized the Church in many places, and having attained such a degree of perfection, he was able to say: //It is now no longer I that live, but Christ lives in me// (Galatians 2:20). Paul was beheaded in Rome during the reign of Emperor Nero, at the same time as the martyrdom of the Apostle Peter.
! HYMN OF PRAISE
!
! SAINT PETER SAINT PAUL
!
Unlearned and learned, but equal in spirit,
And, in the love of God, as strong as angels,
Peter a simple man, Paul educated,
Both were illumined by the grace of the Spirit.
Two flaming candles, unquenchable candles,
Towering and beautiful, two brilliant stars.
They traversed the earth and spread the light.
Nothing did they take, but to men they gave all;
They were utterly poor, but the world they enriched;
They were prisoners and servants, but conquered the whole world.
With the teaching of Christ they enriched the world;
With new weapons they conquered the whole world:
With humility and peace and meekness blessed,
With prayer and fasting and mercy powerful.
When their stormy day passed into stormy night,
Bloodthirsty Nero, their lives, cut short.
But when Nero, the ruler of the world, a command issued,
To suffering, giving over Peter and Paul,
The world was theirs and no longer Nero's;
By death the apostles gained the Kingdom.
! REFLECTION
Simon Peter and Simon the Magician. The enemies of Christianity frequently like to cite examples of great miracle-workers among the pagans in order to deceive the gullible, denigrate the Christian Faith and exalt paganism, sorcery, soothsaying, satanism and every other charlatanism. There is no doubt that Satan through his servants also attempts to perform miracles, but none of the miracles of his servants proceed from love for man, compassion, mercy or faith in God, but rather from pride, selfishness, vanity and hatred for mankind. A Christian should learn from the story of the apostles to differentiate divine miracles from satanic deceits and fantasies. Only let the Christian recall the Apostle Peter and Simon the Magician. Let him compare the miracles of Peter with the so-called miracles of Simon. The apostle converted the stony hearts of men into noble hearts, he cured the sick, and he raised the dead--and all of this by prayer and faith in the Living God. However, Simon the Magician amazed the people with diabolical illusions. The Apostle Peter was a friend of God, and Simon the Magician was a friend and protégé of the perverted Emperor Nero, who ended his life by suicide. The miracles of the pagan fakirs belong to the same category as the illusions and deceits of Simon the Magician. Just as from a distance hot sand resembles water, so also the "miracles" of the fakirs resemble the life-creating miracles of Christianity.
! CONTEMPLATION
To contemplate the miraculous healing of blind Bartimeus: //And they came to Jericho. And as He was leaving Jericho with His disciples and a very great crowd, Bartimeus, a blind man, the son of Timeus, was sitting by the wayside begging// (St. Mark 10:46):
# How Bartimeus begged the Lord: "Have mercy on me!"
# How the Lord said: "See!" And he saw;
# How, if I pray, the word of the Lord can also give sight to my blinded soul.
! HOMILY
! About the fear of God
"Conduct yourselves with fear in the time of your sojourning" (1 Peter 1:17).
These are the words of the great Apostle Peter, words that have a dual foundation: heavenly inspiration and personal experience. By divine inspiration, Peter, the simple fisherman, became a teacher of the people, a pillar of the Faith and a powerful miracle-worker. Through his own experience, he learned that all of his wisdom and power was of God and that one should thus possess the fear of God: no other fear but the fear of God.
The fool becomes frightened only when lightning flashes and thunder cracks, but the wise man fears God every day and every hour. The Creator of lightning and thunder is more awesome than both of them, and He does not appear before you from time to time as do lightning and thunder, but He is continually before you and does not leave you. That is why it is not enough to have fear of God from time to time, but one must breathe the fear of God. The fear of God is the fresh ozone in the suffocating atmosphere of our soul. This ozone brings purity, lightness, sweet fragrance and health. Until he had become strengthened in the fear of God, Peter was only Peter and not an apostle, a hero, a teacher of the people, and miracle-worker.
O my brethren, let us not rejoice before the harvest. This life of ours is not the harvest, but a time of sowing, labor, sweat and fear. The sower lives in fear until he has gathered the fruits from the field. Let us also delay our rejoicing until the day of harvest, for now is the time for labor and fear. Will I be saved? This question should torment every one of us in the same way that the sower is tormented by the question: "Will I reap the fruit of my labor in the field?" The sower labors and fears every day. Let us also labor and fear "all the time of our sojourning" on earth.
O awesome and powerful Lord, sustain us in Your fear.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR LUCILLIAN AND THOSE WITH HIM: CLAUDIUS, HYPATIUS, PAUL, DIONYSIUS AND THE VIRGIN PAULA
Lucillian grew old as a pagan priest but, as a gray-haired old man, he recognized the truth of Christianity and was baptized. His conversion to Christianity provoked great anxiety among the pagans in Nicomedia, and he was brought to trial. Because he would not deny his new Faith, Lucillian was violently beaten and, completely bruised, was thrown into prison. In prison he met four young men: Claudius, Hypatius, Paul and Dionysius, who were also imprisoned because of their faith in Christ. The old man greatly rejoiced in the young men and they in him, and together they spent all their time in pious conversation, prayer and the chanting of psalms. When they were led out of prison, they were tortured by various means and finally sent to Byzantium, where the soldiers beheaded Claudius, Hypatius, Paul, Dionysius, and where Lucillian was crucified by the Jews. The nefarious Jews pierced Lucillian's whole body with nails. A virgin named Paula openly took the martyrs' bodies and honorably buried them. For this she was accused and, after having been tortured, was beheaded, receiving two wreaths from the Lord: the wreath of virginity and the wreath of martyrdom. Their martyrdom occurred during the reign of Emperor Aurelian between the years 270-275 A.D.
! THE PRIESTLY-MARTYR LUCIAN
Lucian was a Roman renowned for his noble birth, wealth and learning. For a period of time he was a disciple of the Apostle Peter. Later, Pope Clement sent him to Gaul to preach the Gospel, together with Dionysius the Areopagite, consecrating him bishop beforehand. With great zeal Lucian sowed the teachings of Christ, at first in Gaul and then in Belgium. When the evil Emperor Dometian began his persecution of Christians, special messengers were sent by him from Rome to Gaul to seek out and capture the Christian missionaries. They first captured St. Dionysius and after that they went in pursuit of Lucian. Finding Lucian in Belgium with his assistants, the presbyter Maxianus and the deacon Julian, the soldier killed the latter two in one place and in another place beheaded Lucian. After Lucian had been beheaded, his lifeless body rose up from the ground, took its head in its hands (like St. Dionysius and St. John Vladimir) and then walked to the place where he desired to be buried. There he fell and there he was buried. A church was later built over his relics.
! THE HOLY MARTYR DIMITRI, CROWN-PRINCE OF RUSSIA
The ambitious Boris Godunov treacherously murdered Dimitri at the age of eight in the town of Uglich in the year 1591 A.D. After his death Dimitri appeared to a monk and prophesied that a false Dimitri would appear and would cause the death of the murderer, Boris Godunov--which afterward came to pass. A countless number of miracles occurred at the grave of the slain crown prince. After fifteen years his relics were discovered to be whole and incorrupt. They were solemnly translated to Moscow and interred in the church of the Holy Archangel Michael.
! HYMN OF PRAISE
! THE HOLY MARTYR DIMITRI, CROWN-PRINCE
Dimitri, a small child, a great saint became,
And Godunov, a great murderer, forever remains cursed.
Craving power, an ambitious one can never be satisfied;
In both worlds, lust for power is fire--fire unquenchable.
From Boris's goblet men are poisoned,
But from his own goblet, Boris drank and himself judged.
Down a river of blood, to the throne Boris sailed,
But into a sea of maggots that river flows.
As from an earthquake, the crown on the criminal trembled,
Of everything afraid, he looked toward the heavens.
Whoever sheds innocent blood, let him prepare to shed hiw own:
To this there has never been an exception, nor will there be.
Lust for power--a winged horse, with wings of wax.
When to the heights of power it soars, the wings melt!
Then from the heights to the bottom it falls, lower than a beggar.
And Satan to his own says: "Behold, the hundredth fool!"
Dimitri, the young crown prince, innocently suffered;
Crown prince was he then, and crown prince is he now.
! REFLECTION
Oh, if only we could enter into the mystery of God's Providence in the lives of men! We would be filled with fear and trembling before every evil deed and before every sin of men. //I understood Your works, O Lord, and I was afraid //(Habakkuk 3:2) In certain great events, the mystery of God's Providence is obvious even to less spiritual men, for example, in the fate of the Crown Prince Dimitri and the bloodthirsty and power-loving Boris Godunov. In order to arrive at the first place among the noblemen in the court of Tsar Theodore, Godunov poisoned many of the nobles. When he reached the position of being closest to the Tsar, he even planned to poison the brother of the Tsar, the eight-year old Dimitri. On several occasions, through hired mercenaries, he administered the most bitter poison to the young crown prince, but the poison had no affect. Providence permitted the criminal murder his victim, not secretly and quietly, but publicly. Godunov dispatched murderers who slew the crown prince publicly in the middle of the day. Thus did Dimitri become a public martyr and Godunov a public criminal for all of Russia. After that, a certain Dimitri surfaced and proclaimed that he was the crown prince (as though he were the rightful Crown Prince Dimitri and someone else had been murdered) and set out with an army against Godunov. He defeated Godunov and drove him to such dispair that Boris prepared poison and took the poison himself. He, who poisoned others poisoned himself! He who murdered the innocent Dimitri was himself defeated by a man with the name of Dimitri! He who has spiritual eyes to see, let him see the mystery of God's Providence.
! CONTEMPLATION
To contemplate the miraculous calming of the tempest on the lake: //And, behold, there arose a great tempest in the sea, insomuch that the ship was covered with waves: but He was asleep// (St. Matthew 8:24):
# How the disciples cried out: //Lord, save us: we perish!// (St. Matthew 8:25) and how the Lord, with one word, calmed the tempest and there was a great calm;
# How the Lord is waiting for me to cry out to Him in fear to calm the tempest of passions, of men, and of demons on the sea of my life.
! HOMILY
! About the peace of the simple and the prosperity of the fools
"For the turning away of the simple shall slay them and the prosperity of fools shall destroy them" (Proverbs 1:32).
Does peace kill? Yes, godless peace kills. Does prosperity destroy? Yes, prosperity without God and contrary to the laws of God can destroy. They are simpletons who seek such peace, and they who run after such prosperity are fools. For, in essence, they do not seek peace but rather the sword, and they are not running after prosperity but rather after destruction. What is the peace of the simple, and what is the prosperity of fools? The peace of the simple is physical peace, and the prosperity of fools is physical feasting. King Herod wanted such peace, and he was consumed by worms; Jezebel wanted such prosperity, and dogs consumed her.
By what name would we call a man who, in deciding to build a house, thinks that he will set the roof in the air first and afterward erect walls and then lay the foundation of the house? We would call him a simpleton and a fool. Much the same are all those who are attempting to establish peace in the world without inward peace, and to establish outward prosperity for men without inward prosperity. The Christian Faith is the only one that builds from the foundation, and the foundation is Christ, a firm and indestructible rock. Thus the Christian Faith builds the peace and prosperity of men on Christ. A blessed and joyful inward peace is built on Christ the Lord, and on this peace outward peace is built. So also is true and lasting prosperity. It is still better to say that true peace and true prosperity are like a well-built house, and outward peace and prosperity are like the external adornments of the house. If the adornments fall, the house will stand; but if the house is destroyed, will the adornments then hang in the air?
O my brethren, the Christian teaching is the only sensible teaching about peace and prosperity. All else is madness and foolishness. For how could the servants build a mansion on the estate of the Master without permission of the Master and without His help?
O Lord, the source of eternal true peace and true prosperity, save us from the peace of the simple and the prosperity of fools.
To Thee be glory and praise forever. Amen.
! THE ASSEMBLY OF THE HOLY GLORIOUS AND PRAISE WORTHY APOSTLES
Even though each of the Twelve Great Apostles has his own particular feast day during the year, the Church has set aside this day as a general feast of all the apostles together, and Paul with them. These are the names and the separate feast days of the Holy Twelve:
! SAINT PETER June 29 and January 16
! SAINT ANDREW November 30
! SAINT JAMES, THE SON OF ZEBEDEE April 30
! SAINT JOHN THE THEOLOGIAN September 26 and May 8
! SAINT PHILIP November 14
! SAINT BARTHOLOMEW June 11 and August 25
! SAINT THOMAS October 6
! SAINT MATTHEW THE EVANGELIST November 16
! SAINT JAMES, THE SON OF ALPHAEUS October 9
! SAINT THADDEUS OR JUDE,
THE! BROTHER OF JAMES June 19
! SAINT SIMON THE ZEALOT May 10
! SAINT MATTHIAS August 9
! SAINT PAUL June 29
Let us also recall how each one of these, the most holy and selfless men in the history of the world, ended his earthly life:
! Saint Peter was crucified upside down.
! Saint Andrew was crucified.
! Saint James, the son of Zebedee was beheaded.
! Saint John the Theologian died in a miraculous manner.
! Saint Philip was crucified.
! Saint Bartholomew was crucified, scrapped (flayed) and beheaded.
! Saint Thomas was pierced with five spears.
! Saint Matthew the Evangelist was burned alive.
! Saint James, the son of Alphaeus was crucified.
! Saint Thaddeus or Jude, the! Brother of James was crucified.
! Saint Simon the Zealot was crucified.
! Saint Matthias was stoned and then beheaded after death.
! Saint Paul was beheaded.
! BLESSED PETER THE CROWN-PRINCE
Peter was a Tartar by descent and the nephew of the Tartar King Berkai. He heard a sermon on salvation from Bishop Cyril of Rostov and the words clung to his heart. When he further witnessed the miraculous healing of Berkai's son by the prayers of Bishop Cyril, he secretly left the Golden Horde and fled to Rostov, where he was baptized. He dedicated himself, with all his soul and heart, to asceticism and the study of the honorable Faith. On the shore of a lake Saints Peter and Paul once appeared to him at night in a dream and commanded him to build a church in their name on that spot, giving him the amount of money necessary for that purpose. Indeed, Blessed Peter indeed built a beautiful church in that place, and was tonsured a monk there in old age, following the death of his wife. Blessed Peter died peacefully in ripe old age on June 29, 1290 A.D. and his church became--and remains--a monastery called the Petrovski Monastery.
! VENERABLE GEORGE THE IBERIAN [GEORGIAN]
George was born in Iberia or Georgia in 1014 A.D. and was related to the Georgian kings. George received a good classical education in his childhood, but his heart drew him to the spiritual life. After living in asceticism with the famous spiritual father George in the Black Mountain, he fled to Holy Mount Athos and continued his asceticism in the Monastery of Iveron, where he became abbot. With the help of Emperor Constantine Monomachus, he restored Iveron and covered the monastery church with a lead roof, which remains even to our day. He translated the Holy Scriptures, the Prologue and the Divine Service books into the Georgian language. King Bagrat invited him to Georgia to teach the people. He received a royal welcome in his homeland and he traveled all over, teaching both the clergy and the people. When he was in old age he desired to die on Mt. Athos and set out on the way, but death overtook him in Constantinople in the year 1067 A.D. His relics were translated to Iveron. Even though he died on May 24, the Georgians commemorate him on June 30, considering him to be "equal to the apostles."
! HYMN OF PRAISE
!
! THE HOLY APOSTLES
!
Like a dry desert, the whole world was;
Across it the chariot of the Spirit flew--
A fiery vision, the Holy Apostles.
The All-holy Spirit, through them, rebuilt the universe.
Rivers of wondrous grace flowed,
And brought the dead desert to life.
Wonderful Apostles, water-bearing clouds,
Simple ones, wise ones, fishermen, heroes!
From the Ganges to the Thames, they carried the torch;
From the Nile to Pontus, holiness they proclaimed.
From variegated Persia to bronze Gaul,
Wherever feet trod or galleys sailed:
Everywhere, the miracle of the Incarnate God, they brought,
Everywhere, the name of the resurrected Christ, they proclaimed,
Without complaint and fear, without confusion.
Mountains and seas to them were not obstacles;
The sword did not frighten them, nor persecution prevent them;
Nor by all the fires of hades that against them erupted were they stopped.
Truth guided them, not a false fable.
"Our life is Christ, and death a beautiful gain!"
Thus they spoke. To such as these, what could be done?
Crucify their bodies? Scrape (flay) their skin?
The world did this, but what harm did it do them?
May they reign eternally! Thus has God judged.
! REFLECTION
Concern for the good of all people! That concern filled the exalted spirits and noble hearts of the holy apostles. Writing about the Apostle Paul, St. John Chrysostom calls him "the universal father of the world." "As though he had given birth to the entire world," says Chrysostom, "he anxiously labored and tried to bring all into the Kingdom." Indeed the title "universal father of the world" is most exalted, and if this title could be given to anyone other than God, it could only be to the apostles of Christ. By their parental concern for the whole world, they in truth were "the universal fathers of the world."
There are many mothers in the world who care less about their own children than the apostles cared about the good of their persecutors and adversaries. The Apostle Peter twice saved his most bitter adversary, Simon the Magician, from death: once when the people wanted to burn him and another time when a dog wanted to tear him to pieces. Just think how the world repaid these their benefactors! As if they were the greatest robbers and criminals. Oh, how true are the words of St. Cyril, who said: "As long as we are in the body, we Christians seem the same as pagans; the difference is only in the spirit."
! CONTEMPLATION
To contemplate the miraculous repentance of the thief on the Cross: //But the other one rebuked him: "Have you no fear of God seeing you are under the same sentence?"// (St. Luke 23:40):
# How the wise thief sensed God's closeness in his suffering, repented and prayed to God for salvation, while the suffering of the foolish thief incited him to blaspheme God;
# How I, who am also a thief as a result of sin, should be like the wise thief, whose suffering did not estrange him from God but rather drew him closer to God--to God and to salvation.
! HOMILY
! About the power and the efficacy of good works
"For such is the will of God, that by doing good you should put to silence the ignorance of foolish men" (1 Peter 2:15).
Brethren, it is difficult to argue with an atheist; it is difficult to talk with a madman; it is difficult to persuade an embittered man. It is difficult to convince an atheist, a madman or an embittered man with words. You will convince them more easily by deeds. //They may through observing you by reason of your good works glorify God// (1 Peter 2:12). Do good to those who wish to argue with you, and you will win the argument. One deed of compassion will bring the madman to his senses and will pacify the embittered man more quickly than many hours of conversation. If atheism, madness and bitterness stem from ignorance, that ignorance is like a rage which can quickly be restrained by good works. If you argue with an atheist in his own rabid manner, you strengthen the rage of atheism. If you converse with madman by derision, the darkness of his madness is increased. If you think you will overcome an embittered man with anger, you will stir up a greater fire of bitterness. A meek and good deed is like water on a fire. Always remember the holy apostles and their successful methods of behavior toward men. If an atheist provokes you, it is not the man that provokes you but the devil; for man by nature is religious. If a madman swears at you, it is not the man that swears at you but the devil; for man by nature is reasonable. If an embittered man persecutes you, it is not the man that persecutes you but the devil; for man by nature is good. The devil provokes you to lengthy arguments and unfruitful conversations, but he flees from good deeds. Do good in the name of Christ, and the devil will flee. Only then will you have dealings with men, with true men; pious, reasonable and good. Therefore, whatever you do, do it in the name of the Lord.
O All-good Lord, help us to do good and by good to conquer in Your name.
To Thee be glory and praise forever. Amen.
! SAINT METROPHANES, THE FIRST PATRIARCH OF CONSTANTINOPLE
His father, Dometius, brother of the Roman Emperor Probus, fled from Rome as a Christian during the persecution of Christians and arrived at Byzantium. Titus, the Bishop of Byzantium, ordained him a presbyter. Following the death of Titus, Dometius became the Bishop of Byzantium. After the death of Dometius, his eldest son, Probus,(//) occupied the episcopal throne, and after the death of Probus, Metrophanes assumed the episcopal throne. When Emperor Constantine first saw Metrophanes, he loved him as a father. At the time of the First Ecumenical Council [325 A.D.], Metrophanes was already a man of one-hundred seventeen years and unable to participate in the work of the Council, so he appointed Alexander, his Choriepiscopus (vicar), as his representative. The emperor petitioned the Council to confer upon him [Metrophanes] the title of patriarch. Thus, he was the first Patriarch of Constantinople. Further, the emperor invited the entire Council to visit the ailing and aged arch-pastor. When the emperor asked him whom he wished to name as successor to the patriarchal throne, Metrophanes named Alexander of Alexandria. Then he said to Alexander: "O brother, I leave you as my most worthy successor." He then took the hand of Archdeacon Athanasius (later Athanasius the Great, Patriarch of Alexandria) and praised him before all. After this prophecy, Metrophanes sought forgiveness from all and within ten days gave up his soul to God, in the year 325 A.D.
(//) Earlier, Dometius was a pagan and had children.
! THE HOLY MARTYR CONCORDIUS
During his life on earth Concordius was an ascetic and a miracle-worker. During the reign of Emperor Antoninus he was arrested because of his faith in Christ. Following imprisonment and torture, he was led to the stone idol of Zeus in order to worship it. Concordius spat on the idol, and because of that he was immediately beheaded.
! THE HOLY MARTYRS FRONTASIUS, SEVERINUS, SEVERIAN AND SILANUS
They were martyred in France during the reign of Emperor Claudius. After they were beheaded, they rose to their feet, took their heads into their hands, crossed over the river Isle, and arrived at the Church of the Holy Birth-giver of God, where Bishop Frontanus was praying. Entering the church, they laid their heads before the feet of the bishop and lay down, crossing their hands over their chests. They were honorably buried there. During their burial an invisible host of angels was heard singing.
! THE VENERABLE ZOSIMAS, BISHOP OF NEW BABYLON [A CITY IN EGYPT]
Zosimas lived a life of asceticism on Mt. Sinai. He came to Alexandria on business and was consecrated Bishop of New Babylon by the blessed Patriarch Apollinarius. He was a worthy shepherd of the flock of Christ. When he was overcome by old age and fatigue, he again withdrew to Mt. Sinai, where he rendered his soul to God and received the wreath of glory among the great hierarchs. He lived and died in the sixth century.
! THE PRIESTLY-MARTYR ASTIUS, BISHOP OF DYRRACHIUM
Astius suffered during the reign of Trajan. At first he was beaten with lead rods and after that stripped naked and crucified on a tree. His naked body was rubbed with honey so that wasps and hornets would sting him. In the greatest torment, St. Astius glorified God and died, receiving two wreaths, both as a martyr and as a hierarch.
! SAINT MARTHA AND SAINT MARY, THE SISTERS OF LAZARUS
Following the Ascension of the Lord, Lazarus set out to preach the Gospel. His two sisters assisted him in this. It is not known where they died.
! HYMN OF PRAISE
!
! SAINTS MARTHA AND MARY
Hospitality, a virtue which by God is commanded;
Until today, by it, many souls have been drawn to Paradise.
Wondrous Abraham showed hospitality without measure:
Both measureless and cordial, but not hypocritical.
And King David greatly respected hospitality;
That is why, the life of King Saul, he strictly protected.
And when there appeared the One more ancient than the ancient Abraham,
From the Lineage of David, when darkness hid itself,
Then Martha and Mary, showed hospitality:
Hospitable virgins, the sisters of Lazarus.
They hosted the greatest One under the sun.
By hospitality each of them the heavenly Paradise attained;
By hospitality perfect in heart and food;
By hospitality most worthy in word and in deed.
And the Lord Most-rich abundantly repaid them.
When death this hospitable home saddened,
For the sisters, Jesus raised up their dead brother,
And their eternal glory has gone forth throughout the world.
This is the reward for hospitality, from God Himself;
The Lord loves the hospitality of a sincere heart.
The Holy Church boasts of Martha and Mary,
Teaching that we also are guests at the table of the Lord.
! REFLECTION
It is a horrible thing to kill a man. There are no words to describe the horror which lays hold of the murderer. While a man is preparing to kill another man, he thinks that killing a man is the same as killing an ox. When he carries out his preconceived crime, then, all at once, he realizes that he has declared war on heaven and earth, and that he has become exiled and cut off from both heaven and earth. The victim does not give him peace either day or night. A known criminal came to Zosimus on Sinai and begged him to tonsure him a monk. Zosimus clothed him in the monastic habit and sent him to the Monastery of the Venerable Dorotheus near Gaza, to lead a life of asceticism in the Cenobium. After nine years the tonsured criminal returned to St. Zosimus, returned his monastic habit, and sought his secular clothes. To the question as to why he was doing this, the criminal replied that for nine years he had fervently prayed to God, fasted, kept vigil, and fulfilled all acts of obedience, and that he feelt many of his sins had been forgiven, but that one of his sins tormented him continually. He had once killed an innocent child, and that child was appearing to him day and night and asking him: "Why did you kill me?" Because of this he had decided to leave and to turn himself in to the authorities, that they might execute him and thus repay blood for blood. Dressing in his former clothes, he went to the town of Diospolis, where he acknowledged his crime and was beheaded. Thus, by his blood, he washed away his bloody sin.
! CONTEMPLATION
To contemplate the miraculous healing of the possessed men of Gergesene [Gadara]: //Now when He had come to the other side, to the country of the Gergesenes, there met Him two men who were possessed, coming from the tombs, so exceedingly fierce that no one could pass by that way// (St. Matthew 8:28):
# How the Lord cast out the demons from the ones possessed, and the possessed ones became calm and meek;
# How the Lord stands beside me and waits to be called to help me and to cleanse me from every evil spirit which lays hold of me and separates me from God.
! HOMILY
! About trusting in the Lord and not in your own understanding
"Trust in the Lord with all your heart; on your own understanding rely not" [Proverbs 3:5).
If all the mountains moved toward you, would you be able to push them back with your hands? You could not. If the great darkness of all the mysteries in the heavens and on the earth rushed upon the small candle of your understanding, would you, with your understanding, be able to illuminate the darkness? Even less! Do not rely on your understanding, for the great portion of the perishable matter which you call intellect is nothing more than dead ashes. O man, do not rely on your understanding, for it is a road over which a mob rushes--a hungry, thirsty, motley and curious mob of sensual impressions.
O man, trust in the Lord with all your heart. In Him is understanding without end and all-seeing. The Lord says: //I am understanding; mine is strength// (Proverbs 8:14). He looks upon the paths on which your blood flows and on all the crossroads on which your thoughts wander. With compassion and love He offers Himself to you as a Leader, and you rely on your darkened and perishable understanding. Where was your understanding before your birth? Where was your understanding when your body was taking form, when your heart began to beat and flow with blood, when your eyes began to open, and when your voice began to flow from your throat? Whose understanding was all this while your mind was still sleeping as coal in a coal mine? Even from the time your understanding awoke, can you enumerate all the illusions that it has delivered to you, all the lies in which it has entangled you, all the dangers that it did not foresee? O my brother, trust only in the Lord with all your heart! He has rescued you numerous times from your own understanding, from its illusions and lies, and from the danger into which it has pushed you. Like a blind man compared to a man who can see, so is your understanding compared to the understanding of God. O blind one, trust in the Leader. O brother, trust only in the Lord with all your heart.
O Lord, All-seeing, eternal and infallible understanding, deeper than the universe and more radiant than the sun, deliver us, even now, from the errors of our understanding.
To Thee be glory and praise forever. Amen.
! THE PRIESTLY-MARTYR DOROTHEUS, BISHOP OF TYRE
Dorotheus was Bishop of Tyre from the time of Diocletian to the time of Julian the Apostate, under whom he was tortured and suffered for the Orthodox Faith. He lived on earth for one hundred seven years and, pleasing God, took up his habitation in life eternal in the year 361 A.D. Dorotheus was a very educated man and wrote many instructive works in Greek and Latin. Especially well known is his Greek-Latin //Syntagma//.
! THE VENERABLE THEODORE THE HERMIT
Theodore was a miracle-worker. Purifying his spirit through a long life of asceticism in the wilderness of Jordan, Theodore received from God the gift of working miracles. Traveling by boat to Constantinople, it happened that the boat wandered off course and they ran out of drinking water. All the travelers on the boat were at the point of death from thirst. Theodore raised his hands to heaven, prayed to God and traced the sign of the Cross over the sea water. After that, he told the boatmen to draw water from the sea and drink. When they drank it, the water was sweet. When they all began to bow down before Theodore, he beseeched them not to thank him but to thank the Lord God, Who had worked this miracle because of His love for mankind. Theodore died peacefully in the year 583 A.D.
! THE VENERABLE ANOUB
Anoub was one of the great Egyptian monks. He suffered much for the True Faith. Prior to his death, three aged hermits visited him and he, "a discerner of the thoughts of man," revealed all the secrets of their hearts to them. Anoub died peacefully in the second half of the fifth century.
! BLESSED IGOR
Igor was the Prince of Chernigov and Kiev. Persecuted by his kinsmen, he withdrew from the world and was tonsured a monk. The inhabitants of Kiev, dissatisfied with the Olgovitch dynasty, wanted to exterminate it. They charged the monastery, captured the young and innocent Schemamonk Igor and slew him. Many were the misfortunes that befell the inhabitants of Kiev as a result of this crime. But over the grave of this blessed monk candles were seen to light by themselves on several occasions, and a fiery pillar was seen over the church where he was buried. This occurred in the year 1147 A.D.
! THE VENERABLE FATHER PETER OF KORIŠ
Peter was born in the village of Koriš, beyond the Monastery of St. Mark near Prizren. (According to another tradition he was from a village near Peć.) As a young man, he plowed with a one-eyed ox. Peter was exceptionally meek and mild tempered. He withdrew at an early age to lead a life of asceticism, as did his sister Helen. He was very strict and persistent in his ascetic labors. In difficult combat with demonic temptations, Peter proved himself victorious. He was a teacher to the many monks who gathered around him. Fleeing the glory of men, he hid himself for a period of time by the Black River, where St. Janićije of Devič later lived in asceticism. Peter died in old age in his cave at Koriš. On the night he died, a light from many candles was seen in his cave and angelic singing was heard. This wondrous saint probably lived in the thirteenth century. Over his miracle-working relics Tsar Dušan built a church, which was a dependency (metochion) of Hilandar. In more recent times the remains of the relics of St. Peter were secretly translated to the Black River where they repose today.
! BLESSED CONSTANTINE, METROPOLITAN OF KIEV
In the days of Blessed Prince Igor, when there was great quarreling and confusion among the Russian princes, there was also disorder in the Church and frequent changes on the thrones of the hierarchs. Thus, after the death of Metropolitan Michael of Kiev, Prince Izyaslav brought in the famous and learned monk Klim as metropolitan without seeking the blessing of the patriarch of Constantinople, contrary to the age-old tradition. The patriarch sent Metropolitan Constantine to investigate the matter. Constantine removed Klim and deposed all those clerics that he had ordained. Because of this the people were divided: some adhered to Klim and others adhered to Constantine. Then, according to the wishes of the Russian princes, the patriarch sent a third, Theodore, and both Klim and Constantine were removed. When Constantine died, in the year 1159 A.D. they opened his will, and in it he had requested that he not be buried but that his body be thrown in a field to be consumed by dogs, because he considered himself to have been the culprit responsible for the confusion in the Church. Not daring to disobey his testament, but nevertheless with great fear, men took the body of the metropolitan and threw it into a field, where it lay for three days. For three days there was a terrible thunder over Kiev, lightening flashed all around and struck, and the earth quaked. Eight men perished from the lightning. Three fiery pillars appeared over Constantine's lifeless body. Seeing all of this, the prince of Kiev ordered that the body of Constantine be taken and honorably buried in the church where the tomb of Igor was located. Immediately afterward a calm ensued in nature. Thus God justified His humble servant.
! HYMN OF PRAISE
!
! SAINT ANOUB
!
"Anoub, in just three dark nights,
To God you will go for reckoning.
Give us a profitable word!"
Three elders asked him, the three together.
Anoub to the elders replied:
"To persecution, I was exposed
For the honorable Cross and for the True Faith.
To the Lord I wanted to offer my head,
But from that, the Lord turned me;
The martyr's wreath, He did not want to give me.
Never, the earthly, seek from God.
With every good the Lord has eased me.
Radiant angels, to me, have appeared;
Heavenly food have they brought me.
Whatever I asked of God I received.
Many mysteries I saw and comprehended;
I saw the heavens and the faces of angels,
Apostles, saints, martyrs,
Holy and joyful, heavenly faces.
And Paradise wondrous, wondrous and sweet.
I saw Hades and the torments of sinners,
And all the dark satanic hosts.
A lie from my lips, never issued forth;
All earthly delights I renounced.
The face of Christ, for me, shines greater than the sun.
Forgive me, Elders, Anoub the sinner!"
! REFLECTION
Do not ever violate the fast on Wednesday and Friday. This fast is commanded by the Church and is well founded. If you have ever in your life violated this fast, pray to God that He forgive you, and sin no more. Pious men do not consider themselves exempt from this fast when traveling, or even in sickness. St. Pachomius met some men carrying a corpse and he saw two angels in the funeral procession. He prayed to God to reveal to him the mystery of the presence of the angels at the burial of this man. What good did this man do that the holy angels of God accompanied him in procession to the grave? According to God's providence, both angels approached Pachomius and explained this to him: "One of us is the angel of Wednesday and the other is the angel of Friday. Seeing how this man always, even until death, fasted on Wednesdays and Fridays, we are honorably accompanying his body. As he kept the fast until death, so are we glorifying him."
! CONTEMPLATION
To contemplate the miraculous healing of the paralytic: //And, behold they brought to him a man sick of the palsy, lying on a bed; and Jesus seeing their faith said unto the sick of the palsy: 'Son, be of good cheer; your sins are forgiven you.' //(St. Matthew 9:2):
# How the good Lord restored health to the paralytic saying to him: //Arise and walk!// (St. Matthew 9:6);
# How the Church brings my palsied [paralytic] soul before the Lord, that the Lord might restore it to health, if only I desire it.
! HOMILY
! About the justification of almsgiving
"Withhold not good from them to whom it is due, when it is in the power of your hand to do it" (Proverbs 3:27).
Do not ever say: "These beggars annoy me!" So many millions of men live on earth, and all are beggars before the Lord; emperors as well as laborers, the wealthy as well as servants, all are beggars before the Lord. And the Lord never says: "These beggars annoy me!" O man, give thanks to God that someone seeks something good from you, be it material or spiritual! This means that you are a man of God's trust: God has entrusted some of His goods to you, for all goods belong to God. Show yourself worthy of this trust; show yourself worthy in lesser things so that you may be entrusted with greater things.
O Lord most rich, soften our hearts and enlighten our understanding, that we may be merciful in the goods that You, the All-merciful, have entrusted to us.
To Thee be glory and praise forever. Amen.
! THE VENERABLE BESSARION
Bessarion was born and educated in Egypt. He dedicated himself to the spiritual life at an early age and "did not stain the spiritual garment in which he was clothed at baptism." He visited St. Gerasimus by the Jordan and learned from St. Isidore of Pelusium. He subdued his body through extreme fasting and vigils, but concealed his asceticism from men as much as possible. He once stood at prayer for forty days, neither eating nor sleeping. He wore one garment in both summer and winter. He possessed the great gift of miracle-working. He did not have a permanent dwelling place but lived in the mountains and forests until deep old age. He healed the sick and worked many other miracles for the benefit of the people and to the glory of God. He died peacefully in the year 466 A.D.(//)
(//) In the Greek Prologue, St. Bessarion is commemorated on February 20.
! THE VENERABLE HILARION THE NEW
Hilarion was the abbot of the Dalmatian monastery in Constantinople. He was a disciple of Gregory of Decapolis and an imitator of the life of Hilarion the Great, whose name he took. Hilarion was powerful in prayer, persevering and courageous in suffering. He suffered much for the sake of the icons at the time of the evil iconoclastic emperors, Leo the Armenian and others. Later the Emperor Leo was slain by his own soldiers in the same church and on the same spot where he had first mocked the holy icons and from which he had removed the first icon. St. Hilarion was then released from prison, but only for a short time. Again he was tortured and detained in prison, until the reign of the right-believing Empress Theodora. Hilarion was clairvoyant and had the gift of insight. He saw the angels of God as they were taking the soul of St. Theodore the Studite to heaven. Having pleased God, he fell asleep and entered the Kingdom of Heaven in the year 845 A.D., in his seventieth year.
! THE VENERABLE FEMALE MARTYRS ARCHELAIS, THECLA AND SUSANNA
As pure and virginal nuns, Archelais, Thecla and Susanna lived lives of asceticism in an unknown monastery near Rome. When the persecution of Christians began under the evil Emperor Diocletian, they fled to Campania and settled near the town of Nola. They could not conceal their holy lives, and people from the surrounding settlements began to come to them, seeking advice, instruction and assistance in various difficulties and infirmities. But they were finally captured by the pagans and brought to trial. They openly and freely confessed their faith in Christ. When Leontius, the judge, asked St. Archelais about the Faith of Christ, she replied: "By the power of Christ I trample on the power of the devil, and I instruct the people in understanding, that they might know the One True God. And by the Name of the Lord, my Jesus Christ, the Only-begotten Son of God, through me, His handmaid, health is given to all who are sick." All three virgins were flogged, had boiling pitch poured over them, were exhausted by hunger in prison, and were finally beheaded. When they were being led to the scaffold an angel appeared to them, and some of the executioners saw him, which so frightened them that they could not raise their swords against the holy virgins. However, the holy virgins encouraged the executioners to carry out their duty. And thus, as lambs, they were slain in the year 293 A.D. and entered the Kingdom of Christ, that they might rest and take delight in gazing upon the face of God in eternity.
! HYMN OF PRAISE
!
! SAINT BESSARION
!
Bessarion holy, without roof and bread,
From childhood to the grave, his virginity preserved:
Purity of body and purity of mind.
Therefore, with power and understanding, was he filled,
Divine understanding and power divine.
Joyful in spirit, without sadness or sorrow,
Without sadness or sorrow and without darkened thoughts,
A pure and clairvoyant mind as clear as crystal.
When Divine Love in his heart flared up,
He, many and glorious miracles, performed.
On water he walked as on dry land,
And a terrible scourge was he, to every dark spirit;
He stopped the sun and delayed evening,
And all he said with his mouth became a deed.
In him the power of God worked,
For he, to God in everything, was obedient.
Wonderworking saint, help even us
By your prayers before the throne of God!
! REFLECTION
Malicious joy is a sordid garment which our spirit sometimes dons with great satisfaction. The very moment that you rejoice in the sinful fall of your brother, you too have fallen, to the joy of the devil, who with one hook has snared two fish. Brotherhood according to the flesh is a great bond, but brotherhood according to the spirit is even greater. When you are grieved by the sin of a brother according to the flesh, why then does the sin of a brother according to the spirit not grieve you? When you conceal the sin of a brother according to the flesh, why do you with malevolent joy proclaim the sin of your brother according to the spirit? Who are your brothers according to the spirit? All Christians--all those who receive with you from the one and the same Chalice the one and the same life. Oh, how great were the saints in their brotherly love! Oh, how far away from them was malicious joy! The following is said about St. Bessarion: on one occasion all the monks were gathered in church for prayer. The abbot approached a monk who had committed a sin and ordered him to leave the church. The monk started to leave and Bessarion followed him, saying: "I also am the same kind of sinner!"
! CONTEMPLATION
To contemplate the miraculous resurrection of Jarius's daughter: //While He was saying these things to them, an official came forward, knelt down before Him, and said, 'My daughter has just died. But come, lay Your hand on her, and she will live.' Jesus rose and followed him, and so did His disciples. A woman suffering hemorrhages for twelve years came up behind Him and touched the tassel on His cloak. She said to herself, 'If only I can touch His cloak, I shall be cured.' Jesus turned around and saw her, and said, 'Courage, daughter! Your faith has saved you.' And from that hour the woman was cured. When Jesus arrived at the official's house and saw the flute players and the crowd who were making a commotion, He said, 'Go away! The girl is not dead but sleeping.' And they ridiculed Him. When the crowd was put out, He came and took her by the hand, and the little girl arose. And news of this spread throughout all that land// (St. Matthew 9:18-26):
# How the Lord assured the people that the maiden was not dead but sleeping;
# How He took her by the hand and the maiden arose alive;
# How the Lord can resurrect my soul, dead from sin, by one touch of His Holy Life-giving Spirit.
! HOMILY
! About the guarding of the heart
"With closest custody, guard your heart, for in it are the sources of life" (Proverbs 4:23).
In the heart is the will, in the heart is love, in the heart is understanding, in the heart is the face of the All-holy and Divine Trinity. The heart is the home of the Father, the altar of the Son, and the workshop of the Holy Spirit. God wants the heart: //My Son, give me your heart// (Proverbs: 23:26). O my brethren, above all that is guarded, guard your heart! Let the mountains be overturned; let the seas dry up; let your friends abandon you; let your wealth fail you; let your body be consumed by worms; let the world pour upon you all the ridicule that it has--but be not afraid. Only guard your heart; guard it and affix it to the Lord; give it to the Lord. From the heart comes life; but from where does life in the heart come if there does not dwell in it the breath of the Lord and Source of Life--the breath of God?
//A good man out of the good treasure of the heart brings forth good things; and an evil man out of the evil treasure brings forth evil things//(St. Matthew 12:35). These are the words of the Lord, Who fills the treasury of your heart with His riches. Who is this "good man?" He who has the good treasure of the heart. Who is this "evil man?" He who has the evil treasure of the heart. //For out of the heart [of an evil man] proceed evil thoughts, murders, adulteries, fornications, thefts, false witness, blasphemies// (St. Matthew 15:19) and from the good heart proceed //love, joy, peace, long-suffering, gentleness, goodness, faith, meekness, temperance// (Galatians 5:22-23). Do you see how great a storehouse is the heart of man? Do you see all that can fit in the heart of man? O brother, God the Holy Spirit Himself, when it pleases Him, can fit in the heart of man. He not only can, but He will. He only waits for you to prepare your heart for Him, to turn it into a temple, for God the Holy Spirit will only dwell in a temple. Just as a serpent protects its head, so you, son, guard your heart. Above everything that is guarded, son, guard your heart! For into the heart enters life and from it proceeds life, life from the Living God.
O Life-giving Lord, help us to guard our heart for You, for You, the Lord!
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR THEODOTUS OF ANCYRA
This martyr of Christ was secretly a Christian and, as such, he helped the Church and honorably buried the bodies of the holy martyrs. Thus, he buried the bodies of seven maidens who had suffered for Christ. When the pagans found out about him, they subjected him to tortures and killed him. (For more about St. Theodotus see May 18.)
! THE HOLY FEMALE MARTYRS CYRIACA, VALERIA AND MARIA
All three of these female martyrs were from Caesarea in Palestine. When a persecution of Christians began, they withdrew from the city to a hut, and there they prayed unceasingly to God, fasting and weeping that the Faith of Christ might be spread throughout the world and that the persecution of the Church might cease. As a result of slander, they were brought to trial, tortured, and in torments put to death in the year 304 A.D. Thus these glorious virgins were crowned with wreaths of martyrdom.
! THE PRIESTLY-MARTYR MARCELLUS, POPE OF ROME
During the reign of Maximian, Marcellus was sentenced to tend cattle in a designated place. In order to please Diocletian, who had taken him as co-emperor, Maximian began to construct public baths in Rome, the so-called Thermae, and forced the Christians to work on this project, as once Pharaoh compelled the Hebrews in Egypt. Many Christians perished at this time. Among those martyred was the deacon Cyriacus, who possessed great power over demons and had healed Artemia, the possessed daughter of Diocletian, as well as Jovia, the daughter of the Persian emperor, and had baptized both of them. Also martyred were Artemia; the deacons Sisinius, Smaragdus and Largius, companions of Cyriacus; the deacon Aphronianus; two newly-baptized Roman soldiers, Papius and Maurus; the elder Saturninus; Crescentianus; and the blessed virgins Priscilla and Lucina, who with their wealth had built a cemetery for the slain Christian martyrs. The holy Pope Marcellus tended cattle for a long time, and finally, from starvation, humiliation, and torture by the soldiers, he reposed and gave up his soul to God.
! THE PRIESTLY-MARTYR MARCELLINUS, POPE OF ROME
Marcellinus was the predecessor of Pope Marcellus on the Roman patriarchal throne. When Emperor Diocletian summoned him and threatened him with torture, Marcellinus offered sacrifice to the idols, for which the emperor presented him with a precious garment. But Marcellinus bitterly repented and began day and night to lament his denial of Christ, as once had Peter the Apostle. At that time an assembly of bishops was held in Campania. The pope dressed in sackcloth, poured ashes over his head and entered the assembly, confessing his sin before all and begging them (the bishops) to judge him. The fathers said that he should judge himself. Then Marcellinus said: "I deprive myself of my priestly rank, of which I am not worthy; and even more, do not allow my body to be buried after death, but let it be thrown to the dogs!" Having said this, he pronounced a curse on anyone who would dare to bury him. Marcellinus later went to the Emperor Diocletian, threw down the precious garment before him, confessed his faith in Jesus Christ and cursed the idols. The enraged emperor ordered Marcellinus to be tortured and then killed outside the city, together with three good men: Claudius, Cyrinus and Antoninus. The bodies of these three men were buried immediately, but the body of the pope lay there for thirty-six days. Then St. Peter appeared to the new pope, Marcellus, and ordered that the body of Marcellinus be buried, saying: //He who humbles himself shall be exalted// (St. Luke 18:14).
! THE VENERABLE DANIEL OF SCETIS
Daniel was the abbot of the famous Egyptian Scetis. He was a disciple of St. Arsenius and a teacher of many. Many of his words and teachings are as guiding stars for monks. Once, when the barbarians attacked the Scete, the brethren called him to flee together with them. He answered them: "If God does not take care of me, what is the purpose of living?" Daniel also said: "The more obese your body becomes, the more emaciated your soul becomes." He lived a communal life of asceticism for forty years but later withdrew to the wilderness, in the year 420 A.D. He happened to be in Alexandria when a wicked father-in-law killed his daughter-in-law, St. Thomais (see April 13), because of her chastity. Daniel and his disciple buried this martyr.
! HYMN OF PRAISE
! SAINT MARCELLINUS
!
O sinner, cast out despair,
And unto God offer repentance.
Despair, for the devil, is rejoicing.
Behold, Marcellinus, a hierarch was,
And when to torture they led him
He, before the emperor, betrayed the Lord.
Yet to despair, he did not give himself,
But the terrible sin openly confessed
And by his blood washed it away in glory.
O sinner, do not despondent become,
And like a serpent, sins do not conceal.
Sin concealed is a serpent in the bosom!
The heart of secret sinners it eats.
Peter sinned--and quickly cast away sin;
That is what true penitents do.
When an apostle and a pope sinned
And were forgiven by God,
How then, for you, can there not be forgiveness?
Only repent, but without being late.
A bitter death can make you late
And from God separate you forever.
Quickly, quickly, cast out despair,
And quickly offer repentance!
! REFLECTION
Within the saints there exists a very sharp [acute] conscience. That which average people consider a minor sin, the saints consider to be a great transgression. It is said of Abba Daniel that on three occasions robbers captured him and took him into the forest. Fortunately, on two occasions he saved himself from slavery, but the third time, when he wanted to escape, he struck one of them with a stone, killed him, and fled. This murder weighed on his conscience as heavily as lead. Perplexed as to what he should do, he went to the Alexandrian patriarch, Timothy, confessed to him and sought advice. The patriarch consoled him and released him from any epitimija [penance]. But his conscience still troubled him, and he went to the pope in Rome. The pope told him the same thing as had Patriarch Timothy. Still dissatisfied, Daniel visited in succession the other patriarchs, in Constantinople, Antioch and Jerusalem, confessing to all of them and seeking advice. But he remained unsatisfied. Then he returned to Alexandria and declared himself to the authorities as a murderer. The authorities arrested him. When the trial was held before the prince, Daniel related everything that had happened and begged to be killed in order to save his soul from eternal fire. The prince was amazed at all of this and said to him: "Go, Father, and pray to God for me, even if you kill seven more!" Dissatisfied with this, Daniel then decided to take a leprous man into his cell and serve him until his death, and when this one died, to take another. So he did, and thus he quieted his conscience.
! CONTEMPLATION
To contemplate the miraculous healing of the woman with an issue of blood: //And, behold a woman which was diseased with an issue of blood twelve years, came behind Him and touched the hem of His garment. For she said within herself, if I may but touch His garment, I shall be whole. But Jesus turned around and when He saw her, He said, daughter, be a good comfort; your faith has made you whole. And the woman was made whole from that hour// (St. Matthew 9:20-22):
# How, with great faith, the woman with an issue of blood touched the hem of the garment of the Lord Jesus and was made whole;
# How my soul is also like the woman with an issue of blood, as long as it is a slave to flesh and blood;
# How, with one touch by Christ the Lord, my soul can be healed and inspired.
! HOMILY
! About emulating the ant
"Go to the ant, O sluggard, study her ways and learn wisdom" (Proverbs 6:6).
It is the will of the Creator, Who sent us into this world, that we work as long as we are in this world. The Lord Jesus Himself commands: "Work; Keep Watch!" He praises those who multiply their given talents and condemns the slothful who bury their talents. He calls His time on earth service and says that He did not come to be served but to serve. He uses as an example His Heavenly Father and says: //My Father works even until now, and I work// (St. John 5:17). He commands His disciples: "Work while you still have light."
Oh, what a terrible shame for man when an ant, an irrational creature, is used as an example of diligence. But when man does not know how to emulate the diligence of God, it is necessary to direct him at least to emulate the ant. An ant works all summer and prepares food for itself for winter. Brethren, do we also prepare winter stores that we will open and display after death? Oh, may we not come with empty hands before Him Who gives to us with full hands as long as we are in this life!
Slothfulness is one of the deadly sins, for it deadens the soul in man. A slothful soul is the nest of vices; a slothful soul is a habitation of the devil.
O Lord Almighty, You Who, at the same time, are all peace and all work, deliver us from destructive slothfulness and move us by Your Holy Spirit toward all good works, for the sake of the salvation of our souls.
To Thee be glory and praise forever. Amen.
! SAINT EPHRAIM, PATRIARCH OF ANTIOCH
During the reign of the Byzantine Emperor Anastasius, Ephraim was governor of the eastern regions. He was known to all for his great piety and charity, and because of this he was greatly respected. When it was necessary to rebuild Antioch, which had been destroyed by earthquake and fire, the emperor assigned the governor Ephraim to direct this task. Ephraim fulfilled his duty with diligence and love. Among the ordinary stone-cutters was a bishop, who for unknown reasons had left his episcopal see and was working as a common laborer, and no one knew that he was a bishop. One day he lay down to rest from the exhausting work with the other laborers, and fell asleep. The governor Ephraim glanced at him and saw a fiery pillar rising from this man to the heavens. Amazed and frightened, Ephraim summoned this man and made him swear to tell him who he was. The man hesitated, but finally acknowledged that he was a bishop and prophesied to Ephraim that he would shortly be consecrated Patriarch of Antioch. (The throne of the patriarchal see was vacant because the aged Patriarch Euphrasius had perished in the earthquake.) Indeed, Ephraim was elected and consecrated patriarch. Because of his goodness, purity and zeal for Orthodoxy, God gave him the great gift of working miracles. One time, in order to convince a heretic that Orthodoxy is true, he placed his pallium in the fire and prayed to God. His pallium stayed in the fire for three hours and remained intact. Seeing this, the heretic was astonished and rejected his heresy. St. Ephraim died in peace in the year 546 A.D. and took up his habitation in the Kingdom of God.
! THE VENERABLE ZOSIMAS OF PHOENICIA
St. Zosimas was bom in the village of Synda, in the proximity of the town of Tyre. There he lived a life of asceticism in his monastery. Not having any cloud on his conscience, he perceived things at a distance with his spirit and knew what was happening in the world. Thus, he foretold and saw the destruction of Antioch by an earthquake and, weeping bitterly, prostrated himself on the ground and prayed to God that this city not be completely destroyed. Once it happened that a lion on the road killed and ate his donkey. The saint commanded the lion to serve him in place of the donkey and to carry his load. The lion showed himself meek as a lamb before the saint and accepted the load and bore it to the gate of Caesarea, where Zosimas released him and let him go. Saint Zosimas died peacefully in the sixth century.
! THE HOLY GREAT-MARTYR THEODORE STRATELATES
This saint is commemorated on February 8, and on that date his life is recounted. However, June 8 commemorates the translation of his relics from Heraklion to Euchaita. Before his martyrdom, Saint Theodore left the following instructions in his will to Varus, his servant: "Bury my body in Euchaita on the estate of my ancestors." St. Anastasius of Sinai wrote about a miracle of the icon of St. Theodore: In the town of Karsat, near Damascus, there was a church dedicated to St. Theodore Stratelates. When the Saracens conquered Damascus, a group of Saracens took up residence in this church with their wives and children. There was a fresco of the image of St. Theodore on the wall. One of the Saracens shot an arrow and struck the image of the saint in the face. At once blood flowed from the image. Soon after that, the entire group of those Saracens perished in the church. St. Anastasius said that he personally was in that church and saw the image of the saint on the wall and traces of congealed blood.
! HYMN OF PRAISE
!
! SAINT EPHRAIM
!
Saint Ephraim, brimming with piety,
Was a soldier against evildoers,
Against heresies sinful and foolish.
He was a soldier of the Church--
The Church that Christ purchased and eternally glorified
By His precious Blood shed on the Cross.
Ephrem guarded the flock from wolves
And the nests of spiders he destroyed.
Ephrem holy, chosen one of God,
A light in Antioch, he was.
The Church shown through his mouth
As at the time of the glorious Chrysostom.
By miraculous healing power,
God glorified him who glorified God.
Ephraim, star of the glorious past,
Ephraim, glory of the Orthodox Church.
! REFLECTION
Fear in suffering and fear of not suffering--this is one and the same fear, and it signifies the fear of a spiritual man as to whether or not God has distanced Himself from him. When St. Catherine suffered many difficult tortures, the Lord appeared to her and she asked Him: "Where were You until now, O Lord, to comfort me in so many sufferings?" The Lord answered her: "I was here in your heart." But as great a fear can come upon a spiritual man when sufferings do not come his way for a long time. A monk once entered a church in Alexandria and saw a woman kneeling before the icon of the Savior, shedding tears and crying out to the Lord: "You have abandoned me, O Lord, O Merciful One, have mercy on me!" Following the prayer the monk asked her: "Who has wronged you that you so bitterly complain to God?" The woman replied: "Up to now no one has wronged me--that is why I am weeping--because God has abandoned me and for three years has not visit me with any sufferings. During this time, neither have I been sick, nor my son, nor have any of my household livestock perished."
! CONTEMPLATION
To contemplate the miraculous healing of the two blind men: //As Jesus moved on from there, two blind men came after Him crying out, 'Son of David, have pity on us'// (St. Matthew 9:27):
# How the blind men cried out to the Lord to open their eyes;
# How the Lord touched their eyes and did unto them according to their faith, and they saw;
# How the Lord can touch my blind soul and restore my spiritual sight if I cry out to Him in faith.
! HOMILY
! About the King of kings
"By Me kings reign and princes decree justice. By Me princes rule and nobles, even all the judges of the earth. I love them that love Me" (Proverbs 8:15-17).
Let not a king think that he rules by his wisdom and power, for he will be mocked by the weak and the foolish. Let a ruler not think that he establishes justice among the people by his intelligence and will, for this would be foolishness, absurd even to children. Let not princes, rulers and judges think that they rule according to someone else's will and mercy, contrary to God's will and mercy, for all those who forget God will be fatally injured on the ice upon which they are sliding.
//I love them that love Me,// says the Lord. The Lord speaks this, first of all, to the kings, princes and judges of mankind. For if they love the Lord, they are very dear to the Lord. If they love the Lord, the people whom they rule and judge will love Him also. And if the people love the Lord, they will love their kings, princes and judges.
Inasmuch as a man is elevated by power and authority over people, so much closer to God should he be than the people over whom he is elevated.
O my brethren, the Lord was crucified on the Cross for us, and by this He showed His love for us. He Who was crucified for us truly loves us more than he who merely rejoices with us at table. And yet when we have such love for our friends who make merry with us at table, how then should we not love Him Who, out of love for us, was crucified on the Cross?
O Blessed Lord, open for us our spiritual sight, that we may see the entire immeasurable depth of Your love and that we may be inflamed with love toward You!
To Thee be glory and praise forever. Amen.
! SAINT CYRIL, ARCHBISHOP OF ALEXANDRIA
Cyril was of noble birth and a close relative of Theophilus, Patriarch of Alexandria, after whose death he was consecrated patriarch. During his lifetime he led three bitter struggles: with the Novatianist heretics, with the heretic Nestorius, and with the Jews in Alexandria. The Novatianists had their origin in Rome and were named after Novatian the presbyter, the leader of the heresy. They took pride in their virtues, walked about dressed in white garments, forbade second marriages, and held that prayers should not be said for those who had committed a mortal sin, nor should those who had once fallen away from the Church be received back into the Church, even if they bitterly repented. Cyril defeated them and drove them out of Alexandria together with their bishop. The struggle with the Jews was more difficult and bloody. Since the time that Alexander the Great had founded the city, the Jews had been strong in Alexandria. Their hatred toward Christians was vicious and insane. They killed Christians by treachery, by poisoning, and by crucifying them on crosses. After a long and difficult struggle, Cyril succeeded, during the reign of Emperor Theodosius the Younger, in driving the Jews out of Alexandria. However, his struggle against Nestorius, the Patriarch of Constantinople, was resolved at the Third Ecumenical Council [Ephesus 431 A.D]. Cyril himself presided at this Council and at the same time represented Pope Celestine of Rome at the request of the latter, who was unable to attend the Council because of old age. Nestorius was condemned, anathematized and banished by the emperor to the eastern boundary of the empire, where he died a horrible death (for worms consumed his tongue, by which he had blasphemed the Birth-giver of God (Theotokos), calling her the Birth-giver of Christ (Christotokos). After the completion of this struggle, Cyril lived in peace and zealously tended Christ's flock. He presented himself to the Lord in the year 444 A.D. It is said that he composed the prayer: "Rejoice, O Virgin Theotokos, Mary full of grace!" [The Hail Mary].
! SAINT CYRIL OF WHITE LAKE [BELOE OZERO]
Cyril was of an aristocratic family and was born and educated in Moscow. He was tonsured a monk in the Simonov Monastery, where he lived a life of asceticism that amazed the other monks. In order to conceal his virtues he pretended insanity. He personally spoke with St. Sergius of Radonezh and received many beneficial instructions from him. Against his will he was elected abbot of Simonov monastery. He prayed constantly to the All-Holy Birth-giver of God to show him the way whereby he could live a life of asceticism in silence. One night he saw a great light and heard a voice: "Cyril, depart from here and go to White Lake!" And indeed, he departed from the Simonov Monastery with one companion, went to the vicinity of White Lake, and there, in the dense pine forest, began to live a life of asceticism. In time, this hermitage was transformed into a large monastery. The Venerable Cyril received the great gift of miracle-working from God; he cured the sick and worked many other miracles. He died in the year 1429 A.D., in his ninetieth year, and took up his habitation with the Lord, Whom he had ardently loved his entire life.
! HYMN OF PRAISE
! ST. CYRIL OF ALEXANDRIA
!
Saint Cyril, unwavering,
By his faith, amazed the universe.
With the honorable Cross the hero guarded himself;
Against the enemies of the Church he took up arms,
Against the Jews, the Archenemies of the Cross.
He attacked the Novatianists,
Who took pride in themselves,
Who on mercy set a limit,
Who condemned sinners prior to the Judgment,
And who denied the power of God to work miracles.
But Cyril shone the most
When he rose up against Nestorius,
The destroyer of the Orthodox Faith,
The blasphemer against the Mother of God.
The Mother of God assisted Cyril
To overcome every diabolical power,
And to cleanse the Holy Church of chaff.
All occurred with the help of the Virgin Mother of God.
Cyril was a knight of Orthodoxy;
That is why the Church glorifies him
And to him prays without ceasing,
From diabolical uprisings, to protect us.
O Cyril, star among the stars,
By your prayers, help us.
! REFLECTION
We sin if we consider it our duty to hate those whom our relatives hate. This hatred is passed on to us like a family sickness. In adopting the love of our relatives, we also adopt their hatred. Sometimes even great spiritual giants have succumbed to that weakeness. Patriarch Theophilus disliked St. John Chrysostom and remained his bitter enemy even until death. Saint Cyril, his kinsman and successor to the throne of Alexandria, inherited that hatred against the holy Chrysostom and, for a long time, bore this hatred within himself. In vain did Saint Isidore of Pelusium advise Cyril to change his opinion about Chrysostom and to enter his name in the Diptych of the Saints, but Cyril could not change his ill will. Then the All-Holy Birth-giver of God, for whose glory and honor Cyril had fought so much against Nestorius, appeared to Cyril in a vision with a multitude of angels, and with them John Chyrsostom in great glory. The Holy and All-Pure one begged Chrysostom to forgive Cyril. Then Chrysostom approached Cyril and they embraced and kissed one another. This vision completely changed Cyril's feelings toward Chrysostom, and Cyril repented with shame because he had rashly hated Chrysostom. That is why, to his death, Cyril did everything to glorify Chrysostom as a great saint of God.
! CONTEMPLATION
To contemplate the miraculous healing of the dumb and possessed man: //As they went out, behold, they brought to Him a dumb man possessed with a devil// (St. Matthew 9:32):
# How the Lord cast the devil out of him and the dumb man spoke;
# How the devil, with all his power, tries to make my soul dumb so that it does not glorify the Lord;
# How the Lord, if I so desire, can cast the unclean spirit out of me with one word and make me a harp of the glory of God.
! HOMILY
! About those who love death
"All they that hate Me love death" (Proverbs 8:35).
Thus speaks the Lord, the Creator of heaven and earth, through His prophet. He who hates the wisdom of God, hates God, and he who hates God--what else is there for him to love except death? Is not everything outside of the Lord death? The sun and stars, the seas and mountains, animals and plants--what is all of this except dead dust formed and enlivened by the power of God, the word of God, the wisdom of God? He who does not love God not only does not love God, but also does not love anything that is from God: neither the beauty of the stars, nor the order of the seas and mountains, nor the living power that is in animals and plant life. He who does not love God removes and distances God from nature. What else then is left? Only dead, formless, dark dust--only death. Even that dust is created by God, and the blasphemer of God must return that dust to God, and that which is left over he can love. What is left over? Only that which does not touch God, i.e., death, sin and the devil. He who does not love God, in essence, loves death, sin and the devil. Every blasphemer of God is a toy of the devil, a fruit of sin, and a pawn of death.
If we despise You, O Loving Lord, we do not have anyone or anything to love. For that which we love on earth we love because of You, and the ability to love is from You. Foolish is he who loves the rays and despises the sun, and who loves a drop of water and despises the spring.
Inspire us with life-giving love for You, O our All-loving Lord.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MARTYR EUDOCIA
Eudocia lived in the Phoenician city of Heliopolis during the reign of Trajan. Initially, Eudocia was a great debauchee, but afterward she was a penitent, an ascetic, and finally a martyr. Through her harlotry she amassed a huge fortune. The change in her life occurred inadvertently through God's providence and a certain elder, the monk Germanus. Having come into the city on an obedience, Germanus was residing at the home of a Christian whose house was adjacent to that of Eudocia. In the evening, according to monastic practice, he began to recite the Psalter and a book on the Dread Judgment. Eudocia heard him and eavesdropped attentively to the end. Fear and terror overcame her, and she remained awake until dawn. At daybreak she sent her servant to beseech the monk to come to her. Germanus came, and a lengthy conversation took place between them about what the elderly monk had been reading the night before, and about faith and salvation in general. As a result of their conversation, Eudocia petitioned the local bishop to baptize her. Following her baptism, Eudocia bequeathed her entire estate to the Church, to be distributed among the poor. After dismissing her servants and slaves, she withdrew to a convent. Thus, Eudocia resolved to dedicate herself to the monastic life: obedience, patience, vigils, prayer and fasting. After thirteen months Eudocia was elected abbess. She lived in the convent for fifty-six years and was found worthy before God. He endowed her with such grace that she even raised the dead. When the persecution of Christians began under Prince Vincent, St. Eudocia was beheaded. Eudocia is a glorious example of how a vessel of impurity can be purified, sanctified and filled with the grace of the Holy Spirit, the precious fragrance of heaven.
! THE VENERABLE AGAPIUS
He was a novice under the spiritual father of Vatopedi Monastery on Mount Athos. Captured by pirates, Agapius was sold as a slave in Magnesia. After twelve years he was miraculously freed and returned to Vatopedi through the help of the All-holy Mother of God. He baptized his former master and became his spiritual father. Agapius spent the remainder of his life in asceticism in Vatopedi and reposed peacefully in the Lord.
! THE HOLY FEMALE MARTYR ANTONINA
Antonina was born in Nicaea. Because of her faith in Christ, she was arrested and brutally tortured. Finally she was sewn in a sack and drowned in a lake, in the year 302 A.D. God saved her soul and has glorified her forever among the angels in heaven and the faithful on earth.
! HYMN OF PRAISE
! SAINT EUDOCIA
Once a woman filled with sin,
And finally a meek penitent,
Eudocia prayed to God,
All the while kneeling, shedding tears.
This enkindled the rage of Satan,
And to the heavens he cried out:
"O Michael, heavenly commander,
You speak justice, but you do me injustice.
You intend to empty my sheepfold completely,
And to seize from me the last sheep.
Why do you take this sinful woman?
Her sins are greater than mine!
For some minor disobedience
I fell to hades and into eternal torments.
Her sins are as the stagnant sea,
Encompassing everything that comes near her."
Thus, malice rages against good;
For every penitent it wishes evil.
But Michael, the guardian of the penitent,
With angels came to Eudocia
And took her under his protection.
By his breath he dispelled the demons.
At that moment a song echoed from heaven:
The mercy of God so willed
That every penitent be embraced,
That every penitent be forgiven.
Repentance, and for all mankind salvation:
That is both God's mercy and will.
God's will overcomes the evil will of Satan.
! REFLECTION
Faithfulness and obedience to the will of God must adorn the life of every Christian. God glorifies the faithful and the obedient, as is seen in the life of St. Agapius. When Agapius was a young man, he was captured by pirates, taken to Asia, and sold to a certain Arab. For twelve years Agapius remained quietly and obediently a slave of this Arab. And for twelve years he prayed to the All-holy Mother of God to help him gain his freedom from bondage. One night the Virgin Mother of God appeared to him and told him to arise and go without fear to his elder. Agapius rose and went to his elder on the Holy Mountain. When the elder saw Agapius, he was saddened, thinking that Agapius had fled from his master. He said to him, "My child Agapius, you have deceived your master, but you can never deceive God. On the day of the Dread Judgment you will have to render an answer for that money with which your master purchased you to serve him. Therefore, you must return and faithfully serve your master." Agapius, faithful and obedient to the will of God, returned immediately to Asia, reported to his master, and informed him about everything that had happened. Learning of all this, the Arab was amazed at the virtue of Christians, and he desired to see Agapius's elder. Thus he took his two sons and went to the Holy Mountain. There he and his two sons were baptized, and all three of them were tonsured as monks. They remained there until their deaths, living in asceticism at first under the guidance of Agapius's spiritual father, and later under Agapius himself. Thus, the previously cruel masters became the obedient disciples of their former slave, the faithful Agapius, who was himself submissive to the will of the God.
! CONTEMPLATION
Contemplate the Lord Jesus at the Mystical Supper:
# How He washed the feet of His disciples, and how by this act He especially taught them humility and love for one another;
# How Peter, one of the most faithful, was ashamed and forbade the Lord to wash his feet;
# How Judas, the unbeliever and traitor, was not ashamed and did not forbid the Lord to wash his feet;
# How, today also, the faithful receive countless blessings from God with embarrassment and shame, but the faithless receive the same without embarrassment or shame, and even murmur against God.
! HOMILY
! on knowing and doing
"If ye know these things, blessed are ye if ye do them" (John 13:17).
The most important aspect of this saying of our Lord's, dear brethren, is that the Lord does not bless the knowing, but the doing. He does not say to the apostles: "Blessed are ye when ye know this." Some pagan teachers who viewed salvation only in terms of knowledge spoke in this manner. However, our Lord says: //Blessed are ye if ye do them.// The knowledge of salvation was given to us by the Lord Jesus Himself, and no one is able to attain that knowledge through his own efforts. Some of the ancient Greek philosophers said that mankind could neither come to the knowledge of the truth nor be saved until God Himself came to earth. The Lord came among men and revealed this knowledge to them. Whosoever receives this knowledge also accepts the obligation to fulfill it. Oh, how much easier will it be at the Judgment for those who never received this knowledge at all and consequently did not fulfill it, than for those who received this knowledge and neglected to fulfill it! Oh, how much easier it will be at the Judgment for unlearned pagans than for the learned Christians!
The Lord Himself showed that he was not only a Knower but also as a Doer. His perfect knowledge corresponded to His perfect doing. Before the eyes of His disciples, He personally fulfilled all of His own commandments. He gave them this commandment after He had completed an act of humility and love. When He had washed the feet of His disciples. He then commanded that they should do the same to one another.
The Lord did not dwell among men to soil them, but to wash them. He never soiled anyone, but cleansed all who wished to be cleansed. What a shame it is for many of us, who labor much to wash ourselves and labor twice as much to soil others? O my brethren, we muddy our own blood brothers. Even Christ weeps when He sees how we, with the mud of slander, soil those whom He has washed with His own blood.
O Lord, forgive us! We sin every day against our own brothers. O Lord, make our brothers, whom we have soiled, brighter than us in Thy Kingdom. Thou art just and Thou seest all.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR CODRATUS OF CORINTH AND OTHERS WITH HIM
During the time of the persecution of Christians, many of the faithful fled to the mountains and into the caves. So did the mother of Codratus. She was pregnant at the time, gave birth to Codratus in the forest, and died shortly thereafter. Growing up alone in the wildernes, Codratus was nurtured, fed and guided by divine providence and guardian angel. He Who gave manna from heaven to the Israelites in the wilderness dropped from the clouds a sweet dew onto the mouth of the child Codratus. When he was twelve years old, he entered town. There a benevolent man took a liking to him and provided him with an education. He studied medicine and healed the sick with natural cures and, more often, with the spiritual power of prayer, which had been present with him from childhood. When a new persecution arose under Decius, Codratus was brought to trial and cast into prison. Five companions joined him and confessed the name of Christ. They were Cyprian, Dionysius, Anectus, Paul and Crescens. They were all dragged through the streets by the pagans, especially by their children. They were beaten with rods and stoned until they were eventually dragged to the scaffold. There, the martyrs prayed to God and were beheaded. A spring of water gushed out of the ground at that spot, which is called "Codratus" even today and is a reminder of the heroic deaths of these six holy innocents of Christ. They honorably suffered for the truth in the year 250 A.D., in Corinth, during the reign of Emperor Decius and his governor, Jason.
! THE HOLY MARTYR CODRATUS OF NICOMEDIA
He was a wealthy nobleman and at the same time a staunch baptized Christian. During a time of persecution when Valerian imprisoned many Christians, Codratus bribed the jailers and entered the prison to bring various foodstuffs for those in captivity and to strengthen them in their faith. When they were brought before the judge, who questioned them about their names, their homeland and their rank, they remained silent. Then Codratus suddenly appeared behind them and cried out with a loud voice: "By name we are Christians; by title and by birth we are servants of Jesus Christ the Lord; and our city and homeland is heaven." After this declaration he was also arrested, and after prolonged and cruel torture was beheaded with the others.
! THE VENERABLE MOTHER ANASTASIA
Anastasia was a patrician and lady-in-waiting of the imperial palace of Emperor Justinian. After she was widowed, she perceived that Empress Theodora could not tolerate her, so she immediately slipped out of Constantinople and went to the wilderness of Egypt. The renowned spiritual father Abba Daniel tonsured her a nun and presented her as the monk Anastasius the eunuch. This was done according to her wishes so that, as a woman under the guise of a man, she could easily be protected and hidden from imperial pursuit. Anastasia then closed herself off in a narrow cell, where she spent twenty-eight years, and died there in the year 563 A.D. Before her death, the Elder Daniel saw her face shine like the sun.
! HYMN OF PRAISE
! SAINT ANASTASIA
At one time a glorious patrician, Venerable Anastasia
Abandoned money, flattery, and all other things.
To Christ she directed her entire life:
Christ, her bread; Christ, her water;
Christ, her joy and freedom;
Christ, the restorer of her soul;
Christ, the bridge over death.
Anastasia became shriveled;
The spirit through her withered face shone.
The spirit raised her higher to God;
With the spirit of God she breathed,
Until, illuminated,
She was enlightened by grace,
Strengthened by the power of God,
And inscribed among the Living.
She forgave all, she loved all,
And for the entire world she prayed.
Like an angel she was indeed
Wholly fixed on Christ.
By the power of God she was more powerful,
And by spiritual riches she was more wealthy
Than the Empress Theodora
Amidst the opulence of the imperial court.
! REFLECTION
When the forty-two Greek commanders from Ammoria were in the Hagarene prison (see March 6), certain Moslem sages came to counsel them to embrace the faith of Mohammed and thereby receive their freedom. These sages stressed to the Christian commanders the two advantages of Islam over Christianity: first, Mohammed is a more recent prophet than Christ, and second, the Moslems were victorious on all sides over Christianity, by which God clearly points out the truth of their religion. To the first point, the commanders replied: "If two men are debating over a field, and one has many witnesses that the field is his, and the other does not have any witnesses except his own personal testimony, what do you think? Whose field is it?" To this the Hagarenes replied: "Undoubtedly, the field is his who had many witnesses." To this the commanders replied: "By yourselves you have judged in favor of Christ and against Mohammed, for Christ had with Him the witness of all the prophets and apostles, but Mohammed alone witnesses to himself." To the second point, the commanders replied: "If you would gauge the truth of a faith by victories in wars, then this would mean that all the idolatrous nations who from time to time have conquered the world, such as the Persians, Greeks, Romans and others, possessed the true faith. This, even you Moslems would never acknowledge. And because you have been victorious over the Christians now, this does not mean that your faith is better, but that our sins are great, because of which God punishes us through you."
! CONTEMPLATION
Contemplate the Lord Jesus at judgment before Caiaphas:
# How the Jewish elders searched everywhere for false witnesses;
# How their witnesses did not agree together;
# How our Lord listened to all the slanders and remained silent without anger.
! HOMILY
! on revealed secrets
"There is nothing covered, that shall not be revealed; and hid, that shall not be known" (Matthew 10:26).
Brethren, there is one eye that never sleeps. This is the eye of God. There are more eyes in heaven, brethren, than there are stars in the firmament of the heavens. They are the eyes of the angels. No veil or wall or darkness can conceal any secret on earth from these eyes. Everything is revealed and open before the All-seeing God and His holy angels. The man who believes that all the works of man can be hidden becomes a criminal. Thus thought the Jewish elders, who arranged and planned in secrecy their evil plot against Christ the Lord. Secretly they persecuted Him, secretly they judged Him in the darkness of night, and secretly they bribed and paid false witnesses. And, like Judas, they secretly condemned Him. Where are their secrets today? All have been revealed and opened before the entire world. It is easier for man to hide from the air than from the sight of God. All the secrets of mankind, the good and the evil, are revealed before God. A countless number of those secrets God reveals to the entire world according to His providence. Those who can understand this truth, that God sees all and knows all, carefully guard themselves in the depth of their hearts from evil thoughts and especially from evil deeds. Whenever your heart entices you to do evil, O man, call to mind these words which are not of man but of God: //There is n! othing covered, that shall not be revealed; and hid, that shall not be known.// And you, whatever good you do in secret, do not become faint-hearted. All of your good is written in heaven and will be revealed in its time.
O All-seeing Lord, help us and save us.
To Thee be glory and praise forever. Amen.////
! SAINT SOPHRONIUS, PATRIARCH OF JERUSALEM
Sophronius was born in Damascus of distinguished parents. Having acquired worldly wisdom, he was nevertheless unsatisfied and went to seek and acquire spiritual wisdom. In the Monastery of St. Theodosius, he found himself in the company of a monk, John Moschus, whom he chose as his teacher. Together with him, Sophronius traveled about and visited the monasteries and ascetics in Egypt. His watchword was: "Each day learn more spiritual wisdom." All that they had learned they wrote down and later published in two books under the title, //The Spiritual Meadow.//Later they traveled to Rome, where Moschus died, leaving a testament with Sophronius to have his body taken either to Sinai or to the Monastery of St. Theodosius. Sophronius fulfilled the desire and wish of his teacher and translated his body to the Monastery of St. Theodosius. Thereafter he remained in Jerusalem, which had just been liberated from the Persians. He was present at the Translation of the Honorable Cross from Persia, which Emperor Heraclius carried on his shoulders into the Holy City. The aged Patriarch Zacharias, who had also returned from bondage, did not live long before he took up his habitation in the other world. Patriarch Zacharias was replaced by Modestus, who died in 634 A.D. Modestus was replaced by Blessed Sophronius. Sophronius governed the Church for ten years with exceptional wisdom and zeal. He rose up in defense of Orthodoxy against the heresy of Monotheletism, which he condemned at his Council in Jerusalem before it was condemned at the Sixth Ecumenical Council [Constantinople, 680-681 A.D.]. He wrote //The Life of St. Mary of Egypt,// complied //The Order of the Greater Blessing of Water// and introduced several new hymns and songs in the various liturgical services. When the Arab Caliph Omar captured Jerusalem, Sophronius begged him to spare the lives of the Christians, which Omar insincerely promised. When Omar immediately began to plunder and maltreat the Christians in Jerusalem, Sophronius, with lamentation, prayed to God to take him from among the living on earth, so that he would not witness the desecration of the holy places. God heard his prayer and took Sophronius to Himself, into His heavenly mansion, in the year 644 A.D.
! THE HOLY MARTYR PIONIUS AND OTHERS WITH HIM
Pionius was a priest from Syria. He suffered in Smyrna during the time of persecution under Decius. He was condemned to be crucified, for which he was exceedingly glad. As soon as the soldiers formed a cross and laid it upon the ground, Pionius freely laid himself upon it, stretched out his arms and ordered the soldiers to nail him in the hands with spikes. The cross was inserted in the ground upside down, and a fire was ignited under the head of the martyr. Many people gathered around. Pionius closed his eyes and prayed to God within himself. The flames of the fire did not even set aflame the hairs of his head. When at last the fire was extinguished and when everyone thought that Pionius was dead, he opened his eyes and cried out rejoicing, "O God, receive my soul," and expired. This saint wrote //The Life of St. Polycarp of Smyrna,// with whom he rejoices in the Kingdom of Christ. He suffered and was glorified in the year 250 A.D.
! THE VENERABLE GEORGE THE SINAITE
George was the abbot of Mount Sinai, a great ascetic and a just man. On the vigil of Pascha [the Feast of the Resurrection of Our Lord and Savior Jesus Christ], an angel of the Lord conveyed him to Jerusalem for the divine services and returned him to Sinai the same day. He reposed peacefully in the sixth century.
! HYMN OF PRAISE
! SAINT PIONIUS
Pionius speaks while being tortured:
"O citizens of famous Smyrna,
Fellow townsmen of the renowned Omar,
I know that which all of you know,
But not one of you knows that which I know:
I know the sweet pleasure of dying,
And sweeter yet, of hoping in Christ.
I know that death will not destroy me
But only separate the body from the soul.
I know that the angels are waiting for me
In the mansions of the Heavenly King,
Together with prophets and saints,
Many armies of those chosen by God,
And the wonderful martyrs for Christ.
I know that I am returning to my homeland,
Whence I came here.
I know the goal of my suffering
(But you know not why you are torturing me!)
Seethe, O malice, and against me rage!
With outstretched arms, the Savior awaits me.
Strike me, all of you, with greater tortures.
The more difficult the suffering, the sooner the dawn,
The quicker the death, the more joyful the soul."
! REFLECTION
"Good works are accomplished not by our efforts alone, but by the power and will of God. Nevertheless, God demands effort on our part in conforming to His will." These are the words of Saints Barsanuphius and John--few words, but much is said in them. We are obliged to labor, cultivate and prepare every good thing, and if some good will take root, grow, and bring forth fruit, that is up to the power and will of God. We plow the furrows, and God sows--if He wills it. We cleanse the vessels of the Spirit, and God pours the Spirit into these vessels--if He wills it. He can do anything if He wills it. And He will do everything that answers to the highest wisdom and wholeness, that is, to His plan of man's salvation. In interpreting the words of our Lord, //Be ye therefore wise as serpents, and harmless as doves// (Matthew 10:16), St. John Chrysostom writes that our Lord gave this commandment to His disciples that "they themselves should cooperate in some way, so that it will not appear that all effort is of grace alone and so that they will not think that they received the wreaths of glory for nothing." And so, both of them are indispensable for our salvation: our effort and the power of God's grace.
! CONTEMPLATION
Contemplate the Lord at judgment before Caiaphas:
# How the Jewish high priest detains our Lord in his home, surrounded by men almost as wretched as he himself;
# How Peter sits outside in the courtyard by the fire; and how, before the servants, he denies our Lord Jesus three times;
# How even today it happens that some Christians, out of fear of the world, deny the Lord in this manner: they also purport not to be Christians, not to be familiar with the commandments of the Lord, and not to be concerned about the Lord.
! HOMILY
! on the Second Coming of Christ
"When the Son of Man shall come in His glory, and all the holy angels with Him, then shall He sit upon the throne of His glory" (Matthew 25:31).
This is how our Lord spoke just before His most horrible humiliations, before being bound, before being spat upon, before being slapped, and before being ridiculed prior to His Crucifixion. In His darkest hour, He speaks about His greatest and most glorious hour. Before His most terrible and miserable departure from this world, He speaks about His Second Coming in His glory. At His first appearance, He came from the cave in Bethlehem, humble and unseen. The second time He will come on the clouds of His angels. The first time He appeared like a nobody from the earth, and the second time He will appear from the heavens. The first time He stood and knelt on the ground, and the second time He will sit on His throne of glory.
When He comes again on His throne of glory, He will not be unseen by anyone. No one will ask, as did the Magi before his first coming: "Where is the King?" (Matthew 2:2). Everyone will see the King and recognize Him as the King. But this vision and recognition will be unto joy for some, and unto fear and terror for others. Just think of the joy of those who have fulfilled His commandments, those who have prayed in His name, those who have performed good works and especially those who have suffered for His name! Just think of the fear and terror of all those who have spat on Him, struck Him, and crucified Him in Jerusalem.
O Merciful Lord, forgive all of us who call upon Thy name, and who, because of our weaknesses, sin against Thee; forgive us before that great and marvelous hour when Thou shalt appear in Thy glory with all Thy holy angels.
To Thee be glory and praise forever. Amen.
! THE VENERABLE THEOPHANES THE CONFESSOR
Theophanes is called the Sigrian because of Sigriane was his birthplace. He was a kinsman of the Emperor Leo the Isaurian and his son Copronymos. He possessed great wealth and splendor. But all of this lost its worth for Theophanes when the Lord Christ began to reign in his soul. He resisted his own marriage, and when he was compelled to marry, succeeded in counseling his bride to live with him in chastity, as brother and sister. As soon as his parents died, his wife entered a convent and he, a monastery. His monastery was located in the Sigrian Mountains in the Province of Cyzicus. The once-glorious and wealthy Theophanes lived in this monastery as the least of the poor. All were amazed at the change in him. Having become renowned because of his strong faith, abstinence and wisdom, he was summoned to the Seventh Ecumenical Council [Nicaea, 787 A.D.], where the veneration of icons was confirmed. Because of his purity and chastity, God bestowed upon him the gift of performing miracles, by which he cured all diseases, especially maniacal disorders and insanity. He prayed to God for all the sick and the unfortunate, and through his prayers he helped them. Only when he himself became ill and his illness was prolonged did he refuse to pray to God for the restoration of his own health but endured his illness with gratitude. When the persecution by the iconoclasts resumed again under the wicked Leo the Armenian, Theophanes was brought to Constantinople and cast into prison, where he languished for two years in hardships, pain and humiliation. Then the emperor exiled him to the island of Samothrace. This banishment he had earlier foreseen in his spirit and had foretold it to his jailers. After he arrived at Samothrace, he lived for twenty-three days and then departed to His Lord and Creator to receive his merited wreath of glory.
! THE VENERABLE SIMEON THE NEW THEOLOGIAN
This God-bearing and great Father of the Church was born in Galatia, Paphlagonia. Simeon was educated in Constantinople and was assigned as a courtier in attendance to the Emperors Basil and Constantine Porphyrogenitus. Simeon left all for the sake of Christ and retreated to a monastery. He lived a life of asceticism under the direction of the Elder Simeon, after which he became the abbot of the Monastery of St. Mamas and in the end became a recluse. He is the greatest theologian since St. Gregory the Theologian. Simeon felt God's grace in his heart. His words are true spiritual and theological revelations. He died in 1032 A.D. His relics are miracle-working.
! SAINT GREGORY THE DIALOGIST, POPE OF ROME
He was the son of Senator Gordianus and afterward a senator himself and mayor of the city of Rome. As soon as his father died, Gregory surrendered himself to the spiritual life. From his wealth he built six monasteries in Sicily, and built a seventh in the city of Rome in honor of St. Andrew the Apostle, where he was tonsured a monk. Sylvia, his mother, entered a convent and was tonsured a nun. After the death of Pope Pelagius II, Gregory was chosen pope. He fled from this honor and authority, hiding himself in the mountains and ravines. Nevertheless, the Lord revealed him to those who were seeking him in the following manner: a fiery column arose from earth to heaven at the place where Gregory hid himself. He was exceptionally charitable. All of his income was used for building shelters and hospices for the needy. Often he invited less fortunate men and served them at the table. He spent his time writing beneficial books. He is also called the Dialogist because he wrote a book called //The Dialogues//, in which he extolled the miracles of the Italian saints. He also composed the Liturgy of the Presanctified Gifts, which is celebrated on Wednesdays and Fridays of Great Lent. His Archdeacon Peter saw a dove flying above Gregory's head as he was seated writing. He presented himself to the Lord in the year 604 A.D.
! HYMN OF PRAISE
! SAINT THEOPHANES
Leo the Armenian offers Theophanes
As many riches as he wants,
If only he will sign his name
On the evil roster of the iconoclasts.
From the dungeon Theophanes writes to him:
"O Emperor, I cannot please you,
I cannot be true both to you and to God.
While I was young and agreeable to the world,
I had immense wealth.
I left all and turned to God;
I distributed all and withdrew to the wilderness,
Yet in the wilderness I had no hunger:
God feeds and sweetens me with Himself.
In my old age, what do you offer me?
Dust that I despised in my early youth!
There is nothing, O Emperor, that you can give me
That the Lord does not give me a hundredfold,
Except tortures, for which I waited so long.
Tortures will separate me from the world
And unite me with the All-precious Lord.
O Emperor, why do you wage war against icons?
Was not Christ Himself as an icon,
As an icon of the Eternal Hypostases,
As an icon of the Trinity Almighty,
As an icon of the unseen God,
Unseen and unapproachable.
He will judge both you and me.
Rule, O Emperor, but give way to your replacement.
The world passes, and only God remains.
Whoever is with God does not fear the world."
! REFLECTION
No one, not even the Lord Himself, takes pleasure in instructing the proud. No one wants to give instruction to him who cries out that he knows everything. //Mysteries shall be revealed to the meek,//says the wise Sirach (The Book of Ecclesiasticus - Sirach 3:19). David also speaks of God, saying: //He guides the meek to justice, He teaches the meek His way// (Psalm 25:9). The proud person is he who wants to teach everyone yet does not want to be taught anything by anyone. The humble man is he who does not wish to teach anyone but continually desires to be taught by someone, no matter whom. An empty ear of corn raises its head above the field, and the full ear of corn hangs down with bowed head.
O proud man, if only your guardian angel would somehow remove the veil from your eyes and show you the endless open sea of all that you do not know. You would kneel before every man before whom you have exhibited pride and kneel before every man whom you have belittled. You would cry out lamenting: "Forgive me, forgive me! I do not know anything!" Often the humble and pious have the time of their death revealed to them, but the death of the proud comes unexpectedly and without warning. St. Gregory the Dialogist speaks of a bishop, Carpus, who daily celebrated the Divine Liturgy, and how suddenly One appeared from the other world and said: "Continue in the way you are serving Me and may your legs never grow tired or your hands grow weak. On the Feast of the Dormition of the Theotokos you will come to Me and I will give you your reward in My Heavenly Kingdom, together with all of those for whom you have prayed at the divine services." After a year, on the Feast of the Dormition, Bishop Carpus celebrated the Divine Liturgy of God, sought forgiveness from his priests, and gave up his soul to God. His face shone like the sun.
! CONTEMPLATION
Contemplate the Lord Jesus before Pilate:
# How the Jews accused Him before Pilate and how He did not say anything;
# How He did not reply, even to Pilate's questions;
# How our Lord speaks when it is necessary to defend men from the devil, from sin, from disease and death, but is silent when He Who is the Defender of Men is asked to protect Himself from man.
! HOMILY
! on the Second Coming of Christ
"And before Him shall be gathered all nations" (Matthew 25:32).
All the nations will be assembled before the Lord Jesus when He appears in His glory, surrounded by the holy angels, sitting on a throne as the Judge of all the living and the dead. All the nations will be assembled--all, without exception. Not only the Jews who tormented Him, not only the Christians who glorified Him, but also the heathen who neither knew Him nor acknowledged Him. For if He were not to appear to all nations, He would have to send someone or give something to all nations for them to know God's will and receive the message of salvation. That is why all the nations must appear before Him for judgment.
Oh, what an awesome and majestic spectacle, when all the nations and all the tribes on earth are assembled before the Lord, Who is brighter than many suns. What joy for the holy martyrs and confessors when they see how, in this countless mass of nations, there is not one tongue left to deny the divinity of the Lord Jesus! But it will be of no value to anyone in that hour and place to recognize and to confess the divinity of our great Lord, if they denied Him on earth. Accounts will settled there and then, with no gain and no loss. With whatever one appears before the Lord, with that he will be either condemned or justified.
Now is the time to acknowledge the divinity of the Lord Jesus--now, when many deny Him and when His divinity is doubted by many. They who love the Lord and who trust in all of His words will easily acknowledge this. For when He says this, what do those who love Him have to worry, to doubt, or to hesitate about?
O Lord, Jesus Christ our God, have mercy on us!
To Thee be glory and praise forever. Amen.
! SAINT NICEPHORUS, PATRIARCH OF CONSTANTINOPLE
Nicephorus governed the Holy Church wisely and zealously as one of the greatest archpastors of Constantinople. When Leo the Armenian rose up against icons, Nicephorus alone defied the emperor. He first counseled the emperor and then later denounced him. That is why the depraved emperor banished him to the island of Prokonis. On this island there was a monastery which Nicephorous had built in honor of St. Theodore. This confessor of the Orthodox Faith remained in this monastery for thirteen years and afterward presented himself to the Lord in the year 827 A.D. Since all the iconoclastic emperors had perished, and Michael, with his mother Theodora, sat on the imperial throne, Patriarch Methodius was restored to the patriarchal throne. The relics of St. Nicephorous were translated from Prokonis to Constantinople in 846 A.D. There they rested first in the Church of Hagia Sophia [Divine Wisdom], from which he had been banished during his life, and later in the Church of the Twelve Apostles. The principal feast of this great hierarch is on June 2, and on March 13 the discovery and translation of his incorrupt relics is commemorated. On March 13, St. Nicephorous was banished from Constantinople and then, again, on March 13, thirty-two years later, his relics were returned to the capital.
! SAINT CHRISTINA THE PERSIAN
For her unwavering confession of faith in Christ, she was cruelly tortured in Persia in the fourth century. So much did they torture her, flogging her with a whip, that she became exhausted and died. Her soul then departed from her tortured body and entered into the joy of Christ the King and Lord.
! THE HIEROMARTYR [PRIESTLY-MARTYR] PUBLIUS
This hieromartyr was successor to the glorious Dionysius the Areopagite on the episcopal throne in Athens. As a bishop, he was tortured by the pagans and beheaded in the second century. After a brief period of torture, he inherited life eternal.
! HYMN OF PRAISE
! THE CITY OF CONSTANTINOPLE
Constantinople, wondrous city near the blue Bosphorus,
Whose glory can be measured against your glory?
You were an awesome battleground of spiritual warriors,
Blasphemous heretics and saints of God.
As through a sieve you sifted them throughout the long centuries
Making known both apostates and servants of God.
By many sins you are soiled, and by the filth of sinners,
But you are consecrated with the abundance of the blood of martyrs.
Who could enumerate the spiritual heroes
And all the heavenly visions and all your mysteries?
The angels of God often flew down to you,
And men, like angels, were raised up to heaven.
The Mother of God appeared within you many times
To deliver those in danger, to heal the sick.
The flock of wondrous saints hovers over you,
And the prayers of your children are borne to the Most High.
Oh, how many saints were your children!
As many as there are lilies upon lilies, there are saints upon saints!
You wrote history and the calendar in red;
By your efforts even the great Symbol of Faith [The Creed] was written.
Thus, about you this could be said:
Among the many cities, you are a red letter.
With Holy Faith you enlightened the universe.
You healed the world of paganism and heresies.
Tortured much, but not slain, you have not yet passed away.
That is why we all celebrate you, Confessor that you are!
Throughout the earth and in the heavens your glory echoes;
Everyone who is baptized owes a great debt of gratitude to you.
! REFLECTION
Great are those Christians who have a great love for Christ. Oh, in truth, how great were those Christians, those God-bearing fathers and martyrs! For so many in our time, this is impossible even to imagine. This is what one of them, St. Simeon the New Theologian, confessed before all the monks in his monastery. Speaking from his own personal experience about how the words of the Lord, //For My yoke is easy, and My burden is light// (Matthew 11:30), were realized in him, Simeon said: "Believe me, when I fled to God my Savior, I did not encounter anything sorrowful, difficult or unbearable. The only great and unbearable sorrow I had was that I could not find sufficient means to die for the love for Christ." Are not such souls like burning flames enclosed in earthen vessels? Burning flames are always upright, directed toward heaven. Only remove the covering and the flame will shoot upward.
! CONTEMPLATION
Contemplate the Lord Jesus at the judgment before Herod:
# How Herod at first was very glad to see Jesus--not out of any spiritual need, but out of curiosity;
# How Herod had hoped to see a miracle from Jesus, but was mistaken in that, for the Lord remained silent to all of his questions;
# How Herod ridiculed the Lord and clothed Him in a beautiful garment.
! HOMILY
! on the reconciliation of the wicked for the sake of evil
"And the same day Pilate and Herod were made friends together: for before they were at enmity between themselves" (Luke 23:12).
In His shame and humiliation, the Just One does good to His enemies. He reconciles them. It is true, in this case, that their reconciliation did not create mutual cooperation for some good deed but mutual persecution of the Just One. At least the flame of hatred between them was extinguished and died out. That was due to the Just One. Pilate and Herod were enemies. On that day when the Savior was brought for judgment before both of them, they were reconciled. The Prince of Peace brought peace between the quarreling parties: peace which helped to hew out a cross for Him. But He also came to be a willing sacrifice for the sins of many.
Even today common enemies make peace among themselves when they find it necessary to attack and condemn the Lord. There are many who kill one another until you mention the name of the Lord to them. As soon as they hear that name, they gradually make peace among themselves for the sake of attacking that holy name. It is easier for the unjust to tolerate the unjust than it is for them to tolerate the just. It is easier for the unjust to come to an understanding and reconcile with the unjust than with the just.
In some countries, even the most quarrelsome parties seek reconciliation among themselves when it is deemed necessary to decide what place should be given to the Lord Jesus Christ in the state--the first place, which is befitting to Him, or the last place? Over these questions sworn enemies reconcile themselves, so that our Lord will be given the last place. So, also it was with the quarreling parties of Pharisees and Saducees, who were reconciled and entered into a partnership against Christ.
Why is it that the Most-pure and the Most-needed had to be awarded the last place? Because, according to their thinking, the first place would then be reserved for them. The same incentive was there between sworn enemies, the Pharisees and Saducees, when it was deemed necessary to seek Christ's death. The same incentive was the occasion that caused the reconciliation between Pilate and Herod when it was deemed necessary to judge that Christ had to be put to death.
O my brethren, let us never seek peace with the unjust against justice. Rather, let us always seek peace with God, and that with a clear conscience.
O God, help us so that we may always possess such a peace.
To Thee be glory and praise forever. Amen.
! THE VENERABLE BENEDICT
Benedict was born in the Italian province of Nursia in the year 480 A.D., of wealthy and distinguished parents. He did not remain long in school for he realized himself that through book-learning he could lose "the great understanding of his soul." He left school "an unlearned wise man and an understanding fool." He retreated to a monastery, where he was tonsured by the monk Romanus, after which he withdrew to a steep mountain, where he remained in a cave for more than three years in a great struggle with his soul. Romanus brought him bread and lowered it down the steep mountain on a rope to the opening of the cave. When Benedict became known in the vicinity, he withdrew from this cave in order to retreat from the glory of men. He was merciless toward himself. Once, when an unclean and raging passion of the flesh seized him, he removed all his clothes and rolled around naked in the thorns until he repelled every thought of a woman. God endowed him with many spiritual gifts: clairvoyance, healing, the expelling of evil spirits, the raising of the dead, and the ability to appear to others from a distance in visions and dreams. Once, Benedict perceived that a glass of wine served to him was poisoned. When he made the sign of the Cross over it, the glass burst. In the beginning he established twelve monasteries, and in each of them he placed twelve monks. Later he compiled the special "Benedictine" rule, which is followed even today in the Roman Church. On the sixth day before his death, he ordered that his grave, which had been prepared earlier, be opened, for the saint foresaw that his end was near. He assembled all the monks, counseled them, and then gave up his soul to the Lord, Whom he had faithfully served in poverty and in purity. Scholastica, his sister by birth, lived in a convent, where, in imitation of her brother, she great subdued herself and reached a high state of spiritual perfection. When St. Benedict gave up his soul, two monks, one traveling on the road and one at prayer in a faraway cell, simultaneously saw the same vision. They saw a path extending from earth to heaven, covered with a precious woven fiber and illuminated on both sides by rows of men. At the head of the path, there stood a man of indescribable beauty and light, who said to them that this path was prepared for Benedict, favored by God. As a result of this vision, these two brothers learned that their good abbot had departed from this world. He reposed peacefully in the year 543 A.D. and entered into the Eternal Kingdom of Christ the King.
! SAINT EUSCHEMON, BISHOP OF LAMPSACUS
During the iconoclastic controversy Euschemon endured persecution and imprisonment. He died during the reign of Emperor Theophilus the Iconoclast (829-842 A.D.).
! SAINT THEOGNOSTUS
Theognostus was Metropolitan of Kiev. He was a Greek by origin and a successor to St. Peter of Kiev. He suffered much at the hands of the Mongol Horde (especially at the hands of Janibeg Khan). Theognostus was slandered by his own Russian people before the Mongolian emperor because he did not render the emperor any tribute for his episcopal rank. When the emperor summoned and questioned him concerning this, Theognostus replied: "Christ our God has redeemed His Church from paganism by His Precious Blood. For what should I pay tribute to the pagans?" In the end he was released and returned home. He governed the Church for twenty-five years. He reposed in the Lord in the year 1353 A.D.
! HYMN OF PRAISE
! SAINT BENEDICT
Benedict was a mighty miracle-worker,
A devout person who shed many tears, and a dear companion.
Led by the Spirit of God, holding on to the true Faith,
He was a loving leader, mighty, resolute and humble.
Placidus was his young novice.
Just then the holy Father Benedict prayed to God,
But at once his spirit perceived in the distance:
Behold, the brook suddenly rose, tumbling stones;
Placidus, facing death, was tossed about in the torrent;
The brook seized him and was toying with him.
The saint heard a scream, he heard his own name.
Here faith was necessary, but also pursuit:
Quickly the Elder sent Maurus the monk.
Maurus, with a hurried leap, jumped into the water.
On the water as on a road, he rushed to Placidus.
Unaware that he was walking on the water,
Maurus was upheld on the surface by the prayers of the saint.
Maurus and Placidus came to the elder
And kissed his hand. Placid sobbed:
"I saw you, O Elder, above my head
When my heart was overly filled with dread.
By the hair you grabbed me and above the water lifted me,
Until, at that moment, Maurus came to my assistance!"
Through the prayers of holy Father Benedict,
God also proclaimed Maurus as a miracle-worker.
! REFLECTION
We can hardly find a better example of why we should not become lazy or procrastinate in prayer and work until tomorrow, than by this example, which is given to us by St. Ephraim the Syrian: "Once a brother was inspired by the devil to think: 'Give yourself rest today and tomorrow rise for vigil.' But he answered the thought, 'Who knows, perhaps, I will not even get up tomorrow, that is why I need to rise today.' Before work, he was also inspired with this thought: 'Give yourself rest today and complete your work tomorrow.' And again he responded, 'No, I will complete my work today, and the Lord will take care of tomorrow.'" St. Anthony teaches: "Before the dawn of each day, arrange your life as though it is your last day on earth and you will protect yourself from sins."
! CONTEMPLATION
Contemplate the Lord Jesus before Pilate:
# How the Lord was silent before Pilate;
# How Judas then threw the pieces of silver into the Temple and hanged himself;
# And again, how Pilate questioned and the Lord was silent.
! HOMILY
! on Christ's prophecy concerning His Glory
"Hereafter shall ye see the Son of Man sitting on the right hand of power, and coming in the clouds of heaven" (Matthew 26:24).
He who does not see God as the merciful Samaritan on earth will see Him as the dreadful Judge in heaven. So blinded were the leaders of the Jews that, in the Lord Christ, they were unable to see God, or the Messiah, or a prophet, or even simply a good man. They placed Him beneath ordinary good people. Not only that, they placed Him even lower than the thieves. They released Barabbas and they condemned Christ! In general, they did not even consider Christ a man. They spit on Him; they mocked Him; they made a masquerade of Him, as of some cheap and unneeded thing. Exactly at the moment when the Jews maliciously played with Christ as some cheap and unneeded thing, the Lord suddenly opened His mouth and spoke: //Hereafter shall ye see the Son of Man sitting on the right hand of power, and coming in the clouds of heaven.// What a distance there is between what Christ is in truth and what the Jews held Him to be!
The Son of Man, Who sits on the right hand of Power, is the Son of God, our Lord Jesus Christ, Who was seen as such soon after that by the Holy Archdeacon Stephen and many, many others. The Son of Man, Who comes on the clouds with angels and countless numbers of powers and heavenly hosts, is again that same Son of God, our Lord Jesus Christ, as St. John the Theologian and Evangelist saw and wrote about in his Revelation.
O my brethren, do not be misled by deluding and illusionary tales of those men who say: "When we see Christ in the heavens as God, then we will believe in Him." That faith will be too late, and that vision will be in vain. With our faith we must see Christ as God in that humiliated, spat upon, beaten, bloodied and ridiculed Man in the court of Caiaphas; in that silent and condemned One Whom the Jews considered as something cheap and unneeded and Whom they turned into a masquerade. This is the Faith that is valued in heaven. This is the Faith that is rewarded by resurrection and immortality. This is the Faith that, until now, nurtured and transplanted to heaven numerous armies of the holiest souls, the strongest characters, the most forbearing heroes, and the most illustrious minds. O humiliated Lord, raise us up to this Faith.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR AGAPIUS AND THE SEVEN WITH HIM: PUBLIUS, TIMOLAUS, ROMULUS, ALEXANDER, ALEXANDER, DIONYSIUS AND DIONYSIUS
They all suffered in Caesarea in Palestine at the hand of Prince Urban during the reign of Emperor Diocletian. All seven were extremely young men, and none of them were Christians except Agapius. Neither were they baptized with water, but theirs was a baptism by blood. One day these seven young men were observing how Christians were being tortured: one in the fire, another on the gallows, and a third before wild beasts. Seeing with what great forbearance these Christians endured all their pain and sufferings, these seven became inflamed with a zeal for Christ. They tied their hands behind their backs and came before Urban, saying: "We also are Christians." The flattery and threats of Urban were in vain. These young men were joined by a distinguished citizen of this town, Agapius, who had previously suffered much for Christ. They became all the more inflamed in their faith and love for the Lord. All were beheaded in the year 303 A.D. and took up their abode in the mansions of the Heavenly King.
! THE HOLY MARTYR ALEXANDER
Alexander was from the city of Side in Pamphylia. A deputy of the Emperor Aurelius asked Alexander: "Who are you and what are you?" To this Alexander replied that he was a shepherd of the flock of Christ. "And where is this flock of Christ?" further inquired the wicked and suspicious governor. Alexander replied: "Throughout the entire world live men whom Christ God created, and among them are those who believe in Him: they are His sheep. But all such as you, who are fallen away from their Creator and are slaves to creation, to man-made things and dead idols, are estranged from His flock. At the Dread Judgment of God, they will be placed on the left with the goats." The wicked judge then ordered that Alexander first be beaten with bullwhips and then thrown into a fiery furnace. But the fire did not harm him in any way. After that, he was flayed and thrown to the wild beasts, but the beasts would not touch him. Finally, the deputy ordered that Alexander be beheaded. As soon as the judge pronounced the sentence, he became possessed by an evil spirit and went insane. Howling, the judge was led before his gods, the idols, and on the way his evil soul was wrenched from him. St. Alexander suffered between the years 270 and 275 A.D.
! THE HOLY MARTYR NICANDER THE EGYPTIAN
Nicander was skinned and then beheaded for his faith in Christ. His crime was that, as a physician, he ministered to Christian martyrs and honorably buried their martyred bodies. He suffered honorably in the year 302 A.D.
! HYMN OF PRAISE
! THE HOLY MARTYRS AGAPIUS, ALEXANDER, NICANDER AND THOSE WITH THEM
From every state the Lord chooses His army:
Everyone in whom the flame of love and faith burns;
From among physicians, sages, peasants and laborers,
From among emperors and fishermen--an army of martyrs!
The sword beheaded, the Lord received the wise Alexander;
The sword beheaded, the Lord took the merciful Nicander;
The sword beheaded eight beautiful, young apples;
Beneath the sword, the All-sustaining Hand received them.
Those whom the world scoops up and discards from its sheepfold
The Lord with His tender hand gathers as the most beautiful blossoms.
Shoveled aside as a weed, the first citizen Agapius
Was received by the Lord as His son.
Ten martyrs, glorious men,
Now sing in eternity in the angelic choir.
Not all deaths are the same; all die, but for what?
Some of the dead are blessed and others cursed.
Who dies for Christ's sake--with him is a blessing;
Who dies persecuting Christ--with him is a curse.
! REFLECTION
Love for anyone or anything, even love for oneself, can in time grow cold in man, be lost altogether and even be twisted into hatred. But the love of man for God, once gained and established, is more difficult to cool off, unless one loses one's mind. In the first instance man diminishes or eradicates his love either out of a change in himself or because of a change in the objects of his love. In the second instance man can diminish his love toward God only because of a change in himself and never because of a change in God. All of this is neatly and clearly explained by St. Isaac the Syrian: "There is a kind of love that is similar to a brook after a rainfall, which quickly ceases after the rain stops. But there is a love similar to a spring, which erupts through the earth and never ceases. The first love is human love, and the second love is Divine Love." St. Simeon the New Theologian, speaks about Divine Love: "O Holy Love! Thou art the end of the Law. Thou overcomest me; Thou warmest me; Thou inflamest my heart to immeasurable love for God and my brothers. Out of love, God became man. Out of love, He endured His life-giving suffering in order to deliver man from the throes of hades and bring him to heaven. Out of love, the apostles completed their difficult course. Out of love, the martyrs shed their blood in order not to lose Christ."
! CONTEMPLATION
Contemplate the Lord Jesus when Pilate brought Him out before the Jews:
# How the Lord was flogged by the Roman soldiers;
# How, after being scourged, He was mocked by them; they placed a thorny crown upon His head and dressed Him in a purple robe;
# How Pilate presented Him to the Jews, saying, //Behold the man!// (John 19:5).
! HOMILY
! on the prophecy concerning the desolate house
"Behold, your house is left unto you desolate" (Matthew 23:38).
Why did our Lord remain silent at the judgment before the Jews and before Pilate? Because, prior to that, He had said everything that needed to be said. He foretold how the Jewish elders would give him over to the unbelievers, and how they would kill Him. Many times He had foretold what would personally befall Him. His apostles heard and carefully remembered this. He also foretold the terrible punishment that the Jews would assume upon themselves for their evil acts against the Son of God. And the Jews heard this--and forgot.
//Behold, your house is left unto you desolate.//The Lord foretold this about the Jews. And the Jews heard this and forgot it. But much later, many remembered these prophetic words, many of whom lived through the Great Evil, when the Romans destroyed Jerusalem, plundering it, burning it, dispersing its inhabitants and scattering them throughout the world. Many were beheaded or strangled, starved or crucified. The Jews, out of fear and vexation, forced Pilate to raise his hand against the Lord Jesus. Afterward the Roman Empire raised its hand against the Jews. On that day when the prophecy of the Lord was fulfilled, the Roman Empire, once represented in Jerusalem by Pilate, raised its hand against Jerusalem and her children with a very sharp sword. When Emperor Hadrian restored Jerusalem, he renamed it//) and forbade the Jews from settling in Jerusalem under penalty of death. //Behold, your house is left unto you desolate.// From that time until today, Jerusalem was left deserted by the Jews as a nation. The children of these wicked ancestors who killed Christ were dispersed everywhere, except to their own home--even to this day.! ) Lord, Almighty and All-seeing, forgive us our sins.
To Thee be glory and praise forever. Amen.
! --------------------
//) Hadrian renamed Jerusalem "Aelia Capitolina" after his name, for he was called Aelius.
) This was written in 1928, twenty years before the establishment of the state of Israel (May 14, 1948).--//Trans.//
! THE HOLY APOSTLE ARISTOBULUS, ONE OF THE SEVENTY APOSTLES
Born in Cyprus, Aristobulus was the brother of the Apostle Barnabas. He followed the Apostle Paul, who mentions him in his Epistle to the Romans: //Greet those who belong to the family of Aristobulus// (Romans 16:10). When the great Apostle appointed many bishops throughout the various parts of the world, he appointed Aristobulus as bishop for the British, that is, for England. In Britain the people were savage, heathen and wicked. Aristobulus endured many indescribable tortures, misfortunes and evils among them. They struck and beat him mercilessly, dragged him through the streets, ridiculed, and mocked him. Finally this holy man succeeded, by the power of the grace of God. He enlightened the people, baptized them in the name of Christ the Lord, built churches, ordained priests and deacons, and in the end died there peacefully and entered into the Kingdom of the Lord, Whom he had faithfully served.
! THE HOLY MARTYR SABINUS
Sabinus was a Syrian from the city of Hermopolis and an official of that city. At the time of a persecution against the Christians, he withdrew to a mountain with a large number of other Christians and closed himself off in a hut. There he spent his time in fasting and prayer. A certain beggar, who brought him food and for whom Sabinus had done much good, reported him. As Judas did to Christ, so also this unfortunate one betrayed his benefactor for two pieces of gold. Sabinus, along with six others, was apprehended, bound by the soldiers and brought to stand trial. After severe torments, he was cast into the River Nile, where he gave up his soul to God in the year 287.A.D.
! THE HIEROMARTYRS [PRIEST-MARTYRS] TROPHIMUS AND THALLUS
They were born in Syria and were brothers by birth. They openly and freely preached Christ and denounced the folly of the Hellenes [Greeks] and Romans. The enraged pagans decided to stone them to death. However, when they began hurling stones at these two holy brothers, the stones turned back and struck the assailants, and the brothers remained unharmed. Afterward they were both crucified. From their crosses the brothers taught and encouraged those Christians who stood sorrowfully around. After much agony they presented their souls to the Lord, to Whom they had remained faithful to the end. They suffered honorably in the year 300 A.D. in the city of Bofor.//)
--------------------
//) In the Greek Synaxarion the Venerable Christodulos is also mentioned on this day. He lived a life of asceticism on the island of Patmos, where he build a monastery dedicated to John the Theologian. He died in the year 1111 A.D. Many miracles have occurred over his relics.
! HYMN OF PRAISE
! SAINTS TROPHIMUS AND THALLUS
Two blood-brothers imbued by the Spirit,
Illumined and regenerated by faith.
These two brothers, on the cross crucified,
Counseled the masses of right-believing people:
"O brethren, why do you gaze upon us from below?
Do not bitterly weep because of our difficult sufferings!
Christ our Savior, Doer of heroic deeds,
Became the Redeemer because of such sufferings,
The Redeemer of the whole human race.
Listening to Him, we are being saved.
He obeyed the Father, and to the earth descended;
He suffered and resurrected, and into heaven ascended.
To Him we hearken, and we endure sufferings;
Through sufferings we walk into His Kingdom.
Fear not, brethren, either fire or the sword;
The justice of Christ is stronger than the whole world.
Fear not brethren; neither feel sorrow for yourselves.
Deny yourselves for the sake of eternal salvation.
All sufferings are small, trivial and bearable
Compared to the rewards of Paradise, eternal and sublime.
The world, a false mask, is an insane illusion.
Eternity: that is our true homeland.
Give the world to those who love the lie of the world;
Because of lies, they forfeit life and truth.
But you--seize the pearl above the mud of the world."
Harken, brethren, to Trophimus and Thallus!
! REFLECTION
If we fulfill the Law of God in our thoughts, how much easier will it be for us to fulfill it in our deeds? That is, if we do not transgress the Law of God in our thoughts, how much easier will it be not to transgress it in our deeds? Furthermore, if our hearts are with God, then our tongues, hands and feet--our entire body--cannot be against God. Your heart! Your heart! Prepare your heart for God. Consecrate it to God and worship Him, fulfill the Law of God in it, unite it with God, and all the rest will follow and will be governed by the heart. It is not he who holds a spoke of the wheel that steers the wheel, but he who holds its axis. The heart is the axis of our being. Speaking about the commandments of God, the Venerable Hesychius says: "If you compel yourself to fulfill them in your thoughts, then you will rarely have the need to strain yourself to fulfill them in deed." That is, if you set your heart on God, as on an axis, then the wheels will easily and comfortably follow the axis. In other words, the entire man will follow after his own heart. //Thy law is within my heart// (Psalm 40:9), says the all-wise David.
! CONTEMPLATION
Contemplate the Lord Jesus, how He carried the Cross to Golgotha:
# How He quietly and patiently carried His Cross;
# How they took the Cross from Him and gave it to Simon of Cyrene; how Simon carried the Cross, walking after Christ;
# How He looked upon the women of Jerusalem, who were weeping, and said to them: //Daughters of Jerusalem, weep not for Me, but weep for yourselves, and for your children// (Luke 23:28), declaring by this His victory and the defeat of His murderers.
! HOMILY
! on Christ's humiliation as wealth
"By faith Moses ... esteeming the reproach of Christ greater riches than the treasures of Egypt, ... had respect unto the recompense of the reward" (Hebrews 11: 24-26).
Moses did not want to remain in the palace of Pharaoh nor to be called his adopted son. Desiring more, he chose //rather to suffer affliction with the people of God, than to enjoy the pleasures of sin for a season// (Hebrews 11:25). How different was Moses from his descendants, who for reasons similar to Pharaoh's condemned the King of Glory to death! All of them would have rather lived one more year in the decaying court of Pharaoh than to travel with God for forty years in the wilderness. Moses left all honors, riches and vanities, which only the wealth of Egypt could provide. At the command of God, Moses started out through the foodless and waterless wilderness with faith that beyond it lay the Promised Land. All of this also means to hold Christ's humiliation above all the wealth of Egypt.
Christ's humiliation is what worldly men, who exude a powerful stench of the earth, are ashamed of in Christ. That is Christ's poverty on earth: His fasting, His vigil, His prayer, His wandering without a roof over His head, His condemnation, His humiliation, and His shameful death. Christ's humiliation was valued by the apostles, and after them by countless saints, who thought this to be greater wealth than all the riches in the entire world. Following these indignities, the Lord resurrected, opened the gates of heaven and revealed the Promised Land of Paradise, into which He led mankind along the path of His humiliation and through the wilderness of His suffering.
O Lord, glorified and resurrected, help us that we may hold unwaveringly every drop of Thy sweat and Thy blood as a treasure greater than all worldly riches.
To Thee be glory and praise forever. Amen.
! SAINT ALEXIS THE MAN OF GOD
Varied are the paths upon which God leads those who desire to please Him and fulfill His Law. There lived in Rome at the time of Emperor Honorius a high-ranking dignitary, Euphemianus, who was highly respected and extremely wealthy. He and his wife, Aglaida, led a God-pleasing life. Even though he was wealthy, Euphemianus sat at the table once a day, after the setting of the sun. He had an only son, Alexis, who was compelled to marry when he became an adult. But, on the night of the wedding, Alexis left not only his wife but also the home of his father. He boarded a boat and arrived at the city of Edessa in Mesopotamia, where there was the wondrous image of our Lord, sent there by our Lord Himself to King Abgar. Having venerated this image, Alexis clothed himself in the garb of a beggar. As such, he lived in the city for seventeen years, continually praying to God in the vestibule of the Church of the Theotokos. When it became known that he was a holy man, he became frightened of the praise of men, departed Edessa, boarded a boat, and traveled to Laodicea. According to God's providence, the boat was carried off-course and sailed all the way to Rome. Considering this to be the hand of God, Alexis decided to go to the house of his father and there, unknown, continue his life of self-denial. His father did not recognize him but out of charity allowed him to live in his courtyard in a hut. Alexis remained there for seventeen years, living only on bread and water. Mistreated by the servants in various ways, he endured everything to the end. When his end approached, he wrote a letter, clenched it in his hand, and then lay down and died, on March 17, 411 A.D. At the same time there was a revelation in the Church of the Twelve Apostles. In the presence of the emperor and the patriarch a voice was heard which said: "Seek out the Man of God." Shortly after that, it was revealed that this "Man of God" resided at the house of Euphemianus. The emperor along with the pope and an entire retinue arrived at the home of Euphemianus, and after a lengthy discussion they learned that the beggar was that "Man of God." When they entered his hut, they found Alexis dead, but his face shown like the sun. From the letter his parents learned that he was their son Alexis. And his bride, who for thirty-four years had lived without him, learned that he was her husband. All were overcome with immense grief and pain. Later they were comforted, seeing how God glorified His chosen one. By touching his body, many of the sick were healed, and from his body flowed a sweet-smelling oil [Chrism]. His body was entombed in a coffin of marble and jasper. His head is preserved in the Church of St. Laurus in the Peloponnese.
! THE HOLY MARTYR MARINUS
Marinus was a soldier. Not only did he refuse to offer sacrifices to the idols, but if others made sacrifices he scattered and trampled them under his feet. As a result of this, Marinus was tortured and beheaded in the third century. A certain senator, Asterius, clothed in a priceless white garment, witnessed the suffering of St. Marinus. Asterius was so overcome with zeal for the Faith of Christ, Who gives to His followers so much courage, that he placed the martyred body on his shoulders, bore it away and buried it with honor. Upon seeing this, the pagans also murdered him for being a Christian.
! HYMN OF PRAISE
! SAINT ALEXIS THE MAN OF GOD
Alexis abandoned all that the world deems glorious,
And he embarked on the narrow but true path to God.
First, he decided to be impoverished for the sake of Christ;
After that, he hurriedly left his parents' opulence.
When he departed to a distant land and when he returned,
Neither in splendor nor in poverty did he stumble into sin.
Like a lighted candle, he raised his mind to God,
With strong faith and prayer, of the kind that moves mountains.
His sorrowful mother, inconsolable Aglaida,
Together with his aged father Euphemianus sorrowed and sobbed;
And the bride, at one time young, faded in her grief.
One day the servants berated the beggar.
No one suspected who this withered beggar was:
He was the heir of that household!
But about this he had remained silent.
He had disowned his inheritance while in early bloom,
To be a fellow heir in the heavenly world.
But the saint was unable to hide; the Lord made him known.
Whoever glorifies God by his life, God glorifies him.
Alexis glorified God, that is why he became glorious.
In truth, he was and remains the Man of God.
! REFLECTION
Why are we here on earth? To show our love for God. To learn to love God more than sin. That by our inconsequential love, we may respond to the greater love of God. Only God's love is a great love, and our love is always inconsequential. God abundantly showed and shows His love for man both in Paradise and on earth. We are given this brief earthly life as a school and as an examination, to be examined as to whether we will respond with love to the great love of God. "Every day and every hour, proof of our love for God is required of us," says St. Isaac the Syrian. God shows His love for us every day and every hour. Every day and every moment we stand positioned between God and sin. We have either to give our love to God and elevate ourselves among the angels or to choose sin and fall into the gloom of hades. Alexis the Man of God loved God more than he loved his parents, his wife and riches. He spent seventeen years as a beggar far away from the home of his parents, and another seventeen years as an unknown one, scorned in the house of his parents. He did this all for the sake of the love of God. And the merciful God answered love with love: for these thirty-four years of suffering He gave Alexis eternal life and joy among His angels in heaven, and glory on earth.
! CONTEMPLATION
Contemplate the Lord Jesus on Golgotha:
# How the soldiers removed His garments, and He remained silent and did not defend Himself;
# How they nailed Him to the wood with spikes, and He remained silent and did not defend Himself;
# How with uproar and tumult they raised the Cross from the ground and placed it upright, and the Lord remained silent.
! HOMILY
! on the Second Coming of Christ
"For as the lightning cometh out of the east, and shineth even unto the west; so shall also the coming of the Son of Man be" (Matthew 24:27).
The Second Coming of our Lord Jesus will be an appearance in glory. Our Lord repeated this many times. Here He tells us in more detail as to what His appearance will resemble. He says it will be like lightning. Through this He reveals the five characteristics of His glorious advent.
First: His Second Coming will be unexpected, like lightning. That is why He reminded us: //Watch t! herefore, for ye know neither the day nor the hour //(Matthew 25:13).
Second: His Second Coming will be as bright as lightning. The sun and the stars will be darkened. The entire universe will lose its radiance when He shines forth. The sinner's light and brightness are darkened; how much darker will the sinner be under this heavenly flame! That is why He reminded us to keep the lamps of our souls filled with oil and trimmed. O my brethren, let us not find ourselves in darkness in that terrible hour!
Third: His coming will be as powerful as lightning. For He Himself says elsewhere that He will come //with great power and glory// (Mark 13:26).
Fourth: His coming will be all-encompassing and known to everyone from east to west. That is, He will not appear as He did the first time--to be seen only by His disciples, or one people, or one nation, or one country, or one state--but He will appear like lightning, which all the nations and all the peoples on earth will see at once.
Fifth: Just as lightning precedes rain and hail, so shall His Second Coming precede the Dread Judgment, which will be, for the righteous and faithful, like the desired rain--and, for the unrighteous and unfaithful, like hail.
Let us make preparation, my brethren, for the clouds are gathering and the divine lightning may descend from them at any time. O Lord, great and awesome, give oil to the lamps of our souls so that we may not find ourselves in eternal darkness when Thine eternal light appears.
To Thee be glory and praise forever. Amen.////
! SAINT CYRIL, ARCHBISHOP OF JERUSALEM
Cyril was born in Jerusalem during the reign of Constantine the Great and died during the reign of Theodosius the Great (315-386 A.D.) He was ordained a priest in 346 A.D. and succeeded to the throne of Blessed Maximus, Patriarch of Jerusalem, in 350 A.D. On three occasions he was dethroned and sent into exile. Finally, during the reign of Theodosius, he returned but was not reinstated. He lived peacefully for eight years and then gave up his soul to the Lord. He underwent two difficult struggles: one against the Arians, who became powerful under Constantius, the son of Constantine, and the other during the reign of Julian the Apostate, against this traitor and the Jews. During a period of Arian domination, on the day of Pentecost, the sign of the Cross, brighter than the sun, stretched over Jerusalem and the Mount of Olives, lasting for several hours beginning at nine o'clock in the morning. This phenomenon, seen by all the inhabitants of Jerusalem, was reported in writing to Emperor Constantius, and served greatly in establishing Orthodoxy over the heretics. During the time of the Apostate, still another sign occurred. In order to humiliate the Christians, Julian persuaded the Jews to restore the Temple of Solomon. Cyril prayed to God to prevent this. There was a terrible earthquake, which destroyed all that had been newly built. Then the Jews began restoration anew. Again there was an earthquake, which not only destroyed the newly constructed portion but also overturned and scattered the old stones beneath the ground that supported the Temple. And so the words of the Lord came true: //There shall not be left one stone upon another, that shall not be thrown down//(Mark 13:2; Luke 21:6). Among the many writings of this Holy Father is his //Catechetical Discourses//, a first-class work preserved to the present, which confirms the Faith and practice of Orthodoxy. This saint was a unique archpastor and a great ascetic. He was meek, humble, exhausted from fasting, and pale in complexion. After a life of many labors and noble struggles for the Orthodox Faith, Cyril peacefully reposed and took up his habitation in the eternal court of the Lord.
! SAINT ANANIAS THE WONDERWORKER
Ananias was born in Chalcedon. He was short in stature, like Zacchaeus of old, but great in spirit and faith. He withdrew from the world in his fifteenth year and settled in a hut near the Euphrates River. There he prayed to God and atoned for his sins, at first with his teacher Mayum and, after his teacher's death, alone. Through the power of his prayers he replenished a dry well with water, healed the sick of various maladies, and tamed wild beasts. A tamed lion accompanied him and was constantly at his service. He discerned the future. When Pionius, a stylite, was attacked and badly beaten by robbers some distance away from Ananias, the stylite decided to descend from the pillar and complain to the judges. St. Ananias discerned the soul of this stylite and his intention. He sent a letter to Pionius, conveyed by his lion, counseling him to abandon his intention, forgive his assailants and continue in his asceticism. His charity was inexpressible. The bishop of Neocaesarea presented him with a donkey in order to ease the burden of carrying water from the river, but he gave the donkey to a needy man who had complained to him about his poverty. The bishop presented him with another donkey and he also gave that one away. Finally, the bishop gave him a third donkey, not only to serve as a water-carrier but one to be cared for and returned. Before his death Ananias saw Moses, Aaron and Or [an Egyptian Ascetic] approaching him, and they called out to him: "Ananias, the Lord is calling you; arise and come with us." He revealed this to his disciples and gave up his soul to the Lord, Whom he had faithfully served. He was 110 years old when his earthly life ended.
! HYMN OF PRAISE
! SAINT CYRIL OF JERUSALEM
A large sanctuary light glows before the altar,
And a small sanctuary light glows with a smaller flame.
The one and the other give off the same light,
And before the same God they shine.
Both great saints and lesser saints
With the same flame of Christ are set on fire.
Among the great saints--the large sanctuary lamps--
The Holy Church numbers St. Cyril.
He explained and confirmed the Faith,
And whatever he said in words he confirmed by his life.
His word was of the Holy Spirit,
And his life was a reflection of the flame of heaven.
Arius he shamed and Julian he crushed,
And to many ailing souls he was a balm.
Word for word, he believed in Christ;
Therefore his words were as resplendent as gold
And continue to be so today.
He encourages the weak and those of little faith,
And makes joyful the right-believers in Christ.
That is why the Church glorifies and honors Cyril:
Throughout the centuries, the name of Cyril echoes.
! REFLECTION
There are many vindictive people who think that time brought glorification to Christ, and that, in the early centuries of Christianity, the Lord was not as esteemed as He was in later times. Nothing is easier than to squelch this falsehood. This is how St. Cyril of Jerusalem writes about the Lord Christ: "This is He Who is and He Who was, consubstantial with the Father, the Only-Begotten, equally enthroned, equal in power, Almighty, without beginning, Uncreated, Unchangeable, Indescribable, Invisible, Inexpressible, Incomprehensible, Immeasurable, Unfathomable, Uncircumscribed. He is "the brightness of the Father's glory" (cf. Hebrews 1:13). He is the Creator of the substance of all things created. He is the Light of Light, shining from the bosom of the Father. He is the //God of gods //(Psalm 48:14), and God of God, Who gives us knowledge of Himself. He is the //Fountain of Life//(Psalm 36:9), flowing from the Father's Fountain of life. He is the //River of God// (Psalm 46:4, 65:9), Who comes forth from the infinity of God but is not separated from Him. He is the Treasury of the Father's good gifts and endless blessings. He is the //Living Water// (John 14:4) that gives life to the world. He is the Uncreated Light that is begotten but not separated from the First Sun. He is //God the Word// (John 1:1), Who with one word brought forth all things from non-existence into being... This is He Who created us in the image of God and has now made Himself man in our image; man, but at the same time God." Even today, after sixteen centuries since this Confession of Faith was written, the Orthodox Church adheres to this same Faith, word for word and letter for letter.
! CONTEMPLATION
Contemplate the Lord Jesus, mocked on the Cross:
# How they wrote this epithet above his head: //King of the Jews// (Matthew 27:37, Mark 15:26, Luke 23:38);
# How those passing by scorned Him, shaking their heads and reviling Him;
# How even the thief on the cross reviled Him;
# How through the centuries the persecutors of Christians have scorned Him.
! HOMILY
! on the King Who does not wish to defend Himself with His army
"Thinkest thou that I cannot now pray to My Father, and He shall presently give Me more than twelve legions of angels?" (Matthew 26:53).
Thus spoke the Lord to the disciple who drew a sword to defend his Teacher in the Garden of Gethsemane. It is obvious from these words that the Lord could have defended Himself if He had wanted to, not only from Judas and his company of guards, but also from Pilate and the leaders of the Jews. The might of one angel is greater than the greatest army of men; how much more so is the might of twelve legions of angels!
The Lord did not want to seek this help from the Father. In His prayer in Gethsemane, He said to His Father: //Thy! will be done// (Matthew 26:42). And He immediately knew the will of the Father: that it was necessary that He be given over to suffering. He was in agreement with the will of His Father and set out on the path of suffering. It was necessary to depict the background darkly, that the image of the Resurrection would appear clearer. It was necessary to allow evil to compete as much as it could, so that afterward it would explode and disintegrate into nothing. It was necessary to allow evil to cry aloud, so that soon afterward it would become speechless before the miraculous Resurrection. It was necessary that all the wicked deeds of men against God should be manifested, so that all would be able to see the love and mercy of God toward mankind. The angels of God were not sent to defend Christ from the Jews; rather, the angels of God were sent, after three days, to announce the Holy Resurrection of Christ.
O Lord, All-powerful and All-merciful, have mercy on us and save us!
To Thee be glory and praise forever. Amen.////
! THE HOLY MARTYRS CHRYSANTHUS AND DARIA, AND OTHERS WITH THEM
Chrysanthus was the only son of Polemius, a distinguished patrician, who moved from Alexandria to Rome. As the son of wealthy parents, Chrysanthus studied all the secular subjects, having the most learned men for instructors. But secular wisdom confused him and left him in uncertainty as to what is truth. As a result of this, he grieved. But God, who plans all and everything, alleviated his grief: a written copy of the Gospels and the Acts of the Apostles came into the hands of the young Chrysanthus. Having read them, Chrysanthus was enlightened with the truth. He desired a teacher and found one in the person of a certain priest, Carpophorus, who taught and baptized him. This did not please his father, who by all means attempted to dissuade him from believing in Christ. Not succeeding, the wicked father at first tried to corrupt him by placing him alone with an immoral woman. But Chrysanthus was victorious over himself in this, and persevered in chastity. His father then coerced him into marring Daria, a pagan girl. Chrysanthus counseled Daria to embrace the Christian Faith and to live together with him as brother and sister, although pretending to be married. When his father died, Chrysanthus began to confess Christ openly and to live as a Christian, both he and his entire household. During the reign of the Emperor Numerian, he and Daria were cruelly tortured for their faith. Even the torturer Claudius, witnessing the forbearance of these honorable martyrs and the miracles which were manifested during their sufferings, embraced the Christian Faith along with his entire household. For this Claudius was drowned, both of his sons were beheaded, and his wife, after having recited her prayers, died on the gallows. Daria was so steadfast in her martyrdon that the pagans cried out: "Daria is a goddess!" Finally, it was decreed that Chrysanthus and Daria be buried in a deep pit and covered with stones. Later a church was erected on this site. There was a cave near this pit where some Christians assembled for prayer and Communion in memory of the martyrs Chrysanthus and Daria. Hearing of this, the pagans attacked and sealed off this cave, and thus they drove these Christians from this world to a better world, where Christ reigns eternally. These glorious martyrs, Chrysanthus and Daria and the others with them, among whom were the priest Diodorus and the deacon Marianus, suffered for Christ in Rome in 283 or 284 A.D.,
! THE HOLY MARTYR PANCHARIUS
Pancharius was born in Villach, Germany [present day Austria]. He was a high-ranking officer at the court of Diocletian and Maximian. At first he denied Christ, but, being counseled by his mother and sister, he returned to the Christian Faith and died for it in the year 302 A.D.
! HYMN OF PRAISE
! THE HOLY MARTYRS CHRYSANTHUS AND DARIA
Saint Chrysanthus counsels Daria:
"O virgin, forsake the lie,
And do not venerate the idols as gods;
Neither seek truth from the world.
The truth is in the One God,
The One Triune God
Who created the celestial armies
Of angels and the heavenly powers;
Who created the whole universe,
With man as its crown.
The only One, immortal and living:
He, out of the earth, creates wrappings
And the clothing of spiritual wealth.
Our soul is spiritual wealth,
Wrapped up in the dust of the body.
The soul should be tenderly nurtured
As a bride, to make ready for Christ.
Forsake, O virgin, the bodily:
It leads to suffering and sorrow.
God does not look at the vessel of the flesh,
But at the flower which grows in it.
O virgin, clothed in death,
Today, tomorrow consumed by death:
Adorn your soul with the flower of virtues,
Sow the flower with faith in the Lord,
Enclose it with hope and love,
Water it with the Life-creating Spirit,
Weed it of the weeds of sins,
Let grow the flower of virtues,
Let grow the flower of piety,
Let grow the flower of charity,
Let grow the flower of repentance,
Let grow the flower of patience,
Let grow the flower of abstinence,
Let grow the flower of obedience.
Your soul is like a hymn of Paradise:
Let it smell like a garden in May,
And may God dwell in it,
For that is what He made it for."
Daria heeded Chrysanthus;
She wedded her soul to Christ
And submitted her body to torture
With Chrysanthus, her spiritual brother.
And God transplanted them to Paradise;
With them He adorned the garden of Paradise.
! REFLECTION
"The mercy [of God] that raises us up after we have sinned is even greater than the mercy by which He gave us being, when we did not yet exist. Glory, O Lord, to Thine immeasurable mercy!" Thus speaks St. Isaac the Syrian. He means that greater is the mercy that God showed toward us when, through Christ, He saved us from the corruption of sin and death, than when He created us from nothing. Truly, it is so. Even earthly parents show greater mercy to a perverted and fallen son when they embrace him again, forgive him all, make him civilized, cleanse him, heal him, and again make him their heir, than when they gave him birth. When the young Pancharius, surrounded by royal honors, denied Christ, his mother wrote him a letter full of pain and sorrow. "Do not be afraid of men," wrote his mother, "but it is essential to fear God's judgment. You should have confessed your faith in Christ before emperors and lords and not have denied Him. Remember His words: //Whosoever shall deny me before men, him will I also deny before My Father which is in heaven// (Matthew 10:33). Being ashamed of himself, the son accepted the advice of his mother, confessed his faith in Christ before the emperor, and died a martyr's death for Christ in order to live with Him eternally. And so the blessed mother of Pancharius brought about a new birth for her son, a spiritual birth more important than the first, physical birth.
! CONTEMPLATION
Contemplate the Lord Jesus on the Cross:
# How He suffered in agony on the Cross;
# How He was given vinegar and gall to drink when He said He was thirsty;
# How those men beneath the Cross, insensitive in their selfishness, did not care about Him but were vying for His garments.
! HOMILY
! on the sign of the Son of Man
"And then shall appear the sign of the Son of Man in heaven" (Matthew 24:30).
What kind of sign will the sign of the Son of Man be, which had once been revealed briefly? It is the Cross, brighter than the sun, which manifested itself over Jerusalem before the coming of an early personification of the Antichrist, Julian the Apostate. And, in lieu of any homily concerning this miraculous sign, it is worthwhile to quote here the letter of St. Cyril of Jerusalem written to Emperor Constantius, the son of Constantine the Great and predecessor of Julian the Apostate. A portion of his letter reads: "For in these very days of the Holy Feast of Pentecost, on the seventh of May, about nine o'clock in the morning, a gigantic cross formed of light appeared in the sky above holy Golgotha, stretching out as far as the holy Mount of Olives. It was not seen by just one or two but was most clearly displayed before the whole population of the city. Nor did it, as one might have supposed, pass away quickly like a mirage, but it was visible above the earth for some hours, while it shone with a light greater than the sun's rays. Surely, it would have been eclipsed by them, had it not exhibited to those who saw it a brilliance more powerful than the sun, so that the whole population of the city made a sudden concerted rush into the the church, being seized by fear mingled with joy at the heavenly vision. They poured in, young and old, men and women of every age, even the most secluded virgins, local inhabitants and strangers, Christians and pagans from other lands. All of them with one soul, as if with one mouth, raised a hymn of praise to the Woinderworker, Christ Jesus our Lord, the Only-begotten Son of God, and indeed learned by experience that pious Christian teaching is to be found //not in enticing words of man's wisdom, but in demonstration of the Spirit and power// (1 Corinthians 2:4), and not only preached by man but also attested to from the heavens by God (Hebrews 2:3-4)... We consider it our obligation not to remain silent about this heavenly vision, but to inform Your God-glorified Reverence. Therefore I have hastened to fulfill this intention through this letter."
O my brethren, everything is possible with God: both to reveal the created to man and to create the uncreated. But most importantly for us is that He wants to redeem our souls from sin and death and to give us life eternal. Let us pray to Him for this, day and night.
! O Lord Almighty, To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR THEODOTUS, BISHOP OF CYRENIA ON THE ISLAND OF CYPRUS
Because of his wisdom and virtue, Theodotus was elected to the episcopacy and governed the Church of God with love and zeal. When the persecution of Christians began during the reign of the wicked Emperor Licinius, this godly man was brought to trial and put through many tortures. When the torturer Sabinus advised him to deny Christ and to bow down before pagan idols and worship them, Theodotus replied: "If you knew the goodness of my God, Who I hope will make me worthy of eternal life because of these temporary sufferings, you also would wish to suffer in the same manner as I." The torturers began to strike his body with nails, and he prayed to God with gratitude. Thinking his end was near, Theodotus counseled and taught the Christians who were assembled around him. By the providence of God, the Emperor Constantine at that time proclaimed freedom to Christians and ordered that all who were sentenced for the sake of Christ be released. Thus, this saint was freed and returned to his former position in Cyrenia. As tortured as he had been, Theodotus lived for several more years. After that, he found repose in the Lord, Whom he had faithfully served and for Whom he had suffered. In the year 302 A.D. his earthly life ended, and he passed on to the mansions of our Lord.
! THE HOLY MARTYR TROADIUS
He suffered for Christ as a young man. Gregory of Neocaesarea saw in a vision how bravely Troadius withstood his tortures for Christ until the time he was killed. He saw his soul, when it had separated from the body, joyfully hastening toward heaven. St. Troadius suffered and was glorified in the third century.
! THE 440 MARTYRS SLAIN BY THE LOMBARDS
They were slain by the Lombards in Italy in about the year 579 A.D. St. Gregory Dialogist writes about them. In one place, forty of them were beheaded. At another place, four hundred of them were beheaded, all because they refused to eat of the sacrifices to the idols. Additionally, these four hundred refused to dance around a goat's head which had been offered to the demons as a pagan sacrifice, as was the custom of the Lombards.
! THE VENERABLE AGATHON
Agathon was a great Egyptian ascetic of the fifth century. He was a contemporary of St. Macarius and a disciple of St. Lot [Egyptian Ascetic]. He took care to fulfill all the commandments of the Lord. One of the brethren complimented him on a small knife, which he used to cut brushwood used for making baskets. Upon hearing this compliment, the saint joyfully handed over the knife to that brother as a gift. St. Agathon also said: "I would be satisfied to assume the body of a leper and give him mine." Is this not perfect love?//)
--------------------
//) In the Greek Synaxarion, he is commemorated on January 8.
! THE MARTYR EUTHALIA
This holy Euthalia was a virgin from Sicily. She had a mother of the same name and a brother named Sermilianus. All were unbaptized pagans. Her mother Euthalia suffered from an issue of blood. The holy martyrs Alphius, Philadelphus and Cyrinus (May 10) appeared to her in a dream and told her that she would be healed only if she was baptized in the name of the Lord Jesus Christ. Euthalia professed her faith in Christ, was baptized and indeed recovered. Upon seeing this miracle, Euthalia's daughter was also baptized. Afterward, Sermilianus began to mock and ridicule his mother and sister because of their faith in Christ. He threatened them, causing the mother to become frightened and flee her home. Then the brother began to persecute his sister. His sister was not frightened, for Christ was dearer to her than her brother. She said to Sermilianus: "I am a Christian and I am not afraid of death." The wicked brother then sent a servant to defile her. When the servant attacked St. Euthalia, he lost his eyesight. The evil brother saw this miracle but still remained hardhearted. Just as Cain pursued Abel, Sermilianus pursued his sister, caught her and beheaded her. Thus, the holy virgin Euthalia was crowned with the wreath of eternal glory. By this example the words of the Lord Christ were fulfilled: that He came to bring a sword among men, which causes division among blood relations but not among the faithful! (cf. Matthew 10:34-35).
! HYMN OF PRAISE
! SAINT AGATHON
Reticent Agathon studied for three years
With a pebble under his tongue in order to remain silent,
That by his tongue he would not serve sin,
But only speak words of solace to men
And glorify God Who created him.
Once when the saint began to speak
Of anger, he said: "The one over whom anger takes control
Does not please God, either now or ever.
We have the power to resurrect the dead,
But from an angry one God accepts no sacrifices."
When death hung over Agathon,
The brethren gathered to see him, frail.
He whispered prayers with great fear;
Sigh upon sigh poured forth from his breast.
The brethren asked him: "Are you also afraid,
O all-good father, as you stand before God?
You were utterly good to everyone--this is known to all.
Among the stones of men, you glistened like gold!"
Then the elder said with a countenance more radiant:
"My children, before the judgment of God, I now stand.
The judgment of man is one thing, and the judgment of God is another."
--And a more powerful sigh seized the elder!
! REFLECTION
If someone loses his faith in God, he is recompensed with stupidity. Of all the forms of stupidity, it is difficult to say whether there is a greater one than this: that someone calls himself a Christian and then proceeds to gather pathetic proofs for God and eternal life from other beliefs and philosophies. He will he who does not find gold among the wealthy find it among the poor? The revelation of eternal life, the facts, the proofs, the signs and the actual visions of the spiritual world--all of these not only constitute the foundation of the Christian Faith but also constitute the walls, the floors, the ornaments, all the furnishings, the roof and the domes of the majestic building of the Christian Faith. A single ray from the spiritual world shines through every word of the Gospels, not to mention the miraculous events, both in evangelical and post-evangelical times, throughout the entire two-thousand-year history of the Church. Christianity has thrown open the gates of that world to such a great degree that it almost should not be called a religion, in order not to confuse it with other faiths and religions. It is Revelation! God's Revelation!
! CONTEMPLATION
Contemplate the Lord Jesus Christ at the Mystical Supper:
# How he told His disciples that one of them would betray Him;
# How after all that He had done for Judas and after washing his feet and indicating that He knew his intention to betray, Judas remained obstinate in his desire to sell his Teacher and his own soul for silver;
# How our Lord was saddened at Judas's destruction and downfall, as He is with the destruction and downfall of those who betray Him and His Church throughout all the ages till the end, all of which He foresees with His All-seeing Spirit.
! HOMILY
! on the Father and the Son
"And he that seeth Me seeth Him that sent Me" (John 12:45).
He who sees the light also sees the sun beyond it. For could anyone see the sun and not the light? If the sun did not emit its light, none of us would know about the sun. All of our knowledge about the sun we have received with the help of the rays of light that have come from the sun. No one has ever seen the sun with the help of some other light, other than that which comes from the sun itself.
So it is with our knowing the Father with the help of the Son. He who does not know the Son cannot know the Father. He who knows the Son, knows the Father. He who sees the Son, sees also the Father. God cannot be known without His Light, Who came among men. The Light of the Father is the Son. //I am the Light//(John 8:2), said Christ. //And the Light shineth in darkness// (John 1:5). The physical world would be in complete darkness if it were not for the light from the sun. The spiritual and moral world and all the life of mankind would be in darkness if it were not for the Light that is from the Father. That Light is Christ the Lord.
Truly, brethren, there is no true light which illuminates the Being of God as does the Light of Christ the Lord. He who sees Him sees God. He who does not see Him is in darkness.
O Lord, Son of God, always help our souls to see Thee, and through Thee, Thy Heavenly Father and the Comforter, the Holy Spirit, the Trinity, one in Essence and undivided.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MARTYR JOHN AND THOSE WITH HIM FROM THE MONASTERY OF SAINT SAVA THE SANCTIFIED NEAR JERUSALEM
This glorious monastery, which still exists today, was visited by St. Sava of Serbia and endowed by several Serbian rulers. Many times it was attacked, pillaged and laid waste by ruthless Arabs. But, by the providence of God, it was always restored and is preserved to this day. During the reign of Constantine and Irene, it was attacked and pillaged by the Arabs. The monks did not want to flee, but taking counsel with their abbot Thomas they said: "We have fled from the world into this wilderness for the sake of our love for Christ, and it would be shameful if we fled from the wilderness out of fear of men. If we are slain here, we will be slain because of our love for Christ, for Whose sake we came here to live." Having decided this, they awaited the armed Arabs, unarmed like lambs before wolves. The Arabs slew some of the monks with arrows and some they sealed off in the cave of St. Sava. Then the Arabs lit a fire at the entrance of the cave, and the monks were suffocated by the smoke. Thus many of them died as martyrs for the sake of Christ and went to the Kingdom of Him Whom they loved and for Whose love they perished. They suffered honorably before Pascha [the Feast of the Resurrection] in 796 A.D., during the time of Constantine and Irene, and the Patriarch of Jerusalem, Elias. A just punishment quickly befell the savage marauders. Returning to their tents, they began to quarrel among themselves and, fighting with one another, slew one another.
! THE HOLY MARTYR PHOTINA
This was the Samaritan woman who had the rare fortune to converse with the Lord Christ Himself at the Well of Jacob, near Sychar (John 4:4-31). Believing in the Lord, Photina afterward went to preach His Gospel with her two sons Victor and Josiah, and with her five sisters, Anatolia, Phota, Photida, Parasceva and Cyriaca. They went to Carthage in Africa. There they were arrested, taken to Rome and thrown into prison during the reign of Emperor Nero. By God's providence, Domnina, the daughter of Nero, came into contact with St. Photina, who converted her to the Christian Faith. After imprisonment they all suffered for the sake of Christ. Photina, who was first enlightened with the light of truth at the well of Sychar, was now thrown into a well where she died and entered the Eternal Kingdom of Christ.
! HYMN OF PRAISE
! SAINT PHOTINA, THE SAMARITAN WOMAN
The Samaritan Woman met Christ at the well,
And was enlightened with the light of Christ Himself.
Under Nero she ended her life in another well,
And she gave her spirit to Christ God, her Lord.
Her glorious sons were Victor and Josiah:
The saintly mother enlightened both of them with holiness.
Five sisters suffered for the name of Christ,
And with her were translated to heaven, to receive their reward.
O penitent Photina, wonderful sufferer,
How your countenance now shines with eternal light!
Once, you did not even give water to the Savior;
Finally, even your blood you shed for Him.
Your soul had once been darkened, as you were a Samaritan;
When you became a Christian, you shone more brightly than the sun's rays.
In Sychar you proclaimed Christ with fear;
In the center of Rome you witnessed to Him by your death.
Love destroys every fear and makes one a hero--
O Photina, love forever glorifies you.
Two or three Romes can Nero burn down,
But the soul of Christians cannot burn.
Vessels of clay can Nero smash,
But he had no power over the spirit of Photina.
O immortal saint, help us now,
By your prayers, before the throne of Christ the Savior.
! REFLECTION
God punishes a sinner not because it gives Him gratification to destroy men. If that gave Him gratification, He would not have created man from nothing. He punishes a sinner for more important and constructive reasons, two of which are most apparent to us. First, by punishment, He corrects him and leads him on the true path of salvation, and second, He frightens others from sinning. St. Isaac also thinks this when he says: "A righteous wise man is like unto God--for he punishes a man not to reproach him for his sin but either to correct him or to instill fear in others." One recalcitrant young man, who ridiculed God and his parents, suddenly went insane. The whole city in which this young man lived saw in this the punishment of God and was filled with the fear of God. The young man was held bound in isolation for three years. His mother wept bitterly and prayed to God for her son. One year, on the Feast of Pentecost, the mother brought him to the Monastery of St. Basil of Ostrog. Following prayers, the insane youth was cured and came to himself. After that he repented and became an exemplary person and a true Christian.
! CONTEMPLATION
Contemplate the Lord Jesus crucified on the Cross:
# How blood flowed from His hands and dripped to the ground;
# How blood flowed from His feet and dripped to the ground;
# How blood flowed from beneath His ribs and dripped to the ground.
! HOMILY
! on the battle of the Lamb with the beasts
"These shall make war with the Lamb, and the Lamb shall overcome them: for He is Lord of lords, and King of kings" (Revelation 17:14).
Who speaks these marvelous words? John, who saw God. Who is this Lamb? Christ the Lord. Who is this Lord of lords and King of kings? Christ the Lord. With whom will He wage war and whom will He defeat? He will defeat the beast which has seven heads and all those who received authority, honor and riches from the unclean beast.
The Lamb among the beasts! St. John also saw the Lamb as the Victor over all the beasts. Christ among the demons! One would say: "They will devour Him!" Nevertheless, the terrified demons cry out to Him for mercy and flee from Him without turning back. Christ among His tormentors! One would say: "They will destroy Him forever." Nevertheless, He resurrects and conquers, and they flee from Him in terror and perish. The Church among the heathens! One would say: "They will flood her like a wave covering a small island." Nevertheless, the pagan kingdoms sank and fell apart, while the Church still exists, flourishes and advances. The Christian Faith among dry philosophers and theoreticians! One would say: "They will outwit it and drive it from the world." Nevertheless, they steer one another into lies and persecutions, but the Christian Faith saves men. Piety in the midst of blasphemers and apostates! One would say: "They will soil it!" Nevertheless, they are smothered in their own filth, and reverence preserves itself in unsoiled purity. Christian meekness and tears surrounded by tyrants and abductors! One would say: "It will die of hunger!" Nevertheless, they live and are satiated, while the tyrants and abductors suffer from starvation. The Lamb among the beasts! Nevertheless, the Lamb is the Victor.
O Lord, meek and good, Lamb of God all-gentle, imbue us with Thy meekness and goodness, so that even we may share in Thy victory.
To Thee be glory and praise forever. Amen.
! SAINT JAMES, BISHOP AND CONFESSOR
Neither the place of his birth nor the place where James served as bishop are known. Only this is known: he fulfilled the law of Christ and spent much time laboring ascetically in strict fasting and prayer. During the reign of Copronymos, James endured great hardships and suffering, such as hunger, imprisonment and ridicule of all sorts at the hands of the iconoclasts. Finally, he gave up his soul to God, Whom he had faithfully served in this life. He lived and suffered in the eighth century.
! THE VENERABLE CYRIL, BISHOP OF CATANIA IN SICILY
Born in Antioch, Cyril was a disciple of St. Peter. He governed the flock of Christ well. With the aid of prayer, he had the gift of working many miracles. Once in a place that during the summer had only bitter water, which was unfit to drink, he changed it into sweet, drinkable water through prayer. He reposed peacefully.
! SAINT THOMAS, PATRIARCH OF CONSTANTINOPLE
Thomas lived during the reigns of the Emperors Maurice and Phocas and Patriarchs St. John the Faster and Cyriacus. Because of his great piety and zeal, Thomas attracted the attention of St. John and was advanced to the rank of patriarchal deputy by that saint. Following the death of Cyriacus, Thomas was elected patriarch. At this time, an extraordinary event occurred. Once, when there was a procession with crosses, the crosses began to sway on their own and began to strike one another. All the people were amazed at this. When Patriarch Thomas learned of this, he summoned Theodore the Sykeote, a renowned hermit who possessed the gift of clairvoyance (discernment). The patriarch implored Theodore to explain to him what this incident foretold. Theodore prayed to God and revealed to the patriarch that this occurrence portended great misfortunes, both for the Church and for the Greek Empire. These would transpire as a result of internal religious and political dissensions. Christians would fight and annihilate each other. All of this was shortly fulfilled. Thomas implored Theodore to pray for him that God would take him before these tragedies began. "Do you command that I come to you, or shall we meet in the other world before God." This is how Theodore replied to the patriarch, indicating that the patriarch would die soon. That very same day the patriarch became ill and died. Shortly after him, St. Theodore also reposed. St. Thomas died and took up his habitation with the Lord in 610 A.D.
! THE VENERABLE SERAPION
Serapion was a companion of St. Anthony the Great. He was the abbot of the Monastery of Arsina in the Nitrian wilderness, where there were over eleven thousand monks. Palladius and Sozomenes called him "the Great." He reposed in about the year 366 A.D. St. Serapion wrote: "Do not think that sickness is grievous; only sin is grievous. Sickness accompanies us only to the grave, but sin follows the sinner even after the grave."
! HYMN OF PRAISE
! SAINT SERAPION
Serapion wanted to save a sinner,
And so took the appearance of a sinner upon himself.
He entered the room of the sinner as if to commit sin,
But before sinning he spoke to her in this manner:
"You wait for a while--we have the entire night--
Until I complete my prayer; then we will proceed to the misdeed!"
Serapion began to read the prayers,
Raising his mind toward God, that it not wander anywhere.
And prayer after prayer he began to recite,
Sigh after sigh he raised to the Most High.
He read the entire Psalter and other prayers,
And began lengthy prayers for the sinner.
He interrupted his prayers with sobbing and sighing,
Until even the sinful woman began to moan,
To groan and sob as never before in her life.
She realized that the saint had not come to commit sin,
But rather to save her from her perversion,
To raise her to God and to cleanse her from filth.
Then the woman exclaimed: "What should I do?
Behold, I am ashamed and repulsed with myself!"
Serapion then gave her instructions
And committed her to the care of wise sisters.
Then he took his path to the wilderness,
Joyful, because a sinful soul had been saved.
! REFLECTION
You will hear this kind of justification from many who pursue riches: "When I become rich, I will be able to perform good works!" Do not believe them, for they deceive both you and themselves. St. John Climacus knew in depth the most secret motives of men's souls when he said: "The beginning of love of money is the pretext of almsgiving and the end of it is hatred of the poor" (Step 16). This is confirmed by all lovers of money, both the very rich and the less rich. The average man says: "If only I had money, I would carry out this and that good work!" Do not believe him. Let him not believe himself. Let him look as in a mirror, at those who have money and who are not willing to do this or that good work. That is how he would be if he acquired some money. Again, the wise John says: "Do not say that you must collect money for the poor, that through this assistance you might gain the Kingdom. Remember, for two mites the Kingdom was purchased" (Step 16) (cf. Luke 21:2). Truly, the widow in the Gospel purchased it for two mites, and the rich man, before whose gates Lazarus lay, could not purchase it for all of his countless riches. If you have nothing to give to the poor, pray to God that He will give to them, and by this you have performed almsgiving and purchased the Heavenly Kingdom. When St. Basil the New prophesied to the empress, the wife of Emperor Constantine Porphyrogenitus, that she would first give birth to a daughter and then to a son, the empress offered him much gold. The saint refused it. The empress implored him in the name of the Holy Trinity that he take the gold. Then St. Basil took only three pieces of gold and gave it to his needy servant, Theodora, saying: "We do not need too much of these thorns, for they prick much."
! CONTEMPLATION
Contemplate the Lord Jesus crucified on the Cross:
# His head, sorely wounded by the thorny wreath;
# His eyes, closed from pain;
# His mouth, dry from thirst.
! HOMILY
! on the First and Last Who lives
"Fear not; I am the First and the Last: I am He that liveth, and was dead; and, behold, I am alive for evermore" (Revelation 1:17-18).
Thus says the Lord Jesus to His beloved disciple John in a vision on the island of Patmos. Do not be afraid of what? Do not be afraid of the pagan persecution of the Church. Do not be afraid of the tormentors who persecute My Faithful on all sides. Do not be afraid of emperors who raise up persecutions against the Christians. Do not be afraid of this world's powerful tyrants, who mock and ridicule My humility in My death. Do not be afraid of demons, who blind men with passions so that they cannot see the truth which I brought to the world. Do not be afraid of anything!
How can I not be afraid, O Lord!, Why then should we not be afraid when the entire world is armed to the teeth and assembled against us, who are small in number and unarmed?
Do not be afraid, for I am the First and the Last, the Alpha and the Omega. All of those forces armed against you are nothing but a whirlwind of the dead. I am before time and I am after time; before the beginning of all and after the end of all things that were created, I Am! They are all locked in one span of time, which I measured out to every created thing; and outside of this span of time, they cannot extend.
Do not be afraid, for "I was dead; and behold, I am alive." Do not be afraid, not even of death. I am before death and after death. Death is My servant, and I permit My servant to serve Me in the world. I gave Myself up to My servant for three days and ordered him to release Me, and now I am alive. I am the Master of death as well as of life. I am the Master of time as well as of eternity. Do not be afraid! I am alive forever and ever. And you will be alive with Me. All they who remain faithful to Me and are not afraid will live with Me. Do not be afraid; //I am Alpha and Omega// (Revelation 1:11).
O Lord, eternal and immortal, allow these holy words of Thine to ring always in the souls of Thy faithful whenever a persecution is raised up against Thy Holy Church, so that, holding on to Thy right hand, we may not be afraid.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR [PRIEST-MARTYR] BASIL, PRESBYTER OF ANCYRA
Under Emperor Constantius, Basil endured and suffered much at the hands of the Arians. He was renowned as a great zealot of Orthodoxy and a true shepherd of his entrusted flock in Ancyra. When Julian the Apostate ascended the throne, he began to persecute Christians. Because Basil openly condemned this new evil and strengthened his people in the Faith, he was cast into prison. When Emperor Julian came to Ancyra, Basil was brought before him. The emperor tried to persuade Basil to abandon his faith in Christ, promising him honors and riches. Basil answered the emperor: "I believe in my Christ, Whom you denied and Who gave you this earthly kingdom; but that will be taken away from you shortly. Have you no shame before the sacred altar, under which you were saved when they sought to kill you as an eight year old child? Therefore, this temporary kingdom will be taken from you shortly, and your body will not be buried after your soul has been violently wrested from you in bitter pains." Julian became enraged and ordered that seven strips of skin be pealed from Basil's body every day. The tormentors did this for several days. When Basil appeared again before the emperor, he pealed off a strip of his own skin and threw it into Julian's face, and crying out to him, he said: "Take it, Julian, and eat, if this kind of food is sweet to you; but for me, Christ is Life." This incident was proclaimed throughout the towns, and the emperor, out of shame, secretly departed from Ancyra to Antioch. They continued to torture Basil with red hot irons until he gave up his soul to God, for Whom he suffered, in the year 363 A.D.
! SAINT DROSIDA
Drosida was the daughter of Emperor Trajan. She was captured with five other women at night while they were gathering the bodies of the tortured martyrs of Christ. For this she was severely disfigured by the emperor. The five other women were horribly tortured, and in the end they were thrown into a vat of molten copper, where they gave up their souls to their Lord. Drosida remained under the strict guard of the emperor. She escaped from the palace and baptized herself in a river. After eight days she gave up her soul to God.
! THE VENERABLE MARTYR EUTHYMIUS
Euthymius was born in the village of Dimitsana in the Peloponnese. As a child, he lived as a Christian, but later he went to Romania where he gave himself over to a life of great debauchery. In this debauchery an evil spirit led him to become a Moslem. As soon as he did that, Euthymius began to repent bitterly. He returned to the Christian Faith and was tonsured a monk on the Holy Mountain. After several years spent in strict fasting and prayer, he decided to die for Christ. With the blessing of his spiritual father, he traveled to Constantinople, where he somehow succeeded in coming before the grand vizier. Euthymius crossed himself, praised Christ, and insulted Mohammed in the presence of the vizier. After prolonged torture he was sentenced to death and beheaded on Palm Sunday, March 22, 1814 A.D. Many miraculous healings of the sick occurred over his relics. His honorable head is preserved in the Russian Monastery of St. Panteleimon on the Holy Mountain. And so, this twenty-year old youth first died to Christ and then died for Christ.
! HYMN OF PRAISE
! CHRIST THE LORD AS A FISHERMAN
Thou art a wonderful Fisherman, O Christ our Lord!
Throughout the whole world Thou dost spread Thy nets;
For pure pearls Thou trawlest the waters deep.
The invisible net, woven by the Spirit,
Woven with love, moistened with tears,
Is everywhere upheld by angelic hands.
Everyone to whom a mother gave birth and who was reared by the Spirit,
All the most beautiful souls that the world can give,
All who have entered into the number of Thy rich catch:
All of these will Thy silk net capture,
When Thou wilt raise Thy nets from the sea of life.
Nothing will remain but the muddy scum.
O Most Wonderful Fisherman of pure pearls,
We sinners were at one time Thy pearls.
Now we are far away from Thy throne,
Covered under the sediment of dark passions.
But may Thy net seize us as well.
And from Thy countenance we will shine as the stars.
! REFLECTION
Even in His pain on the Cross, the Lord Jesus did not condemn sinners but offered up pardon for their sins to His Father, saying: //They know not what they do //(Luke 23:34)! Let us not judge anyone so that we will not be judged. For no one is certain that, before his death, he will not commit the same sin by which he condemns his brother. St. Anastasius of Sinai teaches: "Even if you see someone sinning, do not judge him, for you do not know what the end of his life will be like. The thief who was crucified with Christ was a murderer, while Judas was an apostle of Jesus, but the thief entered into the Kingdom, and the apostle went to perdition. Even if you see someone sinning, bear in mind that you do not know his good works. For many have sinned openly and repented in secret; we see their sins, but we do not know their repentance. Therefore, brethren, let us not judge anyone so that we will not be judged."
! CONTEMPLATION
Contemplate the Lord Jesus crucified on the Cross:
# How infinite was His sorrow for mankind blinded by sin;
# How His thoughts on the Cross were directed more to His Heavenly Father than to Himself;
# How His concerns on the Cross were directed more to mankind than to Himself;
# How, even on the Cross, He was certain of His victory and Resurrection.
! HOMILY
! on the majesty of Christ the Victor
"His head and his hairs were white like wool, as white as snow; and his eyes were as a flame of fire" (Revelation 1:14).
That is how John the God-seer saw Jesus after His Resurrection and victory. He saw Him as the Son of Man, clothed in a lengthy garment, girded about with a golden sash, with seven stars in His right hand, and His face shining like the sun at its brightest! (cf. Revelation 1:16). It was with this kind of power and glory that He appeared--He Who on the Cross was not radiant and Who seemed to be the weakest among the sons of men to every passersby.
Why was His hair as white as wool and snow? Was not our Lord not yet thirty-four years old when they killed Him? From where, then, comes His white hair? Does not white hair indicate old age? It is true that white hair does indicate old age with mortal man, but with Christ in Glory it indicated more than old age--it indicated eternity. Eternal youthful age! Old age is the past, and youth is the future. At the same time, is He not both? More than all the times past and all times to come, and even beyond time, Christ is eternity beyond time. Why were His eyes like a flame of fire? Because He is the All-seeing. All sorts of things can be hidden from the sun, but of all that is in the heavens, on the earth, or under the earth, nothing can be hidden from His sight. He perceives all the threads of the fabric of nature; He perceives all the atoms in the stones, every drop of water in the sea, every particle of air, and all the thoughts and desires of every created soul. This is the One and the same and no other; He who out of compassion for the human race came to earth, clothed Himself in a mortal and suffering body, was ridiculed, was mocked and was spat upon by sinful men. That is the same One and no other, Who without radiance hung on the Cross between thieves, and as a dead man was buried by Joseph and Nicodemus.
O brethren, how awesome it is to ponder upon what a great and majestic Visitor the earth had! It is even more terrible (awesome) to ponder Him against Whom deranged men lifted up their hands!
O Majestic Lord, forgive us our sins and remember us all in Thy power and glory.
To Thee be glory and praise forever. Amen.////
! THE HOLY HIEROMARTYR [PRIESTLY-MARTYR] NICON
Nicon was born in Naples of a pagan father and Christian mother. He was a Roman officer in Naples and was unbaptized, even though his mother tutored him in the Christian Faith, hiding this from his father. Once, when Nicon was sent into battle with his troops, his mother counseled him to make the sign of the Cross and to call upon Christ for help if any misfortune should befall him. And, indeed, when during the battle Nicon's troops were completely surrounded and extremely close to final destruction, Nicon made the sign of the Cross and in his heart cried out to Christ. Immediately he was filled with extraordinary strength and pursued his enemies. Some he slew, and others he forced to flee. Returning to his home, Nicon continuously cried out in amazement: "Great is the Christian God." After he had made his mother happy with the news of his victory with the help of the Cross of Christ, he secretly sailed to Asia. There he was baptized by Theodosius, Bishop of Cyzicus. Following his baptism, he secluded himself in a monastery, where he devoted himself to study and asceticism. Before his death Theodosius had a vision in which he was told to ordain Nicon as his successor. Immediately the aged Theodosius summoned Nicon and ordained him a deacon, then a priest, and finally a bishop. Shortly thereafter, according to God's providence, Nicon came to Naples where he discovered that his mother was still living. Following his mother's death, Nicon withdrew to Sicily with nine disciples, his former military companions. There he dedicated himself to preaching the Gospel. At that time, however, there was a terrible persecution of Christians. Prince Quintianus captured Nicon with his companions and inflicted great pain and suffering upon them. Nicon's 199 disciples and companions were beheaded. The tormentor tied Nicon to the tails of horses, hurled him from a steep wall into a gorge, beat him, and skinned him. Nicon, however, survived all of these tortures. Finally, he was beheaded and took up his habitation with the Lord. His body was left in the fields to be devoured by the birds. A certain herdsman, possessed by a violent evil spirit, tripped and fell over the body of Christ's martyr, and was immediately healed. He proclaimed the news about Nicon's body, and Christians came forth and honorably buried it. St. Nicon suffered during the reign of the Emperor Decius.
! THE VENERABLE NICON OF THE MONASTERY OF THE KIEV CAVES
Nicon was a companion of St. Anthony of the Caves and a spiritual father to the Venerable Theodosius. Because of his monastic tonsuring of the boyar Barlaam and of the eunuch Ephraim, Nicon was threatened by Prince Iziaslav; but his wife, the princess, turned the anger of the prince into the fear of God. Then Nicon, the holy one, was left in peace. Desiring to adorn the church with icons, Nicon implored God for assistance. As a result of his prayers, certain Greek iconographers unexpectedly came to Kiev from Constantinople. Saints Anthony and Theodosius had appeared to these iconographers in a vision and directed them to Nicon in Kiev. Nicon was praised because of his courageous asceticism and spiritual wisdom. In his old age Nicon became abbot of the Caves (Pecer) against his will. He reposed in the Lord in the year 1066 A.D. His incorrupt relics are persevered in the Monastery of the Kiev Caves.//)
--------------------
//) In the Greek Synaxarion and the Athonite Patericon, the New Martyr Luke, who was born in Jedren, is commemorated on this day. As a child he was captured in Constantinople by the Turks and circumcised. Because of this, he had bitter pangs of conscience. He considered circumcision the devil's mark on him, which could only be destroyed through martyrdom for Christ. Tonsured a monk on Mount Athos, he went with his Elder Bessarion to Mytilene. There he was hanged by the Turks on March 23, 1802. Hanging in the air, the body of the martyr emitted a fragrant myrrh.
! HYMN OF PRAISE
! SAINT NICON
Nicon languished in the dungeon,
And day and night he prayed to God.
He prayed to God not for his defense,
Nor for revenge against the wicked Quintianus,
But for strength, to endure sufferings.
God heard Nicon's sighings.
One time in prayer, Nicon had a dream:
The Virgin appeared to him in light
More beautiful and brighter than the sun,
Whiter and gentler than a lamb.
At her side were two archangels,
Their faces radiant and joyful;
With their height they reached the heavens.
One pointed out the river to the other:
"This is the raging River Psimif!"
Then one archangel said to the Virgin:
"We were sent to slay Quintianus
In the waves of the raging Psimif.
But, behold, we are looking at the river
And nowhere do we see Quintianus."
The Virgin spoke as if with honey flowing from her mouth:
"Soon he will come to the river;
He will attempt to cross through the waves,
But, beneath him, his horse will become maddened
And disfigure his face with its teeth.
The river will drown him,
And thus you will complete your task.
That will be the end of the evil torturer of Nicon, my saint."
All of this took place as the Virgin said;
Everything that Nicon dreamed became a reality.
! REFLECTION
St. Paphnutius prayed to God to reveal whom he (Paphnutius) resembled. He heard a voice which spoke to him: "You are similar to a merchant who seeks goodly pearls; arise and do not be idle!" But why does God not say to every one of us that we are like a merchant who seeks goodly pearls? Because many of us do not seek pearls, but rather bury ourselves under heavy layers of worthless dust. Not everything that the net raises up from the bottom of the sea is a pearl; sometimes it is only mud and sand. The ignorant vie for that mud and sand as though it were a pearl. Only the merchant who recognizes a true pearl casts the net into the sea an untold number of times. He hauls it up, sifts out the mud and sand, until he finds one seed pearl! Why does God compare Paphnutius to a merchant? Because Paphnutius gave away all of his possessions and invested all of his effort and time in order to find that one true seed pearl. That true pearl is a heart cleansed of all passions and evil thoughts and warmed by the flame of love toward God. You too arise, O man, and do not be lazy! Your marketing day is approaching its twilight.
! CONTEMPLATION
Contemplate the Lord Jesus crucified on the Cross:
# How His compassionate love for mankind did not diminish because of His sufferings;
# How, with love, He offered comfort to His mother, commending John to her as a son in place of Himself;
# How He prayed with love to the Father for mankind: //Father, forgive them, for they know not what they do// (Luke 23:24).
! HOMILY
! on the weakness of man before the majesty of God
"And when I saw Him, I fell at His feet as dead" (Revelation 1:17).
It was St. John who fell as though dead when he saw the Lord Jesus in glory. St. John--the Beloved Disciple of Jesus, the Evangelist, the chaste one, the one who loved the Lord, the zealot for holiness--could neither stand on his feet nor compose himself when he saw his Teacher in His heavenly glory and power! Instead he fell, as though dead. Therefore, how will they who sin against Him, rise up against Him, ridicule His name, despise His love and sacrifice, mock His cross, trample upon His commandments, persecute His Church, shame His priests, and kill His faithful, endure the presence of the Lord and His eyes like a fiery flame? What will happen to them before the face of the Lord if St. John fell as dead when he caught sight of Him? What will happen to educated men who corrupt others? What will happen to teachers who destroy the Faith in young souls? What will happen to skeptics who through their doubt poison the minds of men? What will happen to thieves and robbers, to the immoral, and to the child-killers? What will happen to the enemies of Christ if the friend of Jesus falls, as though dead, before His indescribable, effulgent (glistening) glory?
Such is the glory, power, authority, beauty, lordship, light and majesty of the Lord Jesus, resurrected and ascended, that His closest companions, who for three years on earth gazed upon His face without fear, now fall as though dead when they see His face in the heavens following His passion, death and victory!
O Lord All-glorious and Almighty, illuminate us and enliven us by Thy power and glory.
To Thee be glory and praise forever. Amen.
! SAINT ARTEMON, BISHOP OF SELEUCIA
Artemon was born and educated in Seleucia. When the Apostle Paul came to that city, he met Artemon, further strengthened him in the Christian Faith, and appointed him bishop of that city. Artemon governed his entrusted flock with love and zeal. He was a physician of the souls as well as the bodies of men. He entered into eternity in ripe old age.
! THE VENERABLE JAMES THE CONFESSOR
James suffered while defending icons under Emperor Leo the Armenian. He was a monk and a member of the brotherhood of the Studite Monastery. When the great Theodore the Studite was in exile, James was subjected to severe tortures so as to persuade him to renounce the veneration of icons. To the end he remained steadfast and faithful to Orthodoxy. Beaten and tortured, he was finally sent back to the monastery after the wicked Emperor Leo came to a wretched end. As a result of his severe injuries, he died in the monastery and took up his habitation among the citizens of heaven.
! THE HIEROMARTYR [PRIESTLY-MARTYR] PARTHENIUS, PATRIARCH OF CONSTANTINOPLE
Parthenius was born on the Island of Mytilene. He was the bishop of Chios for a long time. Later he was elected patriarch of Constantinople. Because of false rumors that he worked against the state, the Turks initially attempted to force him to become a Moslem. When he adamantly refused, they hanged him in the year 1657 A.D.
! COMMEMORATION OF THE MIRACLE IN THE MONASTERY OF THE KIEV CAVES
Two companions, John and Sergius, swore an oath of brotherhood before an icon of the Holy Mother of God in this monastery. John was a wealthy man, and had a five-year-old son Zacharias. John became very ill. Before his death, John commended his son to the care of Sergius and bequeathed a large amount of gold and silver to him for safekeeping, to be given to his son when he reached maturity. When Zacharias reached maturity, Sergius denied that he had received anything from the deceased John. Then Zacharias said: "Let him swear before that very icon of the All-holy Theotokos, before whom he entered into a blood-brother relationship with my deceased father. If he swears that he did not receive anything from my father, John, then I will not seek anything from him." Sergius agreed. When Sergius swore this, he tried to venerate the icon, but a force held him back and would not allow it. Sergius then began to cry out in a crazed manner to the Holy Fathers Anthony and Theodosius: "Do not allow this merciless angel to destroy me!" This was the demon that attacked him by God's permission. After that, Sergius showed them all the money that John had entrusted to him. When they opened the chest, they discovered that the amount had doubled by God's providence. After receiving the money, Zacharias gave it to the monastery and was then tonsured a monk. Zacharias lived for a long time and was made worthy of God's great gifts, and entered peacefully into eternity.
! THE VENERABLE ZACHARIAS [OF EGYPT]
Zacharias was the son of Carion the Egyptian. Carion left his wife and children and became a monk. He took Zacharias with him because the child's mother was unable to care for him. Even though Zacharias was younger than most of the elders in Scetis, he was favored with greater gifts of grace than many others. He felt that his whole being was on fire with the grace of God. To the question of St. Macarius, "Who is the ideal monk?" Zacharias replied, "He who continually compels himself to fulfill the commandments of God." To the question of Abba Moses, "What does it mean to be a monk?" Zacharias removed his kamilavka [hat] and trampled it underfoot, saying, "If a man is not broken like this, he cannot be a monk." He was a great light among the monks of the wilderness and, while still young, reposed in the Lord.
! HYMN OF PRAISE
! VANITY
What is the worth of man, Thou didst ask, O Lord,
That he acquires the whole vast world as his property,
When today or tomorrow he must die,
And the accumulated wealth will outlive him?
What worth is it that he sets a crown upon his head,
When he must leave it behind him?
What good to him is gold and a pile of silver,
When grass grows through his withered ribs?
What good are silk, pearls and food,
When the sun does not gaze upon him living?
Of what help is the world, if he loses his soul?
Without the soul, the body is lowered into the grave.
His body and soul--both have died,
And to the grave each of them hurries.
Then men bury the two lifeless ones;
For neither of them do men bitterly mourn.
Let him who has understanding guard his soul.
Thou gavest to all a clear reminder:
The soul is the only thing that can be saved;
All else in the world, and even the world itself, will perish.
We know Thy counsel, O dear Lord,
Yet we need Thy power and help.
Help our sinful souls, O Good One,
That the smoke of vanity not suffocate them.
! REFLECTION
Abba Daniel and Abba Ammoe were traveling. Abba Ammoe said: "Father, when will we arrive at the cell?" (that is, so that they could pray to God). Abba Daniel replied: "And who is taking God away from us now? The same God is in the cell and outside the cell..." By this we are taught unceasing prayer, contemplation of God, and meditation on God's works in us and around us. The church building facilitates prayer and strengthens it, as also withdrawal and solitude in their way facilitate and strengthen it. He who does not want to pray will not be bound to pray either by a church or a cell. Neither will he who has felt the sweetness of prayer be able to separate his nature or his journeyings from prayer.
! CONTEMPLATION
Contemplate the Lord Jesus crucified on the Cross:
# Counting the drops of His All-holy Blood and counting my sins;
# Counting His painful sighs, and counting the mindless days of my laughter.
! HOMILY
! on faithfulness in suffering and the crown of life
"Fear none of those things which thou shalt suffer... Be thou faithful unto death, and I will give thee a crown of life" (Revelation 2:10).
By His suffering our Lord eased our suffering. He endured the greatest of pain and emerged as the Victor. That is why He can encourage us in our lesser sufferings. He suffered and endured in righteousness while we suffer and endure in expiating our own sins. This is why He can doubly remind us to endure to the end as He, the Sinless One, endured. Not one of us helped or alleviated His pains and endurance, yet He stands beside each one of us when we suffer and He alleviates our pains and misfortunes. That is why He has the right to tell each one who suffers for His name's sake: "Do not be afraid! Do not be afraid of anything that you are going to suffer, for I alone have endured all sufferings and am familiar with them. I was not frightened by a single suffering. I received them upon Myself, and in the end I overcame them all. I did not overcome them by dismissing them or fleeing from them but by receiving them all upon Myself voluntarily and enduring them all to the end. And so you also should accept voluntary suffering, for I see and know how much and how long you can endure.
"If your suffering should continue until death itself and if it should be the cause of your death, nevertheless, do not be afraid: //I will give thee the crown of life.// I will crown you with immortal life, in which I reign eternally with the Father and the Life-giving Spirit."
God did not send you to earth to live comfortably, but rather to prepare you for eternal life. It would be a great tragedy if your Creator were unable to give you a better, longer, and brighter life than that which is on earth, which reeks of decay and death and is shorter than the life of a raven.
O my brethren, let us listen to the words of the Lord and all of our sufferings will be alleviated. If the blows of the world seem as hard as stones, they will become as the foam of the sea when we obey the Lord.
O Victorious Lord, teach us more about Thy long-suffering. And when we become exhausted, extend Thy hand and sustain us.
To Thee be glory and praise forever. Amen.
! THE ANNUNCIATION
When the All-holy Virgin had completed the fourteenth year after her birth and was entering her fifteenth year, after having spent eleven years of living and serving in the Temple of Jerusalem, the priests informed her that, according to the Law, she could not remain in the Temple but was required to be betrothed and enter into marriage. To the great surprise of the priests, the All-holy Virgin answered that she had dedicated her life to God and that she desired to remain a virgin until death, not wanting to enter into marriage with anyone! Then according to God's providence and inspiration, Zacharias, the high priest and father of the Forerunner, in agreement with the other priests, gathered twelve unmarried men from the tribe of David, so that they might entrust the Virgin Mary to one of them to preserve her virginity and care for her. She was entrusted to Joseph of Nazareth, who was her kinsman. In the house of Joseph, the All-holy Virgin continued to live as she did in the Temple of Solomon, occupying her time in the reading of sacred Scripture, in prayer, in godly thoughts, in fasting, and in handiwork. She rarely went anywhere outside the house and was uninterested in worldly matters and events. She spoke very little to anyone, if at all, and never without special need. She most often associated with Joseph's two daughters. When the fullness of time had come, as prophesied by Daniel the Prophet, and when God was pleased to fulfill His promise to the banished Adam and to the prophets, the great Archangel Gabriel appeared in the chamber of the All-holy Virgin. This occurred, as some Church writers have related, precisely at the same moment that she held open the book of the Prophet Isaiah and was contemplating his great prophecy: //Behold, a virgin shall be with child, and bear a son!//(Isaiah 7:14). Gabriel appeared in all of his angelic brightness and saluted her: //Rejoice, thou that art highly favored, the Lord is with thee!// (Luke 1:28), and the rest, as it is written in the Gospel of the blessed Luke. With this angelic annunciation and the descent of the Holy Spirit upon the Virgin, the salvation of mankind and the restoration of all creation began. The history of the New Testament was opened by the words of the Archangel Gabriel: //Rejoice, thou that art highly favored.// This shows that the New Testament signified joy to mankind and to all created things. Therefore the Annunciation is considered not only a great feast but also a joyful feast.
! THE HOLY FEMALE MARTYRS PELAGIA, THEODOSIA AND DULA
These three holy women suffered for the Lord. After imprisonment and torture both Pelagia and Theodosia were beheaded. St. Dula, who was a servant girl, suffered alone in the city of Nicomedia. These three white roses, watered by the blood of the martyrs, were transplanted by God into His heavenly garden.
! HYMN OF PRAISE
!
! THE MOST-HOLY MOTHER OF GOD
(The Theotokos)
OH, WHAT WONDERFUL NEWS: REJOICE, ALL-PURE ONE,
FOR US THOU GAVEST BIRTH TO CHRIST!
OH, JOYFUL NEWS: REJOICE, O VIRGIN,
RADIANT DOVE!
REJOICE, O MARY, REJOICE, THOU WHO ART FULL OF GRACE,
THOU WHO ART THE GOLDEN GATE!
O BURNING BUSH, UNCONSUMED,
THE DAWN OF NEW SPLENDOR!
GABRIEL COMPOSES THE WORDS, AND HE HIMSELF REJOICES;
THE ANNUNCIATION HE PROCLAIMS!
PROCLAIMS THE ANNUNCIATION: ALL OF HEAVEN LISTENS;
THY SOUL TREMBLES!
THE TEMPLE DIDST THOU SERVE, THOU DIDST CONSECRATE THYSELF TO GOD,
THOU BECAMEST A TEMPLE!
REJOICE, O ALL-PURE ONE, HEAVENLY BRIDE,
THOU ART THE ROYAL THRONE!
REJOICE, O MEEK ONE: TO THE HUMBLE ONE WILT THOU GIVE BIRTH,
AND REGENERATE THE WORLD!
REJOICE, O OBEDIENT ONE: GOD HEARD THEE
AND CROWNED THEE WITH GLORY!
REJOICE, O TEARFUL ONE: BY TEARS SOFTENED,
LUMINOUS IN THE SPIRIT!
REJOICE, O POOR ONE, BUT THE WEALTHIEST ONE
AND BRIGHTER THAN THE SUN!
ENTREAT JOY FOR US FROM CHRIST THY SON,
O VIRGIN, ALL-PURE ONE!
! REFLECTION
Abba Athanasius was once asked: "How is it that the Son is equal to the Father?" He answered: "Just as there are two eyes but one sight." The response is admirable. To this we can add: just as there are two ears but one hearing. Similarly for all three Divine Hypostases: just as there are three candles but there is one and the same light.
! CONTEMPLATION
Contemplate the All-holy Virgin Mary:
# How she served God for eleven years in the Temple in humility, obedience and devotion;
# How she served God in her chamber in Nazareth, in humility, obedience and devotion;
# How in humility, obedience and devotion she received the Divine Annunciation from the Archangel Gabriel.
! HOMILY
! on the omnipotent Word of God
"For with God nothing will be impossible God" (Luke 1:37).
//Then God said, Let there be light, and there was light// (Genesis 1:3). Until God spoke, there was no light. Nor was there anyone who could know what light was until God spoke and light came into being. In the same manner, when God spoke, water and the dry land, the firmament of the heavens, vegetation, animals and finally man came into existence. Until God spoke, none of this existed, and except for God no one could know that all of this could exist. By the power of His Word, God created all that is created on earth and in the heavens. Whatever God wanted to exist and called into being, that had to be and could not but have been, for the Word of God is irresistible and creative. The creation of the world is a great miracle accomplished by the Word of God. Having created all things, God again, by His Word, established the order of creation and the manner of behavior and relationship of creatures one with another. This order and manner which God established is a great miracle accomplished by God's Word.
There exists an order and manner among created things that is visible and comprehensible for us people; and there also exists an order and manner that is invisible and incomprehensible. According to that invisible and incomprehensible order and manner, which is a mystery hidden in the Holy Trinity, there have occurred and are occurring those manifestations that people call miracles. One such manifestation is the conception of the Lord Jesus Christ in the womb of the All-holy Virgin Mary, who had not known man. This appears like an interruption in the visible and comprehensible order and manner, but it is never an interruption for the invisible and incomprehensible order and manner. This birth is truly a great miracle; perhaps the greatest miracle that was ever revealed to us mortals. The entire created world is a miracle, and all the visible and comprehensible order and manner is a miracle, and altogether these miracles came about by the Word of God. Therefore, much in the same way, the Lord was conceived in the Virgin's womb. All were brought about by the power and Word of God. That is why the wonderful Gabriel replied to the question of the All-pure one (a question asked by all generations: //How shall this be?//[Luke 1:34]): //For with God nothing shall be impossible// (Luke 1:37).
O Lord God, our Creator, Immortal and Ever-existing Miracle-worker, enlighten our minds that we no longer doubt, but believe; and direct our tongues not to question Thee, but to praise Thee.
To Thee be glory and praise forever. Amen.
! THE HOLY ARCHANGEL GABRIEL
Gabriel is the herald of the Incarnation of the Son of God. He is one of the seven archangels who stand before the throne of God. He appeared to Zacharias to announce the birth of the Forerunner. Gabriel said of himself: //I am Gabriel, that stand in the presence of God// (Luke 1:19). His name Gabriel means "man-God." The Holy Fathers, in speaking about the Annunciation, comment that an archangel with such a name was sent to signify Who He was, and what He would be like, Who would be born of the All-pure One. He would be the God-man, the mighty and powerful God. Some of the Fathers understood that this same Gabriel appeared to Joachim and Anna concerning the birth of the Virgin Mary, and that Gabriel instructed Moses in the wilderness to write the Book of Genesis. The Holy Fathers say that Gabriel belongs to the first and greatest order of heavenly powers, that is, the Seraphim, since the Seraphim stand closest to God. He is, therefore, one of the seven Seraphim closest to God. The names of the seven are Michael, Gabriel, Raphael, Uriel, Salathiel, Jegudiel, and Barachiel. To this number some add Jeremiel. Each one has his own particular service and all are equal in honor. Why did God not send Michael? Because Michael's service is to suppress the enemies of the Faith of God, while Gabriel's is the mission of announcing the salvation of mankind.
! HIEROMARTYR [PRIESTLY-MARTYR] IRENAEUS OF SREM
It is thought that Irenaeus was a Slav. He was married and had children prior to becoming a bishop. During the reign of Maximian, he suffered for Christ. During his terrible sufferings, his relatives stood around him crying and begged him to spare himself and them--that is, to deny Christ. But this wonderful hieromartyr loved the wounds he received for Christ more than all the riches of this world. At the same time Seren, a certain gardener in Srem, also suffered at the hands of Prince Probus, and Afrius suffer in Regia. Because Irenaeus did not want to deny his faith, Prince Probus ordered that he be hurled from a bridge into the Sava River, where this shepherd of Christ's flock died, taking up his habitation among the citizens of heaven. He honorably suffered in the year 304 A.D.
! THE VENERABLE MALCHUS
Malchus was a farmer from the vicinity of Antioch, and from his youth his entire soul was directed toward God. The Arabs enslaved him, and while he was in slavery they forced him to take a black woman for a wife. He converted her to the Christian Faith and they lived together as brother and sister. Conspiring together, they escaped from bondage, but the Arabs almost overtook them. They found shelter in a cave in which there was a lioness with her cubs, and they became frightened. But God protected them. The lioness did not harm them but killed an Arab who tried to enter the cave to capture the runaways. When they reached Malchus's home country, he gave his wife over to a convent and he himslef entered a monastery. He lived many years in asceticism and took up his habitation among the citizens of heaven in the fourth century.
! THE VENERABLE BASIL THE NEW
Basil first lived in the forest without shelter or hearth. When he was captured, he was questioned: "Who are you?" He replied: "One of those living on earth." Suspecting him of being a spy, they tortured him greatly. In the end, he lived for many years in freedom in Constantinople. He saw into all men's secrets, foretold the future, and worked great miracles. His novice was the eldress Theodora. After her death she appeared to Basil's novice Gregory and described to him the twenty toll-houses [Mitarstvo] through which every soul must pass. On March 25, 944 A.D., St. Basil reposed peacefully and took up his habitation with the wondrous heavenly company. After his death he was seen in great glory by a citizen of Constantinople.
! HYMN OF PRAISE
! THE ARCHANGELS
Golden-headed seven, of angelic rank,
Seven archangels, the highest spirits:
Michael, the sword against adversaries, is the first;
By the sword he renders payment to those who wage war against God.
Gabriel is the herald of God's Incarnation,
The all-wondrous recorder of human salvation.
Raphael, like a sun, is the servant of the Trinity;
He is the physician of vast human afflictions.
Uriel is the radiant light of God,
The enlightener of human souls.
Selathiel, the intercessor, offers up prayers,
And brings the prayers of the people before God.
Jegudiel, glorifier of God the Almighty,
Encourages the willing man to glory.
Barachiel, dispenser of the blessing of heaven,
Gives men what they need from God.
! REFLECTION
When a miracle occurs, do not be confused by it, but rejoice. God has placed His finger there to reward, or punish, or encourage His faithful, or to lead sinners on the path of salvation.
People frequently compare this world to a locomotive. When you see a locomotive or another steam engine, you know that there is an engineer within it. That does not surprise you, does it? If the engineer puts his head out of the cab, waves his hand, extends a rod, waves a handkerchief, tosses out a letter, or makes some other sign, you know that this does not interfere with the operation of the locomotive and does not damage one rivet in it. Why, then, do the faithless say that God with His miracles interferes with the movement of earthly machines? Why? Because thet are dim-witted (unreasonable). The faithful rejoice at God's signs. A child is frightened at a locomotive but rejoices when a man, resembling himself, appears from it. Oh, how dear it is to us when, from this mute universe which hurtles around us, someone resembling us appears and that someone is one who recognizes and loves us! When a miracle occurs, know that He Who resembles us greets us and says: "Do not be afraid, I am behind all of this." St. Basil the New worked many miracles. Through prayer he healed the sick and discerned the fate of people like an open book. Through His chosen ones, God has always demonstrated His love and power to men in order to firmly establish the faithful in the Faith, and to shame the unfaithful and return them to the Faith.
! CONTEMPLATION
Contemplate the Lord Jesus crucified on the Cross:
# How He used the last breath of life and saved a thief on the Cross;
# How He commended His soul into the hands of the Father: //Father, into Thy hands I commend My Spirit// (Luke 23:46).
! HOMILY
! on the imminence of the coming of the Lord
"Behold, I come quickly" (Revelation 22:7).
Unbelievers and those who are perishing in spirit will say: "Nearly two thousand years ago He promised that He would come, and He has not come yet!" This is how they laugh--those who will lament in eternal torment. But we who are prepared for happiness in His Kingdom know that He will come in power and glory just as He promised.
We know that He has already come countless times and showed Himself to His faithful ones. Did He not come to John the Divine, to whom He spoke these words: //Behold, I come quickly//(Revelation 3:11)? John saw Him in power and glory, and felt His hand on him when he was frightened, and fell before His feet as dead: //And He laid his right hand// upon me (Revelation 1:17). Did He not come to Saul, when he breathed hatred against the Christians and when on the road to Damascus he fell on the ground, seeing the Lord and hearing His voice saying: //Saul, Saul, why persecutest thou Me// (Acts 9:4)? And again, did He not enter into the heart of the Apostle Paul when he recognized that //nevertheless I live; yet not I, but Christ liveth in me// (Galatians 2:20)? Did He not come to the countless martyrs, both male and female, who suffered for His name, to encourage them, to heal them, and to have mercy on them? Did He not come to Anthony the Great, Theodore Stratelates, St. Charalampus, St. Marina, St. Sylvester and many, many more?
But what are we saying? Did He not return from the kingdom of death on the third day and appear before the apostles? Did He not come to the aid of the Church many, many times? And did He not resurrect her as from the dead whenever her enemies rejoiced, thinking that they had given His Church over to death forever? Did He not manifest His power in the Church in the time of Nero as well as in the time of Constantine; in the time of Julian, as well as in the time of Justinian; in the time of Arab tyranny, as well as in the time of the Turkish and Mongolian oppression of Christians?
O my faithful brethren, do not submit to deception. He came countless times and comes even today. He comes to every soul that is accessible, regardless of impurity. However, we are all waiting for Him to come for the last time in power and glory. We know that His coming is certain. O Lord Most-gracious, before Thou comest, make us worthy to recognize Thy face and to be ashamed of our own faces, darkened by sin.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR MATRONA
An orphan, Matrona was a servant in the home of a Jew in Thessalonica. The wife of the Jew continually mocked Matrona for her faith in Christ. She tried to persuade her to deny Christ and attend the synagogue. But the meek Matrona went about her work conscientiously and said nothing to her mistress. In secret she prayed to Christ the Lord. On one occasion the Jewess discovered that Matrona was attending church unbeknownst to her. In anger, she asked her why she did not attend the synagogue rather than the church. To this Matrona replied: "Because God lives in the Christian churches, and He withdraws from the Jewish synagogues." Furious at this bold reply, the Jewess beat Matrona, locked her up in a dark room, and bound her hands. The next day as Matrona was kneeling in prayer and glorifying God, her ropes fell off by the power of God. On two more occasions she was locked up again. In the end she died of starvation. This evil Jewish woman then took the body of the holy maiden and hurled it to the ground from the roof of her home. Christians took the martyr's body and buried it with honor. Bishop Alexander, learning of the many miraculous works of this holy martyr, erected a church over her grave. The evil Jewess received her just punishment: when standing at the same spot from which she had hurled Matrona's body down, she slipped, fell to the pavement, and was smashed to death.
! THE VENERABLE JOHN THE CLAIRVOYANT
John was a carpenter until his twenty-fifth year and then, driven by an insatiable desire for constant prayer, he withdrew into the wilderness. There he lived until his death at age ninety. He was a corporeal man but lived as an incorporeal being. He discerned the heart of every person who came to him and knew his name, his desires, and his thoughts. He prophesied the outcome of his battles to Emperor Theodosius. He prophesied for generals, monastics, and for all who found it necessary to know what was hidden for them in the darkness of future days. A prince once begged John to receive his wife, who especially wanted to meet him. The saint refused to satisfy idle curiousity but appeared to the wife of the prince in a dream, showing her his appearance. When the woman described her vision to her husband, he confirmed that, indeed, this was the likeness of the saint. To every visitor, he taught humility as the basis of the virtues, always citing examples from life of how pride has brought many exalted men down to the dust and led them into serious sins. He endured many assaults of evil spirits. On one occasion, Satan appeared to him with a myriad of demons under the guise of shining angels. They pressured him to worship Satan, whom they represented as Christ. But John answered wisely, "I bow down and worship my King, Jesus Christ, everyday. If that were He, He would not demand me to do so now, especially since I already worship Him." Following these words, the evil powers vanished like smoke. He reposed peacefully, kneeling in prayer, in his ninetieth year.
! THE VENERABLE PAPHNUTIUS
Paphnutius was a disciple of St. Anthony the Great. By his sanctity of life, Paphnutius converted many sinners to the path of repentance, such as St. Thais, who is commemorated on October 8. Paphnutius resembled an incorporeal angel more than a man. He died near the end of the fourth century.
! HYMN OF PRAISE
! VENERABLE JOHN THE CLAIRVOYANT ON HUMILITY
John the Clairvoyant, teacher of humility,
Spoke of humility with tears of joy:
"O beloved children, right-believing children,
The humbler you are, the more dear to God.
Asceticism without humility helps not at all;
The arrogant one offers his soul to the devil.
If you empty your soul of self,
The Living God will fill you.
Who is more humble than God Himself?
Nowhere does He emphasize His precedence.
In secret, without clamor, He directs the world,
Therefore the feeble-minded think He does not even exist.
If the wind would not blow, or shriek, or howl,
The feeble-minded would also deny it exists!
He who has humility reproves himself;
He easily succeeds in every virtue.
Humility is nothing more than poverty of spirit;
That is the Savior's blessed teaching:
Have no hope in yourself,
And place all your hope in God.
That is holy humility. Whoever violates it
Prepares the darkest destruction for his soul.
The thoughts of all the saints are strict in this:
Without great humility, no one is saved!
Joyous is the humble one, for God rules with him.
O beloved children, being humble is akin to being saved!"
! REFLECTION
"There is no cleanness in him who thinks evil," says St. Simeon the New Theologian; and he further adds: "How can there be a pure heart in one who soils it with impure thoughts as a mirror is darkened by dust?" Do you see, then, the inaccessible height at which Christianity stands above all other faiths and worldly sophistries? He who but thinks about evil, even though he does not commit any evil, is at fault before God and his own soul. For he offends God and loses his soul. To be a Christian, in the proper sense, means to invest enormous effort on cleansing evil thoughts from one's heart and mind. What kind of effort? There exists a vast amount of teaching about this--which in our days has become almost completely locked away, even from Christians--and an enormous wealth of actual experience on the part of holy men and women who justified that teaching. To cleanse oneself from wicked and impure thoughts, the root of all evil, was the goal of all the great ascetics, hermits and hesychasts (silentaries).
! CONTEMPLATION
Contemplate the Lord Jesus in death:
# How He Who raised the dead hung on the Cross, a lifeless body;
# How He died for our sake, so that we would have more abundant life, and more abundant truth about immortal life.
! HOMILY
! on Christians as kings and priests
"And hast made us unto our God kings and priests" (Revelation 5:10).
The Lord Jesus wants to make all men like unto Himself. As the Son of God, He wants all men to become the adopted sons of God. As a King, He wants them to rule with Him. As a Priest, He desires that all should be fellow priests with Him; as Almighty, that all should share in His strength; as Eternal, that all should share in His immortality; as Holy, that all should share in His holiness; and as the Resurrected One, that all should be the children of the Resurrection. This the Lord desired, and that is why He descended to earth: to separate us from the animals, to elevate us above the life of the animals, and to give us dignity over His visible creation, a dignity which Adam had in Paradise before the Fall.
Because of this, His love for mankind and His plan for salvation for all people, the Lord was crucified on the Cross by the Jewish elders. And He reaps the thorns of ingratitude and misunderstanding countless times, even from us Christians today. We show ourselves to be ungrateful and unreasonable whenever we undermine and trample His commandments. By his sins, every sinner plaits a new wreath of thorns and places it on His sacred head. When did He ever offend us, that we should do this to Him? When did He ever think evil about any one of us, that we should return Him evil? He lowered Himself into our foetid pit, where we have become accustomed to live with snakes and scorpions, and pulled us up to the heights, to light and purity in the Kingdom. He wants to make us kings and priests, but we drive away His saving hand and return to the pit with snakes and scorpions.
O brethren, this humiliation of Him and destruction of ourselves is enough and more than enough! Let us firmly grasp the hand of our Savior and follow Him. He desires good for us. He does good for us. For our good, He suffered. He is our One and Only Friend, Who does not change.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MARTYR EUSTRATIUS OF THE MONASTERY OF THE KIEV CAVES
Eustratius was very wealthy, but being moved by love for Christ he distributed his entire estate for the sake of Christ, and entered the Monastery of the Caves (Pecer), and was tonsured a monk. When the Polovtsians waged war against Kiev in 1097 A.D., they plundered the monastery and slew many Christians, including monks. Eustratius and some of the faithful were sold as slaves to a Jew in the city of Cherson. This Jew ridiculed the Christian Faith and tried to coerce the Christians into embracing the Jewish religion. Seeing that they had no other alternative, they all agreed to starve themselves to death rather than deny the true Faith. Eustratius encouraged the Christians to follow that decision. They all died of hunger--some after three days, some after four, and some after seven. Being accustomed to fasting, Eustratius was the only one to remain alive--enduring fourteen days without food. The Jew, angered because he had lost the money he had used to purchase the slaves, took out his revenge on Eustratius by nailing him to a cross. Eustratius praised God from the cross and prophesied a severe and imminent death for the Jew. Wild with rage, the Jew pierced him with a spear. The saint of God gave up his soul to his Savior. His body was thrown into the sea, but it floated to the surface. Great miracles occurred over this martyr's body. Shortly after the death of Eustratius, the Byzantine emperor decreed that the Jews of the city of Cherson be punished for their wickedness toward Christians. This tormentor of Christians was hanged on a tree and received the reward of Judas.
! THE VENERABLE HILARION THE NEW CONFESSOR
Hilarion was the abbot of the Monastery of Pelekete, near the Hellespont. He shone like the sun with the spirit of God, healed people and expelled evil spirits. This man of God suffered at the time when Leo the Armenian began the iconoclastic persecution. With forty of his monks, Hilarion was sent into exile near Ephesus and died there in prison. He took up his habitation in the Kingdom of Christ in 754 A.D.
! THE VENERABLE HESYCHIUS OF JERUSALEM
A presbyter and profound theologian, Hesychius was a disciple of St. Gregory the Theologian and a contemporary of St. Euthymius the Great. One should read his well-known work, "On Sobriety and Prayer." He reposed peacefully in the year 434 A.D.
! THE HOLY MARTYR BOYAN, BULGARIAN PRINCE
Boyan was the son of Krutogan and the nephew of Grubash. Boyan confessed his faith in Christ; however, his brother Milomir was a pagan. By decree of his brother, Boyan was beheaded for the true Faith in the year 827 A.D.
! THE MIRACULOUS EXPERIENCE OF TAXIOTIS
Taxiotis was a soldier from Carthage. He spent his whole life in grievous sins but finally repented, left the military service and lived a God-pleasing life. While with his wife on his estate near the city, he committed adultery with the wife of his farm worker. Immediately afterward, he was bitten by a snake and died. Taxiotis was dead for six hours, after which he arose. On the fourth day, he finally spoke and related how he had passed through all of the toll-houses until he came to the toll-house for adultery. There he fell into the dark abode of demons, but was led out by an angel who vouched for him. He was then sent back to his body to repent for his latest sin. He repented for forty days, going from church to church, beating his head against the doors and thresholds, crying and telling of the terrible sufferings which sinners undergo in the other world. He implored men to cease from sin and to repent for those sins already committed. On the fortieth day, with rejoicing, Taxiotis took up his habitation in the Kingdom of the Merciful God.
! HYMN OF PRAISE
! TAXIOTIS THE SOLDIER
Throughout all of Carthage, Taxiotis sobbed,
Recounting to everyone the horrors he had seen:
"Oh, the horrors my soul saw, my brethren!
Oh, the malodorous abyss to which my soul descended!
Oh, the terrible monsters, and mire and shrieks!
Oh, the weeping without tears, wailing and screaming!
Not six hours, but a hundred years
Did I think that I was an inhabitant in the world of hades!
Until a radiant angel offered a pledge for me.
He raised me up and lowered me near Carthage,
That I, clothed again in the body (he said),
Might repent for my latest misdeed.
When I gazed upon my body, a stinking corpse,
My strength left me and my joy perished:
Oh, how can I enter this stinking corpse?
How can I be clothed in this loathsome carrion?
Oh how, until now, could I have remained therein,
To lose my soul for the sake of pleasure, that dung?
O radiant angel, spare me the pain,
Force me not back into that foetid shame!
At my cry the angel became angry:
He who sins in the body must repent in the body!
This he said sternly, and added:
Will you enter your body, or will you enter hades again?
When he made mention of hades, I fell painfully silent,
I rapidly approached my body and into it crawled.
Forty days for repentance have I,
And a lesson to all, and a warning.
Repent, O brethren, quickly repent;
Do not stumble with your sins into hades.
Repent quickly--only repent.
Repentance will not be allowed you there.
Taxiotis is relating to you what he himself saw--
Oh, the foetid abyss into which my soul has descended!"
! REFLECTION
In speaking about a handsome twenty-year-old youth named George--who, despite his beauty, youth and life among the conceited of the world, recognized the path of salvation and was enlightened by spiritual wisdom--St. Simeon the New Theologian concludes with these words: "Do you understand how youth does not hinder nor does old age help a man, if he does not have reason and the fear of God?" What prevented the young Apostle John from believing in Christ the Lord? What were the benefits of age to the Jewish elders when they were blinded in mind and in their blindness sentenced the Son of God to death? Youth in absolutely no way prevents the young, even in our time, from giving their faith and love to Christ, who created them out of love. Age does not benefit the aged in our time if their souls are poisoned with maliciousness toward Christ. Young and old bodies are nothing more than new and old garments of the soul. Either of these garments can conceal a healthy or a sick soul. Our goal is a healthy and clean soul.
! CONTEMPLATION
Contemplate the Lord Jesus in death:
# How all of nature trembled when He gave up the spirit, as though to protest against this criminal act of the race of men;
# How the earth quaked, the sun was darkened, the rocks were split, the veil of the temple was rent, and the graves were opened.
! HOMILY
! on the horror of nature at the death of Christ
"The earth did quake, and the rocks rent" (Matthew 27:51).
Oh, what a terrible reproach against mankind! Even dead nature recognized Him Whom men were unable to recognize. All mute things trembled and began to protest, each in its own way and in its own language. The mute earth quakes--that is its language. The stones are split apart--that is their language. The sun withholds its light--that is its language. All of creation protests in its own way. All of creation is submissive to Him as it was to Adam at one time in Paradise, because all of creation recognizes Him as it did Adam in Paradise. How is it that irrational creation knew Him and was obedient to Him, we do not know. It is some kind of inner instinct of irrational creation, which came to it from the Word of God, by Whom it was created. That instinct of irrational creation is more valuable than the mind of man when the latter is darkened by sin. Of all the things that are in existence, nothing is more blind than the mind of man when darkened by sin. Not only does man fail to see that which was created to be seen, but also he sees that which is contrary to being, contrary to God, and contrary to the truth. These are the degrees of blindness beyond blindness; these are numbers below zero. This is man lower than creation. For when the priests of God in Jerusalem did not recognize their God, the storms and winds recognized Him; plants and animals recognized Him; the seas, the rivers, the earth, the stones, the stars, the sun and even the demons recognized Him. Oh, what shame this is for mankind!
The earth quaked, the rocks split and the sun hid its rays, as much in anger as in sorrow. All creation grieved over the pain of the Son of God, over Whose pain the priests in Jerusalem rejoiced. Protests, sorrow--and fear! The whole of creation was frightened at the death of Him Who had cried to it:
"Arise from nothing and rejoice in your existence," as though it wanted to say: "With whom do we remain, and who will now uphold us, now that the Almighty has given up the spirit?"
O brethren, let us be ashamed of this protest, these sorrows and this fear of the mute creation! With repentance let us cry out to the Lord, the Victor: "Forgive us, O Compassionate Lord, for indeed, whenever we sin and offend Thee, we do not know what we are doing."
To Thee be glory and praise forever. Amen.
! SAINT MARK, CONFESSOR AND BISHOP OF ARETHUSA IN SYRIA
We are told about Mark's suffering by St. Gregory the Theologian and by Blessed Theodoretus. According to these reports, during Emperor Constantine's reign, Mark destroyed a pagan temple and converted many to the Christian Faith. When Julian ascended the throne and shortly thereafter apostatized from the Faith of Christ, some citizens of Arethusa also denied Christ and reverted to paganism. Then they rose up against Mark because he had destroyed their temple, seeking that he either rebuild the temple or pay a large sum of money. Since the aged Mark refused to do either of the two, he was flogged, mocked and dragged through the streets. After that they severed his ears with a fine but strong thread. They then stripped him, smeared him with honey, and left him tied to a tree in the heat of summer to be bitten by wasps, mosquitoes, and hornets. The martyr of Christ endured all without complaint. Mark was very old, but his countenance shone like an angel. The pagans reduced the price for their temple even more and finally sought from Mark an insignificant sum. This he could have easily given, but he refused to give even one coin for this purpose. His patience made an enormous impression on the citizens, gaining him their admiration and pity. They then lowered the cost of the temple to practically nothing, in order to allow him to live. Finally they permitted him to go free, and one by one they all received instruction from him and returned to the Christian Faith. At the same time, in the city of Heliopolis at the foot of Mount Lebanon, the deacon Cyril suffered for a similar act. During the time when Christianity enjoyed freedom, Cyril destroyed some idols, and was later brutally tortured under Julian the Apostate. So embittered were the pagans against him that, when they killed him, they ripped him open with their teeth and tore out his entrails. The same day on which St. Cyril suffered, many others also suffered. The spiteful pagans carved their bodies into pieces, mixed them with barley and fed them to the swine. Punishment reached them swiftly: all of their teeth fell out and an unbearable stench came forth from their mouths.
! THE VENERABLE JOHN THE HERMIT
John was the son of Juliana, a Christian woman in Armenia. As a young boy, he left his mother and withdrew into the wilderness, completely aflame with love for Christ the Lord. In the wilderness, he first surrendered himself to the guidance of a spiritual director, Pharmutius, who had been found so worthy before God that an angel brought him bread daily. Later, the young John departed and withdrew into solitude. He lowered himself into a dry well, where he spent ten years in fasting, prayer and vigils. St. Pharmutius brought bread from the angel and gave it to him. So that the young John would not become proud, the angel of God did not give bread to him personally, but rather through his spiritual father Pharmutius. After ten years of difficult ascetic labors in the well, St. John reposed in the Lord. His relics revealed themselves to be wonderworking. He lived and was glorified by God and men in the fourth century.
! HYMN OF PRAISE
! THE LORD, HERO OF HEROES
The Heroic Lord gathers all heroes,
All who can maintain the Faith
And remain faithful to God unto death,
And who can endure sufferings,
Offering thanksgiving to God,
Being proud of their sufferings;
And who can forgive others,
And receive insults as praise;
And who can still instruct others
To return from the sinful path to righteousness
With a sorrowful, compassionate soul;
And who can be merciful,
And rejoice in the joy of others,
And cry with a weeping heart;
And who can restrain themselves
From evil deeds, words and thoughts,
From over-indulging in drink and food;
Who do not please their bodies,
But consider them to be temporary chariots
From which they struggle on the battlefield,
To preserve their God-given souls,
To preserve the Christian Faith,
So that they might enter the city of Paradise,
Wherein is the Kingdom of the Lord of Heroes,
Wherein, with heroes, the Hero reigns,
With heroes not of this world.
! REFLECTION
Spiritists of our day accept every manifestation from the spiritual world as though sent by God, and immediately they boast that God has been "revealed" to them. I knew an eighty-year-old monk whom everyone respected as a great spiritual director. To my question, "Have you ever in your life seen anything from the spiritual world?" the monk answered me, "No, never, praise be to God's mercy." Seeing that I was astonished at this, he said: "I have constantly prayed to God that nothing would appear to me, so that I would not have occasion to fall into deception and receive a fallen devil as an angel. Thus far, God has heard my prayers."
The following recorded example shows how humble and cautious the elders were. The devil, clothed in the light of an angel, appeared to a certain monk and said to him: "I am the Archangel Gabriel, and I am sent to you." To this the brother responded: "Think--were you not sent to someone else? For I am not worthy to see an angel." The devil instantly became invisible and vanished.
! CONTEMPLATION
Contemplate the Lord Jesus in death:
# How darkness encompassed everything;
# How fear entered into everyone present beneath the Cross;
# How the frightened centurion on guard cried out: //Truly this was the Son of God! //(Matthew 27:54);
# How the prophecy of our Lord's death was fulfilled.
! HOMILY
! on the miraculous opening of the graves
"The graves were opened; and many bodies of the saints which slept arose" (Matthew 27:52).
Oh, what a great sign! The dead bodies of holy men and women recognized Him, Who had died in torment on the Cross--but the dead souls of the Jewish elders did not recognize Him. The whole of creation trembled, but only the criminal souls of Ananias, Caiphas and Herod did not tremble. Dead saints showed themselves more sensitive than living sinners. How could the dead saints remain indifferent toward their Creator on the Cross when even the dead stones could not remain indifferent? How could it be that during this event, which caused the earth to quake and the sun to hide its rays, that the bodies of the righteous could sleep in the graves--they who had fulfilled His Dispensation of old, who had hoped in Him for life, who had prophesied about Him and had closed their eyes in the hope of His coming?
Oh, what a great sign! Oh, what a great comfort it is for us who hope in the Resurrection! For according to our weakness and little faith, we could say: "Truly, Christ is Risen, but will we also be resurrected? Christ resurrected by His own power, but how shall we resurrect? Who knows if God will resurrect us by His own Power?" Here is consolation, here is proof: //The graves were opened; and many bodies of the saints which slept arose.// This means that death was unable to annihilate even ordinary man. This means that those who are much lower than Christ are not dead like stones, but are alive like angels. This means that one day even our bodies will rise from the tombs; that we will live also. All that our Lord said is confirmed by an outpouring of countless proofs. Knowing the weakness of our faith, He proved the prophecy of the resurrection not only by His particular Resurrection, but also by His raising many bodies from the tombs at the time of His own death.
O brethren, not one of us will have the least excuse for not believing in life after death. O Lord All-merciful, confirm the faithful in the Faith and convert the unbelieving to the Faith.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS EUTROPIUS, CLEONICUS AND BASILISCUS
They were companions of St. Theodore the Tyro. When the righteous Theodore had gloriously reposed, they remained behind in prison. For a long time they were not sentenced, due to the replacement of the emperor's governor in the city of Amasea. When the new governor arrived, more inhuman than his predecessor, he ordered that these three be brought before him. All three were youths. Eutropius and Cleonicus were brothers, and Basiliscus was a kinsman of St. Theodore. All three were like blood brothers in their fraternal love. As such, they said before the governor: "As the Holy Trinity is undivided, so also are we undivided in our faith and inseparable in our love." In vain was all the flattery on the part of the governor, and in vain were his attempts to bribe Eutropius. First of all, the governor invited Eutropius to dine with him. Eutropius refused, quoting from the Psalms: //Blessed is the man who follows not the counsel of the wicked// (Psalm 1:1). After that, the governor offered him a large amount of money--150 litres of silver--which Eutropius also refused, reminding the governor that because of silver Judas lost his soul. After all attempts at interrogation and torture had failed, the first two were sentenced to be crucified, and Basiliscus was sentenced to be beheaded. And so it was, two brothers were crucified on two crosses, for which they gave thanks to Christ that He had made them worthy of the same death to which He Himself submitted. The third, Basiliscus, was beheaded. They all entered the Kingdom of Joy where St. Theodore, their commander, awaited them, having been glorified before them by Christ the Lord and Victor. They suffered honorably in the year 308 A.D.
! SAINT PIAMA THE EGYPTIAN
For the sake of Christ, Piama did not wish to marry; she dedicated herself to a life of asceticism in the home of her mother. She ate very little food, and that only every other day. She spent most of her time in prayer and contemplation. Piama possessed the gift of clairvoyance. She died peacefully, wedding her soul to the Lord, in about the year 377 A.D.
! THE UNKNOWN MAIDEN
Coming from a wealthy home in Alexandria, she had a good father who suffered much and had a difficult death, and an evil mother who had an easy life, died peacefully and was buried with honor. Perplexed as to whether she should live according to the example of her father or her mother, this maiden had a vision which revealed to her the conditions of both her parents in the other world. She saw her father in the Kingdom of God and her mother in darkness and in torment. This vision helped the maiden to decide that she would dedicate her whole life to God. Like her father, she would adhere to the commandments of God, without considering all the adversities and the misfortunes which she would have to endure. She was faithful to the will of God to the end and, with the help of God, was made worthy of the Kingdom of Heaven, where she was reunited with her God-loving father.
! HYMN OF PRAISE
! SAINTS EUTROPIUS, CLEONICUS AND BASILISCUS
The mind at peace and raised to God the Most High,
The heart inflamed with love toward Him,
These do not care about pains or worry about the body:
Over such as these, only the Lord rules.
The mind fixed on Christ--that is most important.
Saint Eutropius recognized this during his torments;
And Cleonicus his brother and beloved Basiliscus--
All three were in the fire as though in the morning dew.
A mind fixed on Christ does not care about tortures.
If pain persists, so also does prayer.
The mind fixed on Christ does not think about pain, but weaves prayer.
He who fears God does not fear pain.
Two blood brothers raised upon the Cross:
Their bodies convulse, but the spirit does not stir.
Both glorify God Who glorified them;
Such an honorable death He gave to them.
The garment of the flesh is rent and removed
And the spirit races toward heaven.
The spirit is stronger than the body.
"Receive, O God," they cry out, "our spirits in the heights,
To Thee be eternal glory, O Son of God!"
! REFLECTION
Speaking in human terms, Christ, by His obedience, elevated Himself to primacy in the Church, in the world, and in the history of mankind. No one can be a good leader who has not completed the school of obedience. Adam forfeited his authority and dominion over living creatures and the elements of nature at the very moment when he showed himself disobedient to God. Abba Moses said: "Obedience begets obedience; if someone listens to God, God also listens to him." It is obvious, then, that God listens to man more than man listens to God, especially when one takes into consideration how often and in how many ways man sins daily against the commandments of God. It is a fact that the Eternal God listens to us, corruptible as we are, more than we listen to Him. This should fill all of us with shame who still have a conscience. When St. Eutropius was being tortured along with his two companions, he prayed to God: "Come to our aid as Thou camest to Thy servant Theodore the Tyro." Suddenly, the ground shook and the obedient Lord appeared with His angels and St. Theodore. The Lord said to the sufferers: "During the time of your torture, I stood before your faces and observed your patience. I will write your names in the Book of Life."
! CONTEMPLATION
Contemplate the Lord Jesus at the Mystical Supper:
# How He chose bread and wine, two ordinary elements of nourishment, and through them instituted His visible and invisible bond with the Church until the end;
# How the Mystical Supper has been preserved until today, and how it will be preserved until the end of time as the Mystery of Communion;
# How every day, and almost every hour, somewhere in the world, a priest consecrates the bread and wine and receives them as the Body and Blood of Christ. What a wonderful vision that is!
! HOMILY
! on love for your neighbor
"Nevertheless to abide in the flesh is more needful for you" (Philippians 1:24).
Illumined with the love of Christ, the Apostle Paul acknowledged, in his Epistle to the Philippians, that for him death is a gain because his life is Christ's. Paul's love for Christ draws him toward death so that he may stand by Christ as soon as possible, but his love for the faithful compels him to remain in the flesh. However, these are not two loves that attract the Apostle and pull him in two directions, but one and the same love that opens before him two treasures of wealth. One treasure is the blessed world in heaven, and the other treasure is the souls of the faithful on earth. That heavenly treasure is increased by that earthly treasure; both treasures flow together into one. To go to heaven--to that the Apostle is drawn by love and reward; to remain on earth--to that he is drawn by love and duty.
When mortal man, my brethren, discovers that it is more important to remain in the flesh out of love for his brothers, how is it strange that the Eternal God knew, before the Apostle, that it was more important to be in the flesh for the salvation of mankind than out of the flesh in the spiritual kingdom? Does not this confession of Paul before the Philippians explain to us with complete clarity the reasons for the Incarnation of the Son of God? There, in heaven, is the true Kingdom of Christ and the true life of Christ, without the mingling of sin and death. But the Son of God's love toward men deemed it necessary to remain in the flesh on earth among men. Truly, we need to be thankful to the Apostle Paul that he, in explaining himself to us, explained the mystery of Christ's coming and His dwelling in the flesh.
O Lord, wonderful art Thou in Thy saints.
To Thee be glory and praise forever. Amen.
! THE VENERABLE JOHN CLIMACUS
John Climacus is the author of //The Ladder of Divine Ascent.//John came to Mount Sinai as a sixteen-year-old youth and remained there, first as a novice, later as a recluse, and finally as abbot of Sinai until his eightieth year, when he reposed, in about the year 649 A.D. His biographer, the monk Daniel, says about him: "His body ascended the heights of Sinai, while his soul ascended the heights of heaven." He remained under obedience to his spiritual father, Martyrius, for nineteen years. Anastasius of Sinai, seeing the young John, prophesied that he would become the abbot of Sinai. After the death of his spiritual father, John withdrew into a cave, where he lived a life of strict asceticism for twenty years. His disciple, Moses, fell asleep one day under the shade of a large stone. John, at prayer in his cell, saw that his disciple was in danger and prayed to God for him. Later, when Moses returned, he fell on his knees and gave thanks to his spiritual father for saving him from certain death. He related that in a dream he had heard John calling him, and that he had jumped up at the moment the stone had fallen. Had he not jumped, the stone would have crushed him. At the insistence of the brotherhood, John agreed to become abbot, and he directed the salvation of the souls of men with zeal and love. Certain people reproached John for talking too much. Not at all angered by this, John nevertheless remained silent for an entire year. He did not utter a word until the brothers implored him to speak, and to continue teaching them his God-given wisdom. On one occasion, when six-hundred pilgrims came to the Monastery of Sinai, everyone saw an agile youth in Jewish attire serving at table, giving orders to other servants and assigning duties. Suddenly, this young man disappeared. When everyone noticed this and began to ask questions, John said to them: "Do not seek him, for that was Moses the Prophet serving in his own place." During his silence in the cave, John wrote many worthwhile books, of which the most glorious is //The Ladder.// This book is still read by many, even today. In this book, John describes the method of raising the soul to God, comparing it to the climbing of a ladder. Before his death, John designated George, his brother in the flesh, as abbot. George grieved much because of his separation from John. Then John said to him that, if he were found worthy to be near God in the other world, he would pray to Him that George would be taken to heaven that same year. And so it came to pass. After ten months George fell asleep and settled among the citizens of heaven as his great brother, John, had done.
! COMMEMORATION OF A MONK WHO DIED JOYFULLY AND NEVER JUDGED ANYONE IN HIS LIFE
This monk was lazy, careless, and lacking in his prayer life; but throughout all of his life he did not judge anyone. While dying, he was happy. When the brethren asked him how it was that with so many sins he could die joyfully, he replied: "I now see angels who are showing me a page containing my numerous sins. I said to them, 'Our Lord said: //Judge not, and ye shall not be judged// (Luke 6:37). I have never judged anyone, and I hope in the mercy of God that He will not judge me.'" And the angels tore up the paper. Upon hearing this, the monks were astonished and learned from it.
! HYMN OF PRAISE
! SAINT JOHN OF THE LADDER (CLIMACUS)
As a kind of torch on Mount Sinai,
John was shining with heavenly light.
Having subdued his body, he subdued his thoughts.
Thirty steps he numbered toward victory:
A miraculous strategy, a wonderful tactic.
As a legacy he gave spiritual warfare
To the spiritual warrior who desires to learn,
And in this warfare to gloriously conquer:
//The Ladder,// most miraculous, written by the Spirit,
After the dreadful strife was ended.
When John the Victor shed the world from himself,
He brought it as a precious gift to the brethren.
An epic poem--such is the soul of man,
When from dust it desires to climb toward heaven;
An awesome epic poem of struggle and suffering;
A sparkling epic poem of faith and hope.
This is what John, illumined by God, gave us--
He gave all-radiant weapons to you and to me.
And now John prays before the Lord,
That the Lord be pleased to send us help
When we climb to Him by the Ladder;
That He might extend His hand to us, that we might reach Him.
! REFLECTION
If humility before men is necessary for the sake of being exalted before God, and temporal effort is necessary for the sake of eternal life, what do you care if someone wags his head and laughs at your humility? John the Hesychast [Silentary] was a bishop in Ascalon for ten years. Seeing that the honors of men hindered him, he disguised himself as a simple monk and entered the Monastery of St. Sava the Sanctified, where he was assigned to gather wood and boil lentils for the laborers. When he was recognized, he closed himself in a cell, where he lived for forty-seven years, eating only vegetables. This is how the Fathers avoided worldly honors, for which many in our days, in reckless struggle, squander their souls for dust and ashes.
! CONTEMPLATION
Contemplate the Lord Jesus in death:
# How His body was taken down from the Cross by Joseph of Arimathea;
# How Joseph and Nicodemus wrapped the body of the Lord in a pure linen cloth, anointed Him with spices, and placed Him in a new tomb;
# How faithful and unafraid were these two distinguished men in the midst of Christ's many enemies and amidst general fear and denials.
! HOMILY
! on recognizing the Son of Man amidst overwhelming darkness
"Truly this was the Son of God" (Matthew 27:54).
These words were spoken by the centurion, who carried out his duties conscientiously as a soldier. Under orders of his superiors, he had to guard the body of Christ on Golgotha. Outwardly, he acted like a machine, but inwardly his soul was wide awake. He--a Roman soldier, a pagan and an idolater--saw all that had occurred at the time of the death of Christ the Lord, and cried out: //Truly this was the Son of God.//Not knowing about the One God and not knowing the Law and the Prophets, he immediately comprehended that which the priests of the One God and authorities of the Law and the Prophets were unable to comprehend! On this occasion, the word of God was realized: //For judgment I am come into this world, that they which see not might see; and that they which see might be made blind! // (John 9:39). Truly, he who was blind in the spirit saw and those who thought they could see were completely blinded.
Was it possible that the Jewish elders neither saw the darkened sun, nor felt the earthquake, nor noticed how the rocks were split, nor saw that the veil in the Temple was rent, nor recognized many of the saints who came out of opened graves and appeared in Jerusalem? They saw all of this, and all of them accurately witnessed everything. Nevertheless, their spirits remained blind and their hearts stony. All of these manifestations, awesome and extraordinary, they probably interpreted as the unbelieving would do today--as coincidences and illusions. The pagans of all times interpret everything as coincidence or self-deception whenever the finger of God appears to reprimand men, to direct, or to inform them.
The Roman centurion Longinus, who was that soldier, saw all that occurred without prejudice, and beneath the Cross he confessed his faith in the Son of God. His exclamation was not wrested accidentally from his frightened heart; rather, it was his confession of faith, for which he later laid down his life in order to embrace a better life in the Kingdom of Christ.
O brethren, how great is this Roman centurion, who upon seeing the lifeless Lord cruicified between thieves on the dunghill of Golgotha, recognized Him as God and confessed Him as God. O brethren, how petty are those Christians who recognize the Lord as resurrected, as glorified, as the Victor and the Victory-bearer through thousands of His saints, but who nevertheless retain in their hearts doubt like a poisonous serpent which poisons them every day and buries their lives in eternal darkness.
O Crucified and Resurrected Lord, have mercy on us and save us!
To Thee be glory and praise forever. Amen.////
! THE HIEROMARTYR [PRIESTLY-MARTYR] HYPATIUS, BISHOP OF GANGRA
Hypatius was born in Cilicia and was the bishop of Gangra. He was present at the First Ecumenical Council [Nicaea, 325. A.D.] and was renowned by all for his pious life and miracle-working. The Emperor Constantius ordered that a likeness of Hypatius be made during the saint's lifetime. The emperor kept this likeness in his palace as a weapon against all adverse powers. Once, upon returning from Constantinople, Hypatius was attacked in a narrow gorge by Novatian heretics and was thrown from the road into the mud. At that moment a woman from that group struck him in the head with a stone, and thus the saint died. Immediately the woman went insane and took that same stone and struck herself with it. When they took her to the grave of St. Hypatius, he interceded before God on her behalf. She was healed by the great compassionate soul of Hypatius, and lived the remainder of her life in repentance and prayer. St. Hypatius died and took up his habitation in the Eternal Kingdom of Christ the God, in the year 326 A.D.
! SAINT JONAH, METROPOLITAN OF MOSCOW
Jonah was born in the province of Kostroma. In his twelfth year he was tonsured a monk, and as such lived for a long time in the Simonov Monastery in Moscow. In the time of Metropolitan Photius, Jonah became Bishop of Ryazan. When Photius died, Jonah was elected metropolitan and sent to the patriarch in Constantinople for approval and consecration. At the same time, Isidore, a Bulgarian by descent, outwitted Jonah, arrived before him in Constantinople and was consecrated as the Metropolitan of the Russians. Jonah returned to his cathedral in Ryazan. The malicious Isidore ended his rule as Metropolitan in an evil manner. Isidore attended the Council of Florence [1439 A.D.] and only after three years did he return to Moscow. Everyone attacked him as an apostate from Orthodoxy, and he was banished. It is unknown where he ended his life. Jonah, the good and wise shepherd, ascended the metropolitan's throne. He was a great worker of miracles, a seer, and a spiritual director. When the Hagarenes surrounded Moscow, Jonah repelled them through his prayers. In his later years he he the desire to be afflicted by an illness so that he could suffer pain and, through this pain, completely purify himself before his departure to the other world. According to his desire, God permitted wounds in his feet, which was foretold in a vision to a certain priest, James. The saint died from these wounds and took up his habitation among the heavenly citizens on March 31, 1461 A.D. Many miracles have occurred over his relics. A certain mute, John by name, was brought before the relics of the saint. John kissed the hand of Jonah and, as he related later, the hand grabbed him by the tongue, and he felt a sharp pain. When the hand released his tongue, John returned to those people who had brought him and began to talk as though he had never been mute.
! THE HIEROMARTYR [PRIESTLY-MARTYR] AUDAS
Audas was a bishop of the city of Susa. He was beheaded for Christ in Persia in 418 A.D. by Emperor Yezdegeherd. His deacon, St. Benjamin, was released by the tormentors with the understanding that he would never preach the Gospel again. In the beginning he agreed, but Benjamin's heart could not endure this, and he continued to spread the truth of Christ among the people. For this, Benjamin was captured and slain three years after the death of St. Audas in the year 421 A.D.
! THE VENERABLE APOLLONIUS
Apollonius was a renowned Egyptian ascetic. In his fifteenth year he renounced the world and withdrew to a mountain where he lived for forty years, eating only wild plants. Afterward he established a monastery in which five hundred monks lived. He died peacefully in the year 395 A.D.
! HYMN OF PRAISE
! TRUTH
Know the truth, the Lord commands;
He who knows the truth does not allow himself to be enslaved.
To the faithful, truth gives freedom;
And by truth, the faithful rule over the world.
Falsehood is to bondage what a source is to a river.
Falsehood holds the liar forever in bondage.
Falsehood is midnight darkness that leads astray,
And by this wayward path leads men into the abyss.
Falsehood shackles one with fear, fear of everyone--
Of men and the world and evil demons.
Truth is the light that disperses darkness
And grants freedom to the despondent slave--
Freedom from men, freedom from the world,
Freedom from fear and cursed demons.
He who recognizes truth receives freedom.
With freedom there is authority over all adversaries.
The cradle for freedom is prepared by truth,
For without truth, there is no true freedom.
! REFLECTION
St. John of the Ladder says: "He who in his heart is proud of his tears and secretly condemns those who do not weep is like a man who asks the king for a weapon against his enemy and then commits suicide with it" (Step 7). If your heart is softened--be it from repentance before God, or be it from knowing the boundless love of God toward you--do not become proud toward those whose hearts are still hard and calloused. Remember how long you had a hard and calloused heart. There were seven brothers who were ailing in a hospital. One of them was restored to health and rose to his feet. He hurried to serve his other brothers with fraternal love and concern so that they too would recover. You should be like that brother too. Consider all men your brothers--sick brothers. If you feel that God has given you health sooner than them, know that it was given to you through mercy, so that as a healthy person you may serve others who are sick. Of what do we have to be proud--as though good health comes from ourselves alone and not from God? As though a mud hole can cleanse itself and need not be cleansed by a source deeper and cleaner.
! CONTEMPLATION
Contemplate the Lord Jesus in death:
# How His body lay peacefully in a grave;
# How He descended in spirit to the souls in hades in order to redeem the souls of the forefathers.
! HOMILY
! on joy after sorrow
"And ye now therefore have sorrow: but I will see you again, and your heart shall rejoice" (John 16:22).
The father steps up to the gallows and his sons are crying around him. Instead of the sons comforting him, he comforts his sons. Something similar to this happened between the Lord and His disciples. Walking toward His bitter death, the Lord sorrows more for His disciples' grief than for the suffering He must endure. He comforts them with consolation and encourages them with the prophecy of a new and imminent vision: //But I will see you again.//This is a prophecy of the Resurrection. Many times our Lord prophesied His death, but whenever He did so, He also prophesied His Resurrection. Nothing unforeseen ever happened to Him. He did not prophesy about Himself only, but also about the disciples. They would be in great sorrow--like a woman when she gives birth and endures pain. As a woman forgets her pain after she gives birth and rejoices //that a man is born into the world// (John 16:21), so would it be with them. In their consciousness, Christ the Lord was still not completely in the form of the God-man. As long as they had known Him as a sufferer and mortal man, they only knew Him partially; until then the birth-pangs continued in their souls. But when they see Him again--resurrected and alive, working miracles and almighty, Lord over all things in heaven and on earth--the pain and sorrow will cease and joy will appear in their hearts. For Christ will be completely formed in their awareness as the God-man, and then they will know Him in His fullness and in His totality. Only then will He be fully born for them.
So it is with us, brethren: as long as we know Him only from His birth to His death on Golgotha, we only know the Lord Jesus partially. We will know Him completely only when we know Him as the Resurrected One, the Victor over death.
O Lord All-victorious, have mercy on us, and by Thy Resurrection cause us to rejoice, as Thou didst comfort and make joyful Thy disciples.
To Thee be glory and praise forever. Amen.
! THE VENERABLE GERASIMUS
This remarkable and renowned saint first learned about the ascetic life while he was in the Egyptian Thebaid. He then went to the Jordan and founded a community in which there were seventy monks. This community still exists today. He instituted a special rule for his monastery. According to this rule the monks spent five days a week in their cells weaving baskets and rush mats. They were never allowed to light a fire in their cells. Five days a week they ate only a little dry bread and a few dates. The monks were required to keep their cells open so that, when they went out, anyone could enter and remove whatever he needed from their cells. On Saturdays and Sundays they gathered in the monastery church. They had a common meal with a few vegetables and a little wine to the glory of God. Each monk would then bring in and place before the feet of the abbot that which he had made during the past five days. Each monk had only one robe. St. Gerasimus was an example to all. During Great Lent he did not eat anything except what he received in Holy Communion. On one occasion, he saw a lion roaring from pain because of a thorn in his paw. Gerasimus drew near to the lion, crossed himself and removed the thorn from the animal's paw. The lion became so tame that he returned with Gerasimus to the monastery and remained there until the elder's death. When Gerasimus reposed, the lion succumbed to sorrow for him and died. Gerasimus attended the Fourth Ecumenical Council [Chalcedon, 451 A.D.] during the reign of Marcian and Pulcheria. Although at the beginning Gerasimus leaned toward the Monophysite heresy of Eutyches and Dioscorus (St. Euthymius dissuaded him from this heresy), he was a great defender and champion of Orthodoxy at the Council. Of all the disciples of Gerasimus, the most famous was St. Cyriacus the Recluse. St. Gerasimus died in the year 475 A.D., and passed on to the eternal joy of his Lord.
! THE HOLY MARTYRS PAUL AND JULIANA
Paul and Juliana were brother and sister from Ptolemais in Phoenicia. They were brutally tortured for the sake of Christ by the Emperor Aurelius and were finally beheaded. Before their martyrdom they manifested many miracles, which were witnessed by a multitude of pagans. Through these miracles, many of the pagans were converted to the Faith. Several of these were beheaded and received their wreaths in the year 273 A.D.
! SAINT JAMES THE FASTER
He lived in the sixth century. He was so perfected in pleasing God that he cured the most gravely ill through his prayers. But the enemy of mankind lured him into great temptations. Once an immoral woman was sent to him by some mockers. She misrepresented herself to James, pretending to weep yet all the while luring him into sin. Seeing that he was going to yield to sin, James placed his left hand into the fire and held it there for some time until it was scorched. Seeing this, the woman was filled with fear and terror, repented, and amended her life. On another occasion, James did not flee from his temptation, but rather he fell with a maiden who had been brought by her parents to be cured of her insanity. He indeed healed her, but afterward sinned with her. Then in order to conceal his sin, he killed her and threw her into a river. As is common, the steps from fornication to murder are not very far. After this, James lived for ten years as a penitent in an open grave. At that time there was a great drought which caused both people and livestock to suffer. As a result of his prayers, rain fell, and James knew that God had forgiven him. Here is an example, similar to that of David, of how wicked the evil demon is; how by God's permission the greatest spiritual giants can be overthrown; and how, through sincere and contrite repentance, God, according to His mercy, forgives even the greatest sins and does not punish those who punish themselves.
! HYMN OF PRAISE
! SAINT JAMES THE FASTER
He who falls from the greater height is injured more.
Whoever is lifted to the heights, let him cautiously shield himself.
The holy Apostle writes: "Whoever thinks that he is standing secure
Should take care lest he fall" (1 Corinthians 10:12); let him fear God.
James the Faster was a giant according to the height of his soul,
But he slipped from the heights, and the devil toppled him.
One sin hastens to the other: fornication rushes to murder.
James the Faster punished himself, and God comforted him.
One sin is able to erode all the virtues;
Through one hole in the granary, all the wheat pours out.
A house filled with fragrances: one handful of filth
Empties it of redolence and fills it with stench.
One hundred victories and one hundred celebrations do not help
When in the final battle the head is lost.
The spiritual life is a struggle against the hordes of the devil;
In this battle the proud are defeated from the beginning.
Whoever invokes the name of God with profound humility
Will, in battle, be protected by God's mercy.
! REFLECTION
If the philosophies of men were able to satisfy man, why did the philosophers Justin and Origen become Christians? Why did Basil, Chrysostom and Gregory, who in Athens studied all the philosophy of the Greeks, receive baptism? And why did Blessed Augustine, who knew the wisdom of both the Greeks and the Romans, throw away all and seek salvation and illumination in the Christian Faith? And St. Clement of Rome, who was very wealthy and very learned? And St. Catherine, who was from the royal house and knew all the worldly wisdom of the Egyptians? And the young Crown Prince Ioasaph in India, who knew all the Indian philosophies? And many, many more who, in philosophy, primarily sought explanations to the puzzles of the world and illumination for their souls, and afterward entered the Church and worshipped the Lord Christ?
! CONTEMPLATION
Contemplate the Mystery of Communion as the presence of our Lord Jesus in the Church on earth:
# As the fulfillment of His promise: //Lo, I am with you always, even unto the end of the world// (Matthew 28:20).
# As His constant support of the faithful, to whom He said: //Without me, ye can do nothing// (John 15:5).
! HOMILY
! on Pilate's wavering
"From thenceforth Pilate sought to release Him... then delivered he Him therefore unto them to be crucified" (John19:12,16).
From where does this contradiction in Pilate stem? From where is this dual will in one and the same man? While he stood under the radiant face of Christ, Pilate with all his heart wanted to release the Just Man. But when the darkness of the Jews overcame him, he agreed to the works of darkness. This is the seed fallen among the thorns. While the face of Christ shown on the seed, the seed took root, but as soon as the seed was left without this light, the darkness of the thorns smothered it. When the Lord Jesus authoritatively spoke to Pilate of the Heavenly Kingdom, saying to him, //Thou couldest have no power at all against Me, except it were given thee from above//(John 19:11), Pilate then felt overcome by the fear of God. But when the masses of the Jews cried out to Pilate, saying, //If thou let this man go, thou art not Caesar's friend// (John 19:12), then Pilate was overcome with fear of the worldly king. His fear for his body overcame his fear for his soul, as sometimes happens even to this day. Pilate was a disciple of worldly wisdom. Worldly wisdom does not offer strength but instills fear. Worldly wisdom sustains not the soul but the body. Worldly wisdom does not instill fear for the soul but fear for the body and all that is physical. Here, in Pilate, we see an obvious and pathetic example of what type of men worldly wisdom produces and educates--disregarding God and opposing Christ. Pilate's weak character and wavering soul is a picture, not only of pagans, but also of weak Christians. Certain Christians daily, imperceptibly, and more often unconsciously, would for a while like to free Christ from the darkened and evil Jewish instinct within themselves. Then at other times, they are ready, from that instinct, to abandon Him to crucifixion. This always happens when a Christian transgresses some of the commandments of Christ for the sake of fulfilling some of his own physical desires. For a moment, that commandment enlightens the heart of a wavering Christian, and again for a moment, the physical darkness overcomes him so much that he completely succumbs to it.
O Lord, long-suffering, do not turn away the radiance of Thy face from us even for one twinkling of an eye, so that the darkness does not overcome us. O Lord, help us that we will remain children of the light until the end.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR CONON OF ISAURIA
He was brought up in the Christian Faith and baptized in the name of the All-holy and Life-giving Trinity by the Archangel Michael himself. Until his death, the archangel of God invisibly watched over him. Conon was illumined and empowered by the grace of the Holy Spirit, so that his heart was driven not by anything worldly but only by the spiritual and heavenly. When his parents forced him into marriage, the first evening he took a candle and placed it under a vessel and asked his bride: "Which is better, light or darkness?" She replied: "Light." He then began to talk to her about the Faith of Christ, and about the spiritual life as being far superior and more desirable than the physical. In this he succeeded. Afterward Conon converted his wife and her parents to the Christian Faith. Conon and his wife lived as brother and sister. Shortly thereafter, his wife and parents died, and he withdrew completely from this worldly life and devoted himself totally to prayer, fasting and divine contemplation. He performed great miracles, through which he converted many to Christianity. Among other examples, Conon compelled evil spirits to serve him. During a time of persecution he was captured, tortured and pierced throughout with knives. The sick anointed themselves with his blood, and they were healed. Afterward he lived for two additional years in his town of Isauria, and then presented himself to the Lord. This glorious saint lived and was martyred in the second century.
! THE HOLY MARTYR CONON THE GARDENER
Conon was born in Nazareth. He was kind and innocent and in all things found favor with God. During the reign of Decius, Conon was persecuted, tortured and martyred for Christ. Through all this, he remained strong in the Faith. He sharply rebuked and criticized the pagan judges because of their foolishness. Nails were driven into his feet and he was tied to the prince's chariot. Then this virtuous and innocent saint was dragged until he was completely exhausted and fell. He prayed for the last time and gave up his soul to God, in the year 251 A.D.
! THE VENERABLE HESYCHIUS THE FASTER
Hesychius was born near Brusa in the eighth century. He then retreated to Mount Maion, which had an evil reputation because of demonic apparitions. There Hesychius built a hut for himself and a chapel dedicated to the Holy Apostle Andrew. He surrounded it with a garden, which he cultivated in order to live by his own labor. By his prayers he performed many miracles. Hesychius prophesied that after his death a convent would be built in that place. A month before his death, he foresaw its day and hour. At midnight on the foreseen day, some men saw his hut shining with an extraordinary light. When they arrived, they found him dead. Hesychius reposed peacefully and was received into the Kingdom of his Lord in the year 790 A.D. He was buried in the Church of St. Andrew. Later Theophylactus, Bishop of Amasea, translated his body to Amasea.
! THE VENERABLE MARK THE ASCETIC
Mark was an ascetic and miracle-worker. In his fortieth year he was tonsured a monk by his teacher, St. John Chrysostom. Mark then spent sixty more years in the wilderness of Nitria in fasting and prayer, and in writing many spiritual works concerning the salvation of souls. He knew all the Holy Scriptures by heart. He was very merciful and kind, and wept much for the misfortunes that had befallen all of God's creation. On one occasion, when weeping over a hyena's blind whelp, he prayed to God and the whelp received its sight. In thanksgiving the mother hyena brought him a sheepskin. The saint forbade the hyena in the future to kill any more sheep belonging to poor people. He received Communion at the hands of angels. His homilies concerning the spiritual law, repentance, sobriety, etc., are ranked among the preeminent literature of the Church. These works were praised by the Patriarch Photius the Great himself.
! HYMN OF PRAISE
! SAINT MICHAEL THE ARCHANGEL
The angels are our older and superior brothers.
The will of God Most-high is their will.
They are brighter and swifter than light,
Lighter and fresher than the air on the mountain.
In light they are clothed, the light of their Creator--
These tireless laborers of the work of Christ.
They care for men. Their only concern
Is how to return the prodigal son to God,
How to return their younger brothers from a strange land
To the joyful courts of the Householder.
Michael, Arch-captain, the first among the first:
What Venus is among the stars, he is among the angels.
He hurries to every penitent, to lift him up to God.
No matter how many penitents there are, he reaches them all.
To serve, serve and serve--for him that is joy.
Even in heaven, service to one's neighbor is paramount.
Service which strengthens life and makes a mother jubilant,
Service which adorns with wreaths unfading:
That service for the angels is joy and celebration,
For it is directed to the glory of God and the salvation of men.
! REFLECTION
Why do some people, well educated and baptized as Christians, fall away from Christianity and give themselves over to philosophy and pedantic theories, pretending that these are truer than Christianity? They do so for two principal reasons: either because of a totally superficial understanding of Christianity or because of sin. A superficial understanding of Christianity rejects it, and sin flees from Christ as does a criminal from the judge. Superficial and sinful Christians were as often enraged and infuriated with Christianity as were the pagans. The superficial and culpable find it is more comfortable for them to bathe in the shallow puddle of human thoughts than in the perilous depths of Christ. For those who sincerely follow Christ, He constantly calls them to a greater and greater depth, as He once said to the Apostle Peter: //Launch out into deep //(Luke 5:4). St. Mark the Ascetic writes that the Law of God is understood in accordance with the fulfillment of the commandments of God: "Ignorance compels a person to speak in opposition to that which is beneficial, and insolence multiplies vice."
! CONTEMPLATION
Contemplate the Mystery of Communion as the Mystery of the Perfection of Love:
# Because, on the part of Christ, it means giving completely of Himself to His faithful;
# Because of this, Christ is received with faith and trust on the part of the faithful;
# Because of this, it leads to the joyful, fruitful and saving union of God with man.
! HOMILY
! on traveling with Christ into the deep
"Launch out into the deep" (Luke 5:4).
This is what our Lord commanded Peter and the rest of the apostles when He had finished speaking. This means that He first gave instructions and then, immediately after, He called them to action. This is also important for us. For as soon as we learn something from the Gospels, we immediately need to go out and implement it. The disciple's works are dear to the Lord--not just the disciple.
//Launch out into the deep.// From the shallow water along the shore, our Lord spoke to the people who were less enlightened in the mysteries of God's Kingdom, but He summoned the apostles out into the deep. There is less danger in the shallow waters, but the catch is also smaller. In the shallows there are snakes, frogs and other small repulsive water creatures; that is all the danger. In shallow waters there are only small fish; that is the entire catch. But in the greater depths, the danger is also greater. There you have large sea creatures and great storms; that is the danger. But there are also much larger and better fish in enormous quantity; that is the catch. O enlightened one, come therefore into the deep!
Launch out into the deep, mysterious sea of life, but do not proceed without Christ in your boat. By no means. You might spend the entire night of your life not catching anything, as Peter said: //We have toiled all the night and have taken nothing// (Luke 5:5). Not only that, but you could face far worse if Christ is not in your boat. Perhaps the winds will carry you away and cast you into an abyss. Perhaps the monstrous and enormous beasts of the sea will consume you. The winds, O enlightened one, are your own passions which accompany you unavoidably if you set out into the deep without Christ. The enormous and monstrous beasts of the sea are demons, who can destroy you in the blink of an eye as they destroyed the herd of two thousand (See Mark 5:13).
However, if you are going out with Christ into the deep, do not be afraid of anything, but go joyfully and courageously joined to Christ. You will lay hold of the best catch, and you will fill both boats with it--the physical and the spiritual. You will snare the best catch, O dedicated one, and you will arrive on shore without any dangers, on the shore of the Kingdom of Christ. Nowhere without Christ! Neither in shallow places nor in the deep. In the shallow places you will become vexed by hunger and by many minor annoyances, but in the deep a greater evil will befall you.
O my Almighty Savior, Thou art our Helmsman, our Defense, our Harbor.
To Thee be glory and praise forever. Amen.
! THE HOLY FORTY-TWO MARTYRS FROM AMMORIA
They were all commanders of the Byzantine Emperor Theophilus. When the Emperor Theophilus lost the battle against the Saracens at the city of Ammoria, the Saracens captured the city and enslaved many Christians. Among them were these commanders. The remaining Christians were either killed or sold into slavery. The commanders were thrown into prison, where they remained for seven years. Many times the Moslem leaders came to them. They counseled and advised the commanders to embrace the Islamic Faith, but the commanders refused to listen. When the Saracens spoke to the commanders, saying, "Mohammed is the true prophet and not Christ," the commanders asked them: "If there were two men debating about a field and the one said, 'This field is mine,' and the other, 'It is not, it is mine,' and one of them had many witnesses nearby saying it is his field, and the other had no witnesses, but only himself--whose field would you say was?" The Saracens answered: "Indeed it is his who had many witnesses!" "You have judged correctly," the commanders answered. "That is the way it is with Christ and Mohammed. Christ has many witnesses: the Prophets of old, from Moses to John the Forerunner, whom you also recognize and who witness to and about Him, whereas Mohammed witnesses to himself that he is a prophet and hasn't a single witness." The Saracens were ashamed and again they tried to defend their faith in this manner: "Our faith is better than the Christian Faith, as is proved by this: God gave us the victory over you and gave us the best land in the world and a kingdom much greater than Christianity." To this the commanders replied: "If that were so, then the idolatry of the Egyptians, Babylonians, Hellenes, Romans, and the fire-worship of the Persians would be the true faith, for at one time all of these people conquered the others and ruled over them. It is evident that your victory, power and wealth do not prove the truth of your faith. We know that God, at times, gives victory to Christians and, at other times, allows torture and suffering so as to correct them and to bring them to repentance and purification of their sins." After seven years they were beheaded, in the year 845 A.D. Their bodies were then thrown into the Euphrates River, but they floated to the other shore, where they were gathered and honorably buried by Christians.
! THE BLESSED JOB
Job was born in Moscow in the year 1635 A.D. Church singing and liturgical services drew him to the Church. He became the spiritual father of Emperor Peter the Great, but because of intrigue he withdrew to the Solovki Monastery, where he underwent a life of strict asceticism. In the year 1720 A.D., in his eighty-fifth year, he reposed in the Lord. Before his death he cried out: "Blessed is the God of our Fathers! And, as He is thus, I am not afraid, but I leave this world with joy."
! THE HOLY MARTYRS CONON THE FATHER AND CONON THE SON
When the father was already an old man, the son was a youth of seventeen. During the reign of Dometian, they were sawed in half for their faith in Christ and were glorified and honored in the Church on earth and in heaven. They honorably suffered in the year 275 A.D.
! HYMN OF PRAISE
! SAINT CONON
The emperor counsels the youthful Conon:
"From old age your father is deranged.
You, young man, do not hearken to his words,
But deny and forget Christ.
Offer sacrifice to the Roman gods,
And then remain with me in honor."
The youthful Conon courageously replied:
"It is written, O Emperor-torturer,
That the son does what he sees his father do,
And he is not ashamed of his father's deeds.
My father teaches me the True Faith,
The true Faith and the knowledge of God,
That I know the One God,
My Merciful Creator;
That I know Christ the Savior,
My Redeemer from death.
Whatever you do with the body of my father,
That also do with mine.
But over the soul you have no authority;
Our souls are our possessions
And the possessions of the Son of God."
! REFLECTION
As long as you are on earth, consider yourself a guest in the household of Christ. If you are at table, it is He who honors you. If you breathe air, it is His air you breathe. If you bathe, it is in His water you bathe. If you travel, it is over His land that you travel. If you amass goods, it is His goods you amass. If you squander them, it is His goods that you squander. If you are powerful, it is because He allows you to be strong. If you are in the company of men, you and the others are His guests. If you are out in nature, you are in His garden. If you are alone, He is present. If you set out somewhere, He sees you. If you do anything, He remembers it. He is the most considerate Householder Who ever hosted you. Be considerate then toward Him. In a good household, the guest is required to behave. These are all simple words, but they convey to you a great truth. All the saints knew this truth, and they governed their lives by it. That is why the Eternal Householder rewarded them with eternal life in heaven and with glory on earth.
! CONTEMPLATION
Contemplate the Mystery of Communion as a life-giving cure for the soul and body:
# As a cure that heals and cleanses the soul from sinful maladies, and restores it to life;
# As a cure that heals and purifies the body from lust and vice, and restores it to life;
# As a cure that enlivens a man and makes him a healthy member of the immortal Body of Christ. But if a man will remain a corrupt member to the end, eventually he will be cut off and cast aside.
! HOMILY
! on the heir and the slave
"Now I say, that the heir, as long as he is a child, differeth nothing from a servant" (Galatians 4:1).
As long as the heir apparent is in the cradle, what would make him better than the son of a slave? His body is not better, nor are his thoughts more elevated, nor are his wishes or desires more pure. Such is the son of the king, the son of a slave and the son of a beggar. For a few years the son of the king does not differ from the son of the slave. However, at some point the king's son reaches maturity and, fullly conscious of his dignity, receives authority over the kingdom. Likewise the slave's son reaches maturity and, with full consciousness, succumbs to the yoke of slavery. Then the enormous difference is seen. Then it is clearly manifest that the heir and the slave are not equal. The slave must serve, and the king must rule.
The apostle means to say that it is the same with Christians and with those who are not Christians. The non-Christian is a slave to nature, but the Christian rules over nature. The pre-Christian era of the history of mankind shows us how man was a slave to the elements of nature, to the flesh, to idols, and to creatures. The Christian era of the history of mankind shows us how man was master and owner, a nobleman of a royal race, and heir to all.
Even those who knew about the One True God, as did the Israelites, did not stand before God like children or as heirs before their Father, but were as slaves and servants before their Lord and Judge. //But when the fullness of time was come//(Galatians 4:4), the Only-Begotten Son of God came to earth. He made it possible //that we might receive the adoption of sons// (Galatians 4:5), and by the Spirit of God to address God: //Abba, Father!// (Galatians 4:6).
Brethren, why did Christ come to earth? He did so to make us better than slaves and to give us the right of sonship and the duty of the master. The right of sonship is such that in the name Christ we can call God "Father." The duty of the master is to rule over ourselves, our flesh, our thoughts, our desires, and all of nature around us.
O Only-begotten Son of God, by Thy mercy and sacrifice we have received the adoption of sons. Oh, help us that with Thine aid we may persevere to the end in purity and in truth.
To Thee be glory and praise forever. Amen.
! THE HOLY SEVEN HIEROMARTYRS [PRIESTLY-MARTYRS] IN CHERSON: BASIL, EPHRAIM, EUGENE, ELPIDIUS, AGATHADORUS, AETHERIUS AND CAPITO
All of them were bishops in Cherson at different times. All suffered and were martyred at the hands of unbelievers: either Jews, or Greeks, or Scythians. Only Aetherius died peacefully. All of them were sent by the Patriarch of Jerusalem as missionaries to bring the light of the Gospel to this wild and uncivilized area. They were tortured and suffered for their Lord. In Cherson, Basil raised the son of a prince from the dead. This embittered the Jews, and they brought an accusation against him. He was bound by the feet and dragged through the streets until his soul departed from his body. Ephraim was beheaded. Eugene, Elpidius and Agathadorus were beaten with rods and stoned until they gave up their souls to God. Aetherius lived during the reign of Emperor Constantine the Great. He governed the Church in freedom and peace, erected a large church in Cherson and died peacefully. When the last of them, Capito, was appointed bishop for the wild and savage Scythians, they sought a sign from him that they might believe. They suggested that he enter a fiery furnace. If he was not consumed, they would all believe in Christ. With fervent prayers and hope in God, Capito placed his episcopal pallium over his shoulders, signed himself with the sign of the Cross and, keeping his heart close to God, entered the fiery furnace. He remained in the flames for about an hour without any injury or damage, either to his body or vesture. He came out in good health. Then all of them cried out at once: "One is God, the God of the Christians, great and mighty, Who protects His servant in the fiery furnace." All in the city and in the surrounding area were then baptized. This miracle was spoken of at length at the First Ecumenical Council [Nicaea, 325 A.D.]. The participants in the Council all glorified God and praised the steadfast and solid faith of St. Capito. It happened that while Capito was traveling along the Dnieper River, he was captured by the pagan Scythians and drowned. All seven of these hieromartyrs suffered around the beginning of the fourth century.
! THE VERERABLE EMILIANUS
Emilianus was born in Rome and committed many grave sins in his youth. When Emilianus came to his senses, he refrained from sinning and began to tremble just thinking about the judgment of God. Emilianus immediately entered a monastery, and by fasting, vigils and obedience he tamed and withered his body. He was an ideal example to his brethren in every good labor. Often he would step out of the monastery at night and enter a nearby cave to pray. Not knowing where Emilianus was going, the abbot of the monastery secretly followed him one night. The abbot saw Emilianus standing at prayer in reverence and tears. All at once, a heavenly light, brighter than the sun, encompassed the entire mountain--especially the cave and Emilianus. A voice was heard from heaven, saying: "Emilianus, your sins are forgiven you." Filled with fright, the abbot hurried back to the monastery. The next day he revealed to the brethren what he had seen and heard the previous night. Great respect was shown to Emilianus by the brethren. He lived long and reposed in the Lord.//)
--------------------
//) On this date //St. Lawrence// is commemorated in the great Greek Synaxarion. He was a benefactor of the Phaneromene Monastery on the island of Salamina. He lived in Megara as a married man with two sons. He was righteous and pious. The Most-holy Theotokos appeared to him in a dream and commanded him to go to Salamina and there to restore her church. He went there, and indeed he discovered the ruins and built a new church. There he was tonsured a monk and died on March 7, 1770 A.D. Afterward, many miracles occurred in this monastery over the relics of St. Lawrence.
! HYMN OF PRAISE
! SAINT EMILIANUS
Emilianus was a grave sinner,
And from sin the soul aches.
Emilianus was disconsolate;
He prayed to God for forgiveness:
"O Most High, O Most wonderful,
From Whom the sun has light,
From Whom the angelic choir
Receives its wakeful existence, joy and radiance!
For Thee only, O God, do I care;
With repentance I return to Thee;
Only to Thee do I offer thanks,
That now I truly comprehend life.
Tears, tears, tears I shed;
Body and spirit now are fasting;
I shut out my vision of the world and my hearing.
Forgive, O God, forgive, forgive!
Before Thy mercy I am a field:
Weed me and cultivate me.
Let my soul be alive,
And the flesh suffer and feel pain.
Of all men I am the worst.
Behold, I judge myself;
Just do not judge me, O God.
I fear Thee, only Thee!"
! REFLECTION
A thick rope is made from thin, fibrous strands of hemp. One thin fiber cannot hold you nor can it strangle you. For you will easily, as in jest, break it and free yourself from it. However, if you are tied with a thick rope, you will be held bound and even strangled by it. You can neither easily break it nor free yourself from it. As a thick rope consists of thin and weak fibers, so men's passions consist of small, initial sins. Man can break off and turn away from the beginnings of small, initial sins. But when sin after sin is repeated, the weave becomes stronger and stronger, until in the end a passion is created, which then turns man into some kind of monster, as only it knows how. You cannot easily cut it off or distance yourself from it, nor can you divorce yourself from it. Oh, if only men would beware and uproot the beginnings of sins! Then, they would not have to endure much in freeing themselves from passions. "To cut off rooted passions is as difficult as cutting off one's fingers," said a monk from the Holy Mountain. To free himself from sinful passions, St. Emilianus was helped by the remembrance of death and, naturally, the grace of God, without which it is extremely difficult to rid oneself of the fetters of passion. To think often of impending death, to repent, and to implore grace from Almighty God--these three acts save a man from the bondage of sin. St. Sisoes was asked: "How long does it take to uproot passions?" The saint replied: "As soon as one passion arises in you, uproot it immediately."
! CONTEMPLATION
Contemplate the Lord Jesus at prayer in Gethsemane:
# How He falls on His face and prays three times, //O ! My Father, if it be possible, let this cup pass from Me //(Matthew 26:39), and again, Thy//will be done// (Matthew 26:42);
# How He sweated at prayer, //And His sweat was as it were great drops of blood falling down to the ground// (Luke 22:44);
# How all of this was because of you and me, because of my sins and your sins, and for the sake of my salvation and your salvation.
HOMILY!
on the hand of the betrayer!
"But, behold, the hand of him that betrayeth Me is with Me on the table (Luke 22:21).
It is most difficult for a general to wage war when he has an enemy within the camp--not only external enemies but also internal enemies in his own ranks. Judas was considered among his own. However, he was the enemy from within. Rows of enemies crowded and closed ranks around Christ while Judas was preparing betrayal from within. His hand was on the table that Christ blessed, but his thoughts were aligned with the enemies, where the darkest evil, hatred and malice seethed against the gentle Lord.
Is it not also the same today, that the hands of the many betrayers of Christ are at the table with Him? Which table is not Christ's? What table does not hold His gifts? He is the Householder and He nourishes and feeds His guests. The guests have nothing of their own, nothing! All good and all abundance which is given to them is given by the hand of Christ. Therefore, is not Christ present at every table as a Householder and as a Servant? Therefore, are not the hands of all who betray Christ today at the table with Him? They eat His bread, and they speak against Him. They warm themselves by His sun, and they slander His name. They breathe His air, and they rise up against His Church. They live by His mercy, and they banish Him from their homes, their schools, their courts, their books and their hearts. They willfully and maliciously trample His commandments and ridicule His law. Are they not the betrayers of Christ and the followers of Judas? Do not be afraid of them! God did not command us to be afraid of them, but to wait to see their end. Our Lord was not afraid of Judas nor is He afraid of all the traitorous hordes to the end of time. He knows their end, and He already has His victory in His hands. Therefore, neither should you be afraid. Adhere faithfully to Christ the Lord, not only when it appears that His work is succeeding and advancing in the world, but also when it appears that His work is failing and perishing. Do not be afraid! If you become frightened, perhaps your hand will be found clenched beneath Judas's hand at the table of Christ.
O Lord, All-victorious, sustain us with Thy power and mercy.
To Thee be glory and praise forever. Amen.////
! SAINT THEOPHYLACTUS, BISHOP OF NICOMEDIA
When the emperor's advisor Tarasius, a layman, was elected Patriarch of Constantinople, then many of his friends, admirers, and other laymen received the monastic tonsure either with him or by him. Among them was Theophylactus. Tarasius appointed him Bishop of Nicomedia. As a bishop, Theophylactus was a good shepherd to his entrusted flock and proved to be exceptionally compassionate toward the less fortunate and indigent. After the death of St. Tarasius, the patriarchal throne was occupied by Nicephorus. Shortly after that, the imperial throne was occupied by Leo the Armenian, an iconoclast. As such, he raised up an absolute storm in the Church of Christ. Even though iconoclasm had been anathematized by the Seventh Ecumenical Council [Nicaea, 787 A.D.], nevertheless, Emperor Leo reinstated it and wanted thereby to supplant Orthodoxy. St. Theophylactus opposed the emperor to his face. When the emperor would not yield, Theophylactus said to him: "O Emperor, great ruin will unexpectedly befall you, and you will find no one to deliver you from it." Because of these words and by the order of the emperor, Theophylactus was removed from his see and sent into exile. There he spent thirty years undergoing many hardships and insults, and in the end he rendered his soul to the Lord in about the year 845 A.D.
! THE HOLY HIEROMARTYR [PRIEST-MARTYR] THEODORETUS//)
The Emperor Constantine built a cathedral church of exceptional beauty in Antioch. The people called this church "the Golden Church" because of the gold-plated exterior and interior and because of the many gold and silver adornments housed in it. The emperor donated a great deal of land to this church for the upkeep of the clergy, whose number was significant. The custodian of these accoutrements and all the other precious items in the church was the presbyter Theodoretus, a priest of great faith and rare devotion. When Julian the Apostate began his reign, he (Julian) denied Christ and, even though he was baptized, stirred up a persecution against the Christians. The apostate's uncle, also named Julian, came to Antioch and began to plunder the Golden Church. He summoned Theodoretus, the custodian of the treasury, to court and counseled him to deny Christ. Not only did Theodoretus refuse to deny Christ, but he also insulted the Emperor Julian because of his apostasy from the true Faith and his return to idolatry. He compared him to a dog returning to his own vomit. When the wicked uncle, out of unruliness, urinated in the Golden Church, St. Theodoretus prophesied a horrible death for him, which shortly came to pass. Theodoretus was beheaded with an axe for his faith in Christ. From the time that judge Julian urinated in the church, he felt pains in the lower part of his body. The entire lower half of his body was eaten away by worms, so that he vomited up his apostate soul in the most horrible pains. Also, in accordance with the prophecy of Theodoretus, Felix, Julian's assistant, died from a hemorrhage of the mouth immediately after this righteous man was beheaded. St. Theodoretus was beheaded in the year 362 A.D. and went to the all-glorious Kingdom of Christ the King.
--------------------
//) In the Greek Synaxarion, St. Theodoretus is commemorated on March 3.
! HYMN OF PRAISE
! ADAM'S LAMENT
Outside empty Paradise, Adam folded his hands.
Banished and alienated, he throbbed with pain.
The angels of heaven, until then his companions,
As beautiful dreams flew hurriedly away--
Away from the banished one, away from the cursed one,
Who, until yesterday, was the mighty proprietor of Paradise!
And Adam sobbed on the cold boulder:
"Woe to my descendants! Woe to me, a sinner!
For one moment I despised my Creator,
To be despised by all that was created
Throughout the days and nights, throughout the long centuries.
Instead of God, to have a serpent for a companion!
Instead of me ruling over all created things,
Now everything will rule over me:
The winds and the heat, the elements of nature,
The beasts and scorpions, repulsive things and serpents.
Instead of freedom, behold, fear grips me,
And confuses my thoughts and chills me to the bone.
There is only One Who is able to help:
The One Whom I offended. Have mercy, O God!"
! REFLECTION
Be more confiding in the Lord than in your own mother. Confess all to Him. He will not betray you. Embrace all of His commandments as beneficial. They will not deceive you. Inasmuch as you trust in God, so also be vigilant toward your enemies--the flesh, the world and the demons. All of this was expressed much better by the glorious saint of God, Ephraim the Syrian: "In embracing the commandments of God, have simplicity; and, in warding off hostile intrigues, have cunning (as with the dove and the serpent)."
! CONTEMPLATION
Contemplate the Lord Jesus in the Garden of Gethsemane:
# How He repeatedly commanded the disciples to watch and pray to God;
# How He rose three times from His sweat-inducing prayer, returned to the disciples and found that they were asleep;
# How they were all overcome by temptation because they forsook their Teacher and fled, for they were not prepared to overcome their fear of men;
# How we, too, become lazy and are not vigilant and do not pray to God, for when temptation comes we forsake the Lord Christ.
! HOMILY
! on the vision of the eyes and the vision of the soul
"And being found in fashion as a man" (Philippians 2:7).
This the Apostle Paul said. He is that same apostle who said about the Lord Jesus that He //is the image of the invisible God, the firstborn of all creation//(Colossians 1:15), and //in Him dwelleth all the fullness of the Godhead bodily// (Colossians 2:9). This is the Lord according to His Essence and according to His internal Nature, but He //was made in the likeness of men! //. Men, whose hearts are hardened like stone and whose minds are darkened, recognize objects around themselves only through their eyes. Such men, in those days, looked with their eyes and saw Jesus as a man. It was not given to them to know anything more about Him than that which their physical eyes saw. Physical man saw Jesus and beheld only the body, but saw neither God nor a perfect and sinless man in that body.
Even today, whosoever judges only by that which he sees, denies to Jesus all that he cannot see in other men. No one who judges the Lord with only his eyes can speak the truth about Him. That which the eyes can see of Him is but a small veil, behind which is hidden the eternal mysteries of heaven and the greatest mysteries of time and earth. In order to see that which is hidden in Him, behind the physical veil, one must have spiritual vision. That is the Spirit of God in one's heart, the Spirit Who draws back the veil and reveals the mysteries.
O Lord, Mystery most sweet, make us worthy to be visited by Thy Holy Spirit.
To Thee be glory and praise forever. Amen.////
! THE HOLY FORTY MARTYRS OF SEBASTE
All of them were soldiers in the Roman army and steadfastly believed in the Lord Jesus. When the persecution of Christians began during the reign of Licinius, they were brought to trial before the commander. When he threatened to strip them of their honor as soldiers, one of them, St. Candidus, responded: "Take away from us not only the honor of being soldiers but also our bodies, for nothing is more dear or honorable to us than Christ our God." After that, the commander ordered his servants to stone the holy martyrs. While the servants were hurling stones at the Christians, the stones turned and fell back on the servants, forcefully striking them. One of the stones struck the commander's face and knocked out his teeth. The torturers, angry as wild beasts, bound all of the holy martyrs and threw them into the lake. They then stationed a guard around the lake to prevent any of them from escaping. There was a terrible frost, and the lake froze around the bodies of the martyrs. To increase their pain and suffering, and to persuade even one of them to deny Christ and acknowledge the idols of Rome, the torturers heated and illumined a bath by the side of the lake in sight of the frozen martyrs. Indeed, one of them was persuaded. He came out of the water and entered the bath. And behold, from heaven there appeared an extraordinary light, which warmed the water in the lake and the bodies of the martyrs. With that light, thirty-nine wreaths descended from heaven over their heads. Upon seeing this, a guard on the shore removed all his clothes, confessed the name of the Lord Jesus and entered the lake so that he could become worthy of the fortieth wreath in place of the betrayer. Indeed, the last wreath descended upon him. The next day the entire town was astonished when they saw that the martyrs were still alive. Then the wicked judges ordered that the lower part of their legs be broken and their bodies thrown into the water so that the Christians could not recover them. On the third day the martyrs appeared to Peter, the local bishop, and summoned him to gather their relics and remove them from the water The bishop with his clergy went out in the dark of night and beheld the relics of the martyrs shining brightly in the water. Every bone which was separated from their bodies floated to the top and glowed like a candle. Bishop Peter gathered and honorably buried them. The souls of these martyrs went to the Lord Jesus, Who suffered for all of us and resurrected with glory. They suffered honorably and were crowned with unfading glory in the year 320 A.D.
! THE VENERABLE PHILOROMUS
He lived and mortified himself in Galatia in the fourth century. It is said about him that he was so perfected in all virtues that he resembled an angel rather than a man. He was especially glorified because of his patience. He was persecuted by the Emperor Julian the Apostate and suffered much for Christ. After the death of Julian the wicked persecutor of Christ, St. Philoromus lived peacefully, benefitting many. He reposed in his eightieth year.
! SAINT CAESARIUS
St. Caesarius (+369), the brother of Gregory the Theologian, was also a theological writer. Among other things he attempted to answer the question: How long a time did Adam and Eve spend in Paradise before their expulsion? Some have determined the time to be six hours; others, twenty-four hours; and still others, three days. St. Caesarius was of the mind that the length of time was forty days. "Because," he says, "our Lord fasted forty days in the wilderness and during that time He was tempted by the devil. Since the old Adam could not resist the temptation of the devil in the abundance of Paradise, the new Adam resisted the devil valiantly in the hungry and thirsty wilderness."
! HYMN OF PRAISE
! THE HOLY FORTY MARTYRS
Martyrs in the lake, shackled by frost,
Strongly adhering to the Holy Faith, illumined by hope,
Cried out to their beloved God: "Thou, Who didst astonish the world
By Thine awesome sacrifice and Resurrection--Oh, do Thou enliven us!
The firmament of heaven and all created things glorify Thee;
Behold, the abyss, fire, hail, snow, ice and heat glorify Thee!
Thou didst help the great Moses, Thy servant,
And Joshua Son of Nun, and after that Elisha,
By commanding nature to calm and divide the waters.
Now help Thy faithful as Thou hast until now.
Do not allow the frost to be stronger than man,
That we, Forty Martyrs, not become the subject of scorn.
Oh, Thou canst, if Thou willest, for Thou rulest over all;
Thou, when Thou wantest, canst change ice into heat and heat into ice.
For Thy name, the frost consumes us as an angry beast--
Oh, help us that the name of the Almighty may be praised!"
Martyrs in the lake, shackled by frost,
Were warmed from heaven by God's light.
Gloriously they fell and remained Forty Martyrs
To the fear, horror and shame of the darkened unbelievers.
! REFLECTION
Conceal your spiritual treasures and do not reveal them unnecessarily. Behold how men conceal and hide their material wealth, and how, when forced to reveal how much they have, they always conceal the greater amount and only reveal the lesser. Very few are they who wish to reveal all that they possess, and fewer still are those who would declare that they have more than they actually possess (and these the world considers frivolous and mindless). This clearly shows you how you need to conceal your spiritual wealth, that is, your virtues, good works, fasting, vigils, and prayers. Why do not the wise children of this world reveal their material wealth? For two reasons: So that neither would thieves hear of it, nor would evil men be provoked to envy. There also exist envious and jealous thieves in regard to spiritual treasure. They are the spirits of malice. As soon as you reveal your spiritual treasure, they will endeavor to belittle it and to squander it. Just as soon as you reveal it without need--let us say, out of vanity, so as to be praised--they seize it and disparage it. And you, O rich man of spiritual treasure, will imperceptibly and suddenly become a poor man. Many who were spiritually rich, the saints, made themselves out to be fools before the world so that, by appearing foolish, they would conceal their great wisdom and strength within themselves. Abba Isaiah writes: "Those good works that are performed in secret are more pleasing to God." St. Nilus of Sinai says: "The covered skin of the body is white, but the uncovered skin is parched and black." So it is with our concealed and our revealed good works.
! CONTEMPLATION
Contemplate the Lord Jesus in the hands of God's enemies gathered together in the home of Caiaphas:
# How all of them hurriedly sought false witnesses, for they wanted by whatever means to kill Christ;
# How they spat in His face and struck Him on the face;
# How our Lord endured all with unspeakable dignity and without anger.
! HOMILY
! on enduring to the end
"But he that shall endure unto the end, the same shall be saved" (Matthew 24:13).
O Lord most wonderful, Thou hast endured all--everything to the end. That is why Thou becamest not only blessed but also the source of blessings for all men who desire good for themselves throughout the ages.
The apostles endured all to the end and entered into blessed eternity. The saints willingly endured difficulties and sufferings to the end and were glorified in heaven and on earth. The martyrs willingly endured all pains to the end and became the adopted fellow heirs of the Kingdom of Christ.
Every founder of a new organization recruits followers for himself with the promise of good fruits and many pleasures, but deliberately remains silent about the hardships and labors that lead to those fruits and pleasures. Our Lord Jesus is the only one Who spoke the whole truth to His followers--both the bitter and the sweet side of the truth. He did not promise fruits without service, glory without suffering, ultimate rest without the thorny path, victory without struggle, pleasure without bitterness, or the Kingdom without tears and self-denial.
Although our Lord enumerated the many difficulties that would befall His followers, in the end He does not abandon them without consolation. He gives meaning to their sufferings and does not leave them in darkness. He says: //He that shall endure unto the end, the same shall be saved.// And what that blessing is which awaits those who endure to the end, He Himself has sufficiently revealed. This blessing has been witnessed to even until today and continues to be witnessed to by many saints, who have either appeared in glory to the faithful from the other world or who, while yet in the flesh, were raised in the spirit to a vision of that glory and blessedness which await those who are faithful, elect and persevering.
O Lord, Thou art our strength. Help us to endure to the end in the faith that Thou art beside us.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET JEREMIAH
Jeremiah was born about 650 years before Christ in the village of Anathoth near Jerusalem. He began to prophesy at the age of fifteen, during the reign of King Josiah. He preached repentance to the king and noblemen, false prophets and priests. During the reign of King Josiah, Jeremiah barely escaped death at the murderous hands of the enraged nobles. Concerning King Jehoiakim, he prophesied that the king's burial would be like the burial of an ass, that is, his dead body would be cast outside Jerusalem and dragged along the ground and without benefit of burial [//He shall be buried with the burial of an ass, drawn and cast forth beyond the gates of Jerusalem//(Jeremiah 22:18)]. Because of this, Jeremiah was cast into a prison. Not being able to write in prison, he sent for Baruch [the son of Neriah], who stood near a small window of the prison while Jeremiah dictated to him. When this prophecy was read to King Jehoiakim, the enraged king seized the paper and threw it into the fire. Divine providence saved Jeremiah from prison, and the words of the prophet concerning Jehoiakim were fulfilled. Concerning King Jeconiah [son of Jehoiakim, King of Judah], Jeremiah prophesied that he and his entire family would be carried off to Babylon and that he would die there. All of this came about shortly. Under King Zedekiah, Jeremiah placed a yoke around his own neck and walked through Jerusalem, prophesying the fall of Jerusalem and bondage under the yoke of the Babylonians [//Thus said the Lord to me; Make thee bonds and yokes and put them upon thy neck// (Jeremiah 27:2); //I spoke also to Zedekiah, king of Judah, according to all these words saying, bring your necks under the yoke of the king of Babylon, and serve him and his people, and live// (Jeremiah 27:12)]. Jeremiah wrote to the Hebrew captives in Babylon, telling them not to hope for a speedy return to Jerusalem, for they would remain in Babylon for seventy years, which came to pass [//This whole land shall be a ruin and a desert. Seventy years these nations shall be enslaved to the king of Babylon// (Jeremiah 25:11)]. Near Jerusalem in the Valley of Tophet, where the Jews sacrificed children to the idols, Jeremiah took a potter's clay vessel in his hands and shattered it before the people, prophesying the imminent routing of the Kingdom of Judah. The Babylonians shortly captured Jerusalem, slew King Zedekiah, plundered and destroyed the city, and beheaded a great number of Jews in the Valley of Tophet on the same spot where children had been sacrificed to idols and where the Prophet Jeremiah had smashed the potter's vessel. Jeremiah, with the Levites, removed the Ark of the Covenant from the Temple to Mount Nebo, where Moses had died. There he hid the Ark in a cave. However, he hid the fire from the Temple in a deep well. Jeremiah was forced by some Jews to accompany them to Egypt, where he lived for four years and was then stoned to death by his countrymen. To the Egyptians, Jeremiah prophesied the destruction of their idols and the arrival of the Virgin and Christ-child in Egypt. There is a tradition that states that Alexander the Great visited the tomb of the Prophet Jeremiah.//) By Alexander's order, the body of Jeremiah was translated and buried in Alexandria.
--------------------
//) The Egyptians virtually deified St. Jeremiah. That is why they buried him as a king. Even after his death, they considered him a miracle-worker. They removed dust from his tomb as a cure against snake bites. Even today, many Christians invoke Jeremiah against serpents.
! THE VENERABLE MARTYR ACACIUS, THE SLIPPER-MAKER
Acacius was from the village of Neochorion near Thessalonica. Greatly maltreated by his master in Serres, Acacius converted to Islam. Later, as a penitent and monk, he lived in the Monastery of Hilandar [Mount Athos]. His poor and Christ-loving mother counseled him: "As you willingly denied the Lord, so now you must willingly and bravely accept martyrdom for Sweet Jesus." The son followed the advice of his mother. With the blessing of the fathers of the Holy Mountain, Acacius traveled to Constantinople, where the Turks beheaded him on May 1, 1816 A.D. His head is preserved in a reliquary in the Russian Monastery of St. Panteleimon on Mount Athos.
! THE VENERABLE PAPHNUTIUS OF BOROVSK
Paphnutius was born the son of a Tartar nobleman who later embraced the Christian Faith. At age twenty, he was tonsured a monk and continued to live in a monastery until his ninety-fourth year, when he reposed in the Lord. Paphnutius was a virgin and an ascetic, because of which he became a great miracle-worker and clairvoyant. He died in the year 1478 A.D.
! HYMN OF PRAISE
! THE PROPHET JEREMIAH
Jeremiah, chaste one and prophet,
Reveals the will of God to men.
When in sin, men decay
And trample upon the Law of God.
The prophet cries out, weeps and threatens,
His words are like a living flame,
Burning sinners, illumining the righteous;
His tears are as the tears of a mother,
Over her dying offspring.
The prophet foresees it: punishment is coming,
A punishment deserved a hundred fold.
The mercy of God turns to justice.
The prophet cries out, weeps and threatens,
Calling the sinful people to repentance.
The people heed what their leaders say,
And the leaders laugh at the prophet
And proclaim his words a lie!
But the prophet does not let himself be wearied;
With sufferings he seals his words.
Wicked men slew the prophet
And made him forever renowned.
All the words of the prophet were fulfilled--
The kingdom fell, the prophet was glorified.
! REFLECTION
The Venerable Paphnutius of Borovsk said to his disciples that a man's soul and his hidden works can be known by the look in his eyes. This seemed unbelievable to his disciples until this man of God actually confirmed it on more than one occasion. Foreseeing the fate of others, Paphnutius also foresaw his own fate. A week before, while still in good health, he prophesied that he would depart this world on the following Thursday. When Thursday dawned, he joyfully cried out: "Behold, the day of the Lord, rejoice O ye people; behold, the awaited day has come!" Behold, this is how a man meets death; a man who, during his whole life, pondered on separation from this world and the encounter with God.
! CONTEMPLATION
Contemplate the Ascension of the Lord Jesus:
# How two angels appeared to the disciples while they were still gazing after the ascended Lord;
# How the angels proclaimed that the Lord would come again in the same manner as the disciples saw Him ascending into heaven.
! HOMILY!
! on the power of the Lord's word
"Is not My word like the fire, says the Lord, like a hammer shattering rocks " (Jeremiah 23:29).
Yes, O Lord, Thy word is indeed like fire; like fire that warms the righteous and burns the unrighteous. And, indeed, Thy word is like a hammer; a hammer that softens the stony hardness of the heart of a penitent and pulverizes the heart of an unrepentant sinner into dust.
//Did not our heart burn within us, while He talked with us?//(Luke 24:32), the apostles asked after speaking with the resurrected Lord. When the heart of a man is set aright, it burns from the word of the Lord; it is melted by kindness and expands with love. However, when the heart in man is not set right, but hardened by sin, then the heart bakes from the word of the Lord and becomes even harder. //And pharaoh's heart was hardened// (Exodus 8:19).
In vain do sinners fortify themselves in their fortresses of stone, in their fortresses of iron, in their fortresses of silver and gold, and reject the armor of God's justice. The word of the Lord is as a powerful and irresistible hammer, when He pronounces judgment upon these fortresses of stone in which sinners fortify themselves.
In vain does the unbeliever fortify his house with impregnable stones and in vain does the statesman fortify the state, hardened with the wisdom of the world and not hoping in the Living God. The word of the Lord comes down like a hammer upon all that has been built apart from God or against God--like a powerful and irresistible hammer.
O brethren, let us not trust in our creations of stone, of marble, of gold, of silver, or of the godless stones of our individual thoughts. All of these are weaker before the power of God than dust before the power of the wind.
O Lord Almighty, help us to receive Thy word, that on Thy word we may build our lives both in this world and in the next.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE SIMON THE ZEALOT
Simon was one of the Twelve Great Apostles. He was born in Cana of Galilee. The Lord Jesus, with His Mother and His disciples, came to his marriage feast. When the wine ran out, the Lord changed water into wine (John 2:1-11). Witnessing this miracle, Simon the groom left his home, parents and bride and followed after Christ. Simon was called the Zealot because of his great and fiery zeal for the Savior and His Gospel. After receiving the gift of the Holy Spirit, Simon went to preach the Gospel in Mauritania in Africa. Because he succeeded in converting many to the Christian Faith, Simon was tortured and finally crucified, as had been his Lord, Who prepared for him a wreath of glory in the Immortal Kingdom.
! THE HOLY MARTYRS ALPHAEUS, PHILADELPHUS AND CYPRINUS
The three were brothers and the sons of Prince Vitalis in southern Italy. They were men of nobility and strong in faith. Condemned for their faith in Christ, they were led from one judge to another, from one torturer to another. They were taken to Sicily and slain there during the reign of Emperor Licinius. Alphaeus's tongue was severed and, having shed much blood, he died. Philadelphus was burned on an iron grate, and Cyprinus in a fire. Their incorrupt relics were discovered in 1517 A.D. The three brothers appeared to St. Euthalia (March 2).
! THE VENERABLE ISIDORA, FOOL-FOR-CHRIST
Isidora lived in the fourth century and was a nun in a convent in Tabennisi. She pretended insanity to conceal her virtues and her asceticism. Isidora performed the most menial tasks, ate leftovers from plates, served all and everyone, and was despised by all and everyone. At that time, an angel of God revealed Isidora's secret to the great ascetic Pitirim. Pitirim came to the convent, and when he saw Isidora he bowed down to the ground before her, and she did the same before him. Then the sisters informed Pitirim that she was insane. "All of you are insane," replied Pitirim, "and this one is greater before the Lord than I and all of you; I only pray that God will render to me that which is intended for her at the Dreadful Judgment!" Then the sisters became ashamed and begged both Pitirim and Isidora for forgiveness. From that time everyone began to show respect for Isidora. And she, to escape this honor, fled the convent to a place unknown, and reposed in about the year 365 A.D.
! THE BLESSED THAIS
Thais was a wealthy Christian maiden in Egypt. She decided not to enter into marriage and instead distributed her property to the monks of the desert. After she gave away all of her possessions, she began to live a life of debauchery. Learning of this, the hermits begged Abba John the Dwarf to go to Alexandria. This he did and began to weep before Thais. When she heard that the elder was crying because of her sins, she repented immediately, left home and everything she owned, and withdrew into the wilderness with the saint. One night while Thais was sleeping and John stood at prayer, he saw angels descend in a great light and take the soul of Thais. John learned that her instantaneous but warm repentance was more pleasing to God than the long years of external repentance of many hermits.
! HYMN OF PRAISE
! THE VENERABLE ISIDORA
In the desert, the ascetic Pitirim
Prayed to God and asked himself:
"In the world, is there anyone equal to me?"
Then appeared an angel of God,
Who gently reproached Pitirim:
"You magnify yourself in your thoughts, O Elder,
As though in the world there is no one better than you!
Come, follow me, O Elder Pitirim,
Come, follow me to see an aged woman.
Isidora made herself a fool-for-Christ:
See her, and be amazed.
She does not separate her heart from God,
And all her thoughts she binds to God;
Not like you, who in the body are here,
But in your thoughts are at the ends of the world!
Then you shall see all of her ascetic labors,
That to your shame, you might be put to shame by a woman!
And that you might glorify the wisdom of God,
That, in the midst of weeds, grows roses!"
! REFLECTION
In one of his prayers, St. Ephraim the Syrian turns to God with these words: "Lord, in that awesome and dreadful day Thou wilt say to us sinners: 'You men know very well what I have endured for you. What have you endured for me?' How will I, the wretched, cunning, sinful and foul one, respond to that? The martyrs will then point to their wounds of torture, the severed parts of their bodies and their endurance to the end. The ascetics will point to their ascetic labors, extended fasts, long vigils, almsgiving (philanthropies) and tears, and their endurance to the end. And I, the slothful, sinful, and lawless one, to what will I point? Spare me, O Lord! Spare me, O Merciful One! Spare me, O Lover of mankind!"
! CONTEMPLATION
Contemplate the action of God the Holy Spirit upon the apostles:
# How the small are made great by God the Holy Spirit;
# How the fearful are made fearless by Him.
! HOMILY
! on how the righteous endure ridicule because of the words of the Lord
"The word of the Lord has brought me derision and reproach all the day" (Jeremiah 20:8).
Who are they who reproach the prophet of God, the bearer of God's word, and the bearer of the power and wisdom of God? His people reproach him and say to him: "You preach to us a steep path. Even if it is from God, we cannot walk upon it because it is too steep for us.
Who are they who reproach the trumpeter of the Lord's voice when he sounds the alarm because a fire smokes in the distance and draws near to the city? The elders of the people reproach him and say to him: "Why don't you keep your mouth shut? It would be better for you and happier for us. That which seems to you to be a fire is not; it is rather a mist from the mountain dew!"
Who are they who still deride the man of God when he comes from God and proclaims the will of God? He is reproached by his wife and is derided by his brethren. They say to him: "You abandon your own work, which feeds you, and you go off to someone else's work, which humiliates you."
//The word of the Lord has brought me derision and reproach all the day.// Thus the prophet was able to say; and so could the apostles, the martyrs, and every zealot of the word of the Lord and of the Law of the Lord. Not one of them was frightened by reproach or derision, nor was he turned away from witnessing nor led from the road to wayward paths. The entire outside world reproached them and derided them. But the Lord strengthened them and made them inwardly joyful. The Lord overcame the world, and the saints of God overcame those who reproached and derided them.
O All-good Lord, strengthen our inner hearts so that reproaches will not disturb us and derision will not hinder us for the sake of Thy Name.
To Thee be glory and praise forever. Amen.
! SAINTS CYRIL AND METHODIUS, EQUALS TO THE APOSTLES
Saints Cyril and Methodius were brothers from Thessalonica, of distinguished and wealthy parents, Leo and Maria. The elder brother Methodius spent ten years as an officer among the Macedonian Slavs and thus learned the Slavic language. After that, Methodius withdrew to Mount Olympus and dedicated himself to monastic asceticism. It was here that Cyril (Constantine) later joined him. When the king of the Khazars, Kagan, requested preachers of the Christian Faith from Emperor Michael III, these two brothers were found and sent among the Khazars by command of the emperor. Converting King Kagan to the Christian Faith, they baptized him along with a great number of his chief assistants and an even greater number of the people. After some time they returned to Constantinople, where they compiled the Slavonic alphabet consisting of thirty-eight letters. They then proceeded to translate ecclesiastical books from Greek into Slavonic. At the request of Prince Rastislav, they traveled to Moravia, where they spread and confirmed the sacred Faith and made more copies of the books, distributing them to the priests to teach the youth. At the request of the pope, Cyril traveled to Rome. There he became ill and died, on February 14, 867 A.D. Then Methodius returned to Moravia and labored to strengthen the Christian Faith among the Slavs until his death. Following his death (he reposed in the Lord on April 6, 885 A.D.) his disciples, the Five Followers, with St. Clement the bishop at their head, crossed the Danube River and traveled south into Macedonia. There, from Ohrid, they continued their labor among the Slavs, which Cyril and Methodius had begun in the north.
! THE HIEROMARTYR [PRIEST-MARTYR] MOCIUS [MUCIUS]
Mocius was Roman by birth and a presbyter in Amphipolis, a town in Macedonia. He suffered during the reign of Diocletian. By prayer he destroyed the statue of the god Dionysius. This embittered certain pagans against him, but others he converted to the Faith. He was beheaded for Christ in the year 295 A.D.
! SAINT NICODEMUS, ARCHBISHOP OF PEĆ
This great hierarch was a Serb by birth. He lived in asceticism on the Holy Mountain [Athos] and was abbot of Hilandar Monastery. Following the death of Sava III, he was elected archbishop of "all the Serbian and coastal lands" in the year 1317 A.D. Nicodemus crowned King Milutin in the year 1321 A.D. He translated the Jerusalem Typicon into Serbian. [The Typikon is a book containing the rubrics (directions) for the celebration of the Divine Mysteries and other offices of the Orthodox Church.] In the introduction of this book, Nicodemus writes: "Almighty God, Who knows our weaknesses, will give us spiritual strength, but only if we first display effort." He sincerely loved the ascetic life and labored to strengthen it throughout the Serbian land. He labored relentlessly to uproot the Bogomil heresy and to strengthen the Orthodox Faith. He reposed in the Lord in the year 1325 A.D. His miracle-working relics rest in the monastery in Peć.
! HYMN OF PRAISE
! SAINT CYRIL
The Moslem leaders asked Cyril:
"How can there be three persons in God?
If God is one, from where are there three persons?
Our God is one, yours is three!"
Cyril replied: "It is not that way, it is not,
But it is as the shining sun which warms at noon,
Which has its own light, warmth, and circle.
But that is a pale picture of the Divine Triad,
Three Divine Persons, but One in Essence.
Through Christ, this truth is revealed.
Never will mortal man comprehend this;
God Himself revealed this; this the Church teaches."
! REFLECTION
In the Saracen encampment they asked St. Cyril: "How can Christians wage war and at the same time keep Christ's commandment to pray to God for their enemies?" To this, St. Cyril replied: "If two commandments were written in one law and given to men for fulfilling, which man will be a better follower of the law: the one who fulfilled one commandment or the one who fulfilled both?" The Saracens replied: "Undoubtedly, he who fulfills both commandments." St. Cyril continued: "Christ our God commands us to pray to God for those who persecute us and even to do good to them, but He also said to us:! //Greater love hath no man than this, that a man lay down his life for his friends// (John 15:13). That is why we bear the insults that our enemies cast at us individually and why we pray to God for them. However, as a society, we defend one another and lay down our lives, that you would not enslave our brethren, would not enslave their souls with their bodies, and would not destroy them in both body and soul.
CONTEMPLATION!
Contemplate the action of God the Holy Spirit upon the apostles:
# How He makes the simple wise;
# How He makes the inarticulate eloquent.
HOMILY!
on the irresistible will of God!
"I say to myself, I will not mention Him, I will speak in His name no more. But then it becomes like fire burning in my heart, shut up in my bones; I grow weary holding it in, I cannot endure it" (Jeremiah 20:9).
If anyone still doubts that God spoke through the prophets, let him read this confession of the great prophet Jeremiah, and let him doubt no more. The prophet confesses that he had decided not to speak anymore in the name of the Lord. Why? Because so few paid attention to his word. If anyone heeded his word, the prophet endured //reproach and derision daily//(Jeremiah 20:8). But when he decided to remain silent, did he in fact remain silent? No, he could not: //I grow weary holding it in, I cannot endure it!// He was pressed by the irresistible power of the Spirit of God to speak, and he had to speak. Therefore, it is not the affair of the prophet whether he is going to speak or not: that is the affair of the All-powerful Spirit of God. The prophet is merely the chosen vessel of the All-powerful Spirit of God. All of Holy Scripture is written thus: not according to the will of man but according to the will of God, and not according to the mind of man but according to the mind of God.
How is the word of God felt when it enters the prophet from the Spirit of God? This the great Jeremiah explains from his personal experience: //It becomes like fire burning in my heart, shut up in my bones.//That is, it is an inspiration from the All-powerful Spirit of God. Under such irresistible internal pressure--like the pressure of fire shut up in the bones--holy men of God did their writing. And many of them cried out: //I grow weary holding it in, I cannot endure it anymore.// Who will oppose the Spirit of God without punishment and destruction? Who will withstand Him when He wills to say or do something?
O my brethren, the action of God the Holy Spirit is irresistible!
O All-powerful Spirit of God, direct us irresistibly on the path of salvation.
To Thee be glory and praise forever. Amen.////
! SAINT EPIPHANIUS, BISHOP OF CYPRUS
Epiphanius was a Jew by birth, but, seeing the power of the Christian Faith, he was baptized along with his sister Callithrope. At the age of twenty-six, he was tonsured a monk in the Monastery of St. Hilarion. Later, he established a separate monastery, where he became famed throughout all of Palestine and Egypt because of his asceticism, spiritual wisdom and miracle-working. Fleeing from the glory of men, Epiphanius withdrew to Egypt. On the way, he met the great Paphnutius, who predicted that he would become bishop on the island of Cyprus. Indeed, by divine providence, after many years Epiphanius arrived at Cyprus. There he was unexpectedly chosen as bishop. At the age of sixty, he became the bishop of Salamis and, as such, governed the Church of God for fifty-five years. He lived a total of 115 years on this earth and then rested from this life, so as to live eternally in the Kingdom of Christ. Before his death, he was summoned to Constantinople by Emperor Arcadius and his wife Eudoxia to an assembly of bishops, which, according to the wish of the emperor and the empress, should have condemned St. John Chrysostom. Arriving in Constantinople, Epiphanius went directly to the palace of the emperor. The emperor and empress detained him for a long while trying to persuade him to declare himself against Chrysostom. The citizens and Chrysostom heard that Epiphanius had agreed with the emperor against Chrysostom. That is why Chrysostom wrote him a letter: "Brother Epiphanius, I heard that you advised the emperor that I should be exiled; know that you will never see your throne again." To this, Epiphanius replied: "O suffering John, withstand insults; know that you will never reach the place to which you are exiled." And both prophecies of these saints were quickly fulfilled. Not wanting to agree in any way with the emperor on the exile of Chrysostom, Epiphanius secretly boarded a ship and departed for Cyprus, but he died on the ship. The emperor banished Chrysostom to Armenia, but the saint died en route. St. Epiphanius reposed in the year 403 A.D. Among the many works of St. Epiphanius, the most famous is //The Medicine Chest [Panarion]//, in which eighty heresies are listed and refuted.
! SAINT GERMANUS (HERMAN), PATRIARCH OF CONSTANTINOPLE
Germanus was the son of the chief imperial senator, who was killed by Emperor Constantine Pogonatus. The same evil emperor castrated Germanus, and forcibly exiled him to a monastery. As a monk, Germanus shone like a star by his life and good works. Because of this, he was chosen as the first bishop of Cyzicus. When Anastatius II was crowned emperor, Germanus was elected Patriarch of Constantinople. As patriarch, he baptized the infamous Copronymos, who at the time of his baptism soiled the water with filth. Then the patriarch prophesied that this child, when he would become emperor, would introduce into the Holy Church some impure heresy. And this happened. When Copronymos became emperor, he restored the heresy of iconoclasm. Leo the Isaurian, the father of Copronymos, initiated the persecution of icons, and when Patriarch Germanus protested, the arrogant Leo cried out: "I am emperor and priest!" He removed Germanus from the patriarchal throne and banished him to a monastery, where this saint lived for ten more years until the Lord called him to Himself and to the Heavenly Kingdom in the year 740 A.D.
! THE HOLY MARTYR PANCRAS
Pancras came from Phrygia to Rome, where, as a fourteen-year-old boy, he was tortured and killed for Christ in the year 304 A.D. This saint is greatly revered in the West. In Rome there exists a church dedicated to him, and in this church his holy relics lie.
! HYMN OF PRAISE
! SAINT EPIPHANIUS
Epiphanius, follower of Christ,
With bread and water is fed.
By the power of Christ he performs miracles;
Like thunder he destroys heresies;
Soldier of Truth, pillar of Orthodoxy.
At death he leaves this testament:
"Extinguish the vile thirst for money,
Never envy the rich man,
Do not hate and do not slander,
And avoid every heresy.
Drive away all foul thoughts as if they were serpents,
For they make unbelievers out of believers.
Keep your mind sober, bound to God,
For an unsober man is the devil's booty.
Pray to God for me, a sinner.
With your whole life, glorify God!"
! REFLECTION
St. Clement of Alexandria tells of a horrible custom among the barbarians. He says that when they capture their enemy, they tie him alive to the corpse of a dead man and leave them bound together so that the living and dead rot together. If only it could be said: "Thank God that this barbarian custom is past!" In essence it has not passed, but reigns today in full force. Everyone who ties their living spirit to flesh deadened by barbarian passions is the same as the one who ties a living man to a corpse and leaves them both to decay.
! CONTEMPLATION!
Contemplate the action of the Holy Spirit on the apostles:
# How, from fishermen,, He makes fishers of men for the Kingdom of God;
# How, from shepherds of an irrational flock, He makes shepherds of the rational flock.
! HOMILY!
! on how men in prosperity do not listen to the Law of God
"I spoke to you in your prosperity; but you said: 'I will not hear'" (Jeremiah 22:21).
The Lord of Hosts raised this complaint against Jehoiakim, the king of Judah, and against the people of Judea. Are not these words valid even today when they are spoken to our people and to almost every one of us individually? When we feel ourselves prosperous, we leave God in the shadows and relegate His words to oblivion. However, as soon as misfortune encompasses us with its dark wings, we turn to God and cry out to Him for help. In misfortune, the commandments of God seem to us as sweet as honey, but in prosperity they seem as bitter as medicine. Is not, therefore, misfortune better than prosperity? Is not misfortune in which we seek God more salvific than prosperity in which we forget God?
//O earth, earth, earth! Hear the words of the Lord!// (Jeremiah 22:29), cries out the true prophet of God. Man is the earth; the word of the Lord is life planted in that earth. Will the earth prefer to remain without the living crops and be cursed, or will it nurse the crops entrusted to it and be blessed? Oh, how ugly is a barren, water-logged and fruitless field, and how beautiful is a cultivated field covered with rich crops! And you are both the one and the other field, O man. Choose--death or life! No householder values a field at all if it does not bear a crop. Is it possible that God is less intelligent than ordinary householders, and gives value to a field that fails to bear fruit of every seed sown on it?
What will become of man who, in his prosperity, does not listen to the words of God? //And he shall be buried with the burial of an ass //(Jeremiah 22:19). Thus spoke the prophet to King Jehoiakim, and his words were fulfilled. When the Chaldeans captured Jerusalem, they killed Jehoiakim. They dragged his body beyond the gates of the city and left it to the dogs. And so the fate of the disobedient king became that of an ass. O man, O earth! Hear the timely word of the Lord, so that the anger of the Householder does not pour out on you as on a barren field, and that your end not be truly like that of an ass.
O long-suffering Lord, save us from stoniness of heart and darkness of mind--from those two bitter diseases--the miserable consequences of those hours of life which men call prosperous. Save and have mercy on us, O Lord of Hosts!
To Thee be glory and praise forever. Amen.
! THE HOLY FEMALE MARTYR GLYCERIA
Glyceria was the daughter of a Roman governor. Becoming impoverished after her father's death, Glyceria settled in Trajanopolis in Thrace. During the reign of the wicked Emperor Antoninus, Glyceria was taken to offer sacrifices to the idol of Zeus. She traced the sign of the Cross on her forehead, and when the Prefect Sabinus asked where her lamp was (for all of them carried lamps in their hands), Glyceria pointed to the Cross on her forehead and said: "This is my lamp." As a result of her prayer, lightning struck the idol and smashed it to pieces. The prefect became angry and ordered her flogged and thrown into prison. He sealed the doors to the prison, determined to starve the virgin to death. However, an angel of God appeared to Glyceria and supplied heavenly food to her. After some time, when the prefect thought that the virgin must have died from hunger, he opened the doors of the prison and was astonished to see her healthy, radiant and joyful. Witnessing this miracle, Laodicius the jailer confessed Christ the Lord and was immediately beheaded. After that, Glyceria was thrown into a fiery furnace but remained unharmed by the fire. Standing in the midst of the fire and remembering the miracle of the three youths in the Babylonian furnace, Glyceria praised the Lord. Finally she was thrown to the lions. While praying to God, this holy virgin gave up her soul to the Lord, for Whom she had bravely endured many tortures. She suffered honorably in the year 177 A.D. A healing myrrh [oil] flowed from her relics, which healed the sick of the gravest diseases.
! THE HOLY MARTYR ALEXANDER
Alexander was a Slav. As an eighteen-year-old soldier in the army of Emperor Maximilian, he refused the order of the emperor to give honor to the Roman idols. For this he was handed over to Captain Tiberian, who was to either convince Alexander to deny Christ or else torture and kill him. Since all counseling was in vain, Tiberian took Alexander with him across Macedonia to Constantinople, whither [to where] he himself had an errand. In every town along the way the young Alexander was cruelly tortured, but also in every town Christians came out before him, begged him for a blessing and encouraged him in his sufferings. Pimenia, his mother, followed him. During the course of Alexander's travels, an angel of God appeared to him many times, assuaging [soothing] his pain and encouraging him. In one place named Carasura, the martyr performed a miracle through his prayers: when thirst overcame him and the soldiers who escorted him, he brought forth a well of cold water from an arid place. On the shore of the Ergina River, Tiberian ordered the executioner to behead Alexander and cast his body into the water. When the executioner swung at the martyr's head, he saw radiant angels of God around Alexander. Terrified, he dropped his hand. Alexander asked him why his hand had dropped, and the executioner replied that he saw some radiant young men surrounding him. Yearning for death and union with the Lord, Alexander prayed to God to withdraw the angels from him so that the executioner would not be frightened. Thus, the executioner carried out his work in the year 298 A.D. Pimenia removed the body of her son and honorably buried him. Many healings occurred at the grave of the martyr. After his death, the martyr appeared to his mother and informed her of her imminent departure to the other world.
! THE VENERABLE JOHN, EUTHYMIUS, GEORGE AND GABRIEL OF IVERON MONASTERY [MOUNT ATHOS]
These four Holy Fathers were the founders of the famous Iveron (Georgian) Monastery on the Holy Mountain. At first St. John lived a life of asceticism in the Lavra [Monastery] of Athanasius, and after that he founded his monastery, Iveron. John reposed in the year 998 A.D. Euthymius and George translated the Holy Scripture into the Georgian language. Euthymius reposed in the year 1029 A.D., and George in 1066 A.D. Gabriel was found worthy of receiving the miracle-working Icon of the Mother of God, which arrived at the monastery by way of the sea.
! HYMN OF PRAISE
! SAINT GLYCERIA
"Glyceria--sacrifice to the gods!"
Thus orders the mindless judge.
"Or you shall be thrown into the fire, to be consumed."
Glyceria mocks the judge:
"God is one; the 'gods' are demons
Who confuse your mind.
What kind of sacrifice, O mindless man?
Was there not one Sacrifice on Golgotha,
An awesome sacrifice, divine and bloody,
That abolished all bloody sacrifices?
One sacrifice after that Sacrifice,
One sacrifice the Lord seeks from us:
A pure heart, as an altar of prayer;
Clean hands performing works of mercy;
Faith, hope, love and piety.
Such a sacrifice I endeavor to offer
To the Living God, my Creator.
God, the All-holy, desires such a sacrifice,
Not a corpse, bloody and dead."
! REFLECTION
Concerning the power of death and the power of the Cross of Christ, St. Athanasius writes: "Whose death ever drove out demons? And whose death has caused more fear in the demons than the death of Christ? Where the name of Christ is invoked, every demon is driven out. Who has tamed spiritual passions in people to such a measure that prostitutes come to live chaste lives, murderers lay down the sword, and the fearful become courageous? Has not the Faith of Christ? Has not the sign of the Cross? And what else has so convinced men of immortality as the Cross of Christ and the Resurrection of the Body of Christ? The death of the Sinless One and the Cross of the Lover of men have brought a greater and more lasting victory than have all the earthly kings with their many millions of soldiers. Which army was able to defeat a single demon? Only the mention of the name of the Crucified One puts to flight the army of demons. Oh, if all Christians would know what a treasure they have in the name of Christ, and what a weapon they have in the Cross of Christ!
! CONTEMPLATION
Contemplate the action of God the Holy Spirit upon the apostles:
# How the apostles, led by the Holy Spirit, traveled throughout the world without means and without friends;
# How they converted the rich and the poor to the Christian Faith by their words, lives and miracles alone.
! HOMILY
! on how God uses unbelievers to punish believers
"Nebuchadnezzar, the king of Babylon, My servant" (Jeremiah 25:9).
Is this not a hard saying? Who can be nourished by it? A pagan king, an idolatrous king, called by the Lord, "My servant!" If a servant of God is one who knows the true God and adheres to the Law of God, how then can one be a servant of God who neither knows the true God nor adheres to the Law of God? Indeed, the true servant of God is he who knows the true God and who keeps the Law of God. However, when he to whom God has given the knowledge of Himself and His law turns knowledge into ignorance and law into lawlessness, then God takes as His servant him who does not know Him, so as to punish the apostate. For an apostate from God is worse than a pagan, and an apostate from the Law of God is lower than a born idolater.
Therefore, when Israel, as the ancient Church of God, alienated itself from God and the Law of God, God chose Nebuchadnezzar as His servant to punish Israel, the apostate.
Therefore, when the Christian peoples in Asia and Africa through numerous heresies alienated themselves from God, God took as His servant the Arabs, to punish the Christians and bring them to their senses.
And when the Christian peoples in the Balkans alienated themselves from God and God's law, God invited the Turks as His servants to punish the apostates, so that through chastisement they would come to their senses.
Whenever the faithful alienate themselves from God, God makes a whip out of the unbelievers to bring the believers to their senses. And, as the faithful consciously and willingly turn away from God, so the unbelievers unconsciously and unwillingly become servants of God: the whip of God.
But God takes the unbelievers only temporarily into His service against the believers. For the same Lord says of the land of Nebuchadnezzar that He will visit it for its lawlessness and //make it a perpetual desolation// (Jeremiah 25:12). Then He will find a servant against His servant. For God did not take the Babylonians for His servants because of their goodness and faith, but rather because of Israel's wickedness and unbelief.
O Righteous Lord, help us by Thy Most-high Spirit to always adhere to Thee, the One True God, and to Thine own saving Law.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR ISIDORE
During the reign of Decius, Isidore was taken by force into military service from the island of Chios. From childhood Isidore adhered to the Christian Faith and spent his entire life in fasting, prayer and good works. But when in the army Isidore declared himself a Christian, the commander seized him, demanded an explanation, and urged him to deny Christ and offer sacrifices to the idols. The saint replied: "Even if you kill my body, you have no authority over my soul. I possess the True, Living God, Jesus Christ, Who lives in me now and after my death. He will be with me, and I am in Him and will remain in Him, and I will never cease to confess His holy name as long as my soul is in my body." First, the commander ordered that Isidore be whipped with bullwhips, and after that they cut out his tongue. Even without his tongue, Isidore, by the Spirit of God, spoke and confessed the name of Christ. Meanwhile, the punishment of God came upon the commander, who suddenly became mute. Finally, the mute commander gave the sign to behead Isidore. Isidore was elated at this sentence. After praising God, went to the scaffold, where he was beheaded in the year 251 A.D. His companion, Ammon, buried his body and then also suffered and received the martyr's wreath.
! THE VENERABLE SERAPION THE SINDONITE
Sindon means "linen cloth." Serapion was called "the Sindonite" because he covered his naked body with a single linen cloth. He carried the Gospels in his hand. Serapion lived like a bird, with neither a roof nor any worries, moving from place to place. He gave his linen cloth to a needy person who was shivering from the frost, and Serapion remained completely naked. When someone asked him: "Serapion, who disrobed you?" he pointed to the Holy Gospels and said, "This!" After that he even gave his copy of the Gospels away as a ransom for a man in debt, whose creditor was threatening him with prison because of the debt. Once, in Athens, he ate nothing for four days, because he had nothing available, and began to cry out from hunger. When the Athenian philosophers asked him why he was crying out so, Serapion replied: "I was indebted to three, two of whom I have satisfied, but the third one is still tormenting me. The first creditor is carnal lust, which tormented me from my youth. The second creditor is avarice, and the third creditor is my stomach. The first two have left me, but the third one still torments me." The philosophers gave him a gold coin to purchase bread. He went to a baker, purchased only one loaf of bread, left the gold coin and departed. He presented himself peacefully to the Lord in his old age, in the fifth century.
! BLESSED ISIDORE THE FOOL-FOR-CHRIST
Isidore was of German descent. Having come to Rostov, he came to love the Orthodox Faith. He not only became a communicant of the Orthodox Church but also assumed the difficult life of asceticism as a fool-for-Christ. He walked around clothed only in rags. Pretending insanity, he spent the entire day teaching men, and spent his nights in prayer. He spent these nights in a hut made of branches, which he had built in muddy terrain. Great and awesome were the miracles that this saint performed both during his life and after his death. To a merchant, who was thrown from a boat and was drowning in the sea, Isidore appeared walking upon the water and led him to shore. When the servants of the Prince of Rostov refused Isidore a glass of water that he had asked for and drove him away from the door, then all the prince's vessels of wine dried up. When Isidore died in his hut on May 14, 1484 A.D., the whole of Rostov was imbued with a wonderful fragrance. The merchant who had been saved from the sea erected a church in Blessed Isidore's honor over the spot where his hut had been.
! HYMN OF PRAISE
! BLESSED ISIDORE THE FOOL-FOR-CHRIST
Blessed Isidore wrestled with himself
Until he became as passionless as a withered tree.
But even a withered tree is filled with honey by bees,
And from a dry rock a spring sometimes gushes forth.
The body of the blessed one was filled with the Spirit;
His heart was sweetened with the honey of grace;
In the body of a "fool" was the fountain of God's power;
In poor garments was a hidden treasure.
Wonderful Isidore lay on the garbage heap.
Through the streets he cried out, leapt and fled,
With neither roof nor bread, without friends,
But under the watchful eye of his Creator.
He was a lesson to vain men;
And to those bound like beasts to the earth, he was a reproach.
By his life, it was as though he wanted to say:
"Men, your cares lead to misfortune.
A fortunate man is not one who steals from God,
But one who possesses God alone as his treasure."
! REFLECTION
A sin that serves as a scandal to others is a twofold sin. A wise man strives neither to scandalize anyone nor to lead anyone into sin by his sinful example. St. Ambrose praised such sagacity in the Emperor Valentian, who died at an early age, citing these examples from his life: "Hearing that he was spoken of throughout Rome as a passionate hunter and a lover of wild beasts--which in reality he was not--and how this passion was distracting him from his duties of state, the emperor immediately ordered that all the wild beasts in his preserve be slain. Again, upon hearing how certain malicious people spread the rumor that he ate lunch early (wanting by this to make him out to be a glutton), the emperor imposed a strict fast on himself both privately and publicly. At public meals, he was rarely seen to place a morsel of food in his mouth. And again, when his sisters disputed with a certain man over some property, the emperor, even though he had the right to judge the dispute, directed the case to the open court so that he would not be accused of partiality." Indeed, with great fear, this pious emperor upheld the words of the Lord: Woe to him//who shall offend one of these little ones// (Matthew 18:6).
! CONTEMPLATION
Contemplate the action of God the Holy Spirit upon the apostles:
# How the Holy Spirit led the apostles through all sorrows and tribulations, filling their hearts with consolation and joy;
# How the Holy Spirit made those seeds of the Gospel that the apostles sowed throughout the world grow and flourish, even where they seemed to have been scattered in vain.
! HOMILY
! on Christ as the Branch of David
"In those days, and at that time, will I cause the Branch of righteousness to grow up unto David; and he shall execute judgment and righteousness in the land" (Jeremiah 33:15).
With these words, the Holy Prophet Jeremiah prophesied the coming of the Holy Savior of the world from the line of David. The Branch of Righteousness is Jesus Christ Himself. These words could not have referred to anyone else, since, at the time of the Lord Jesus' coming, a prince of the lineage of David no longer sat on the throne at Jerusalem but rather a foreigner, Herod the Idumean. Nor from then until today has there been any other prominent branch of David, either as a worldly ruler or as a spiritual ruler. At the time of the Nativity of Christ, there were but a few people from the tribe of David, and they were unknown and impoverished. Among these were the Most-holy Virgin and the righteous elder, Joseph the carpenter. It is clear, therefore, that for the thousand years after this prophecy was spoken, no other majestic branch from the lineage of David appeared, except the Lord Jesus. This becomes more clear from the following words: //As the host of heaven cannot be numbered, neither the sand of the sea measured: so will I multiply the seed of David My servant, and the Levites that minister to Me// (Jeremiah 33:22). These words could only apply to the spiritual descendants of David through Christ the Lord, that is, to Christians. For only the number of Christians (and not the physical descendants of David, of whom there are not any at all) during these twenty centuries can be measured with the stars in the heavens and with the sand in the sea.
O my brethren, let us rejoice that we Christians are among this countless number of God's people, among the greatest people in the history of the world, both as to numbers and as to character. Let us rejoice even more that we belong to that divine Branch of David, Who by His Blood redeemed us from the stranger, adopted us and made us heirs and co-heirs of the Eternal Kingdom. O All-good Lord, Thou hast redeemed us prodigal sons from contemptible humiliation and hunger, and hast made us sons of the Kingdom.
To Thee be glory and praise forever. Amen.
! THE VENERABLE PACHOMIUS THE GREAT
Pachomius was born in Egypt and was a pagan in his youth. As a soldier, he fought alongside Emperor Constantine in battle against Maxentius. After that, he learned of the One God from Christians and, witnessing their devout life, he was baptized. He withdrew to the Thebaid desert, to the famous ascetic Palamon, with whom he practiced the ascetic life for ten years. Then, at a place called Tabennisi, an angel appeared to him in the robes of a schemamonk [the Great Angelic Habit of a Monk] and gave him a board upon which was written the rule for a cenobitic monastery. The angel ordered him to establish such a monastery in that place, prophesying to him that to this monastery many monks would come for the sake of the salvation of their souls. Heeding the angel of God, Pachomius began to build many cells, even though no one was at that place except his brother John and himself. When his brother reproached him for building unnecessary cells, Pachomius simply said to him that he was following the command of God without regard as to who would come to live there and when. Soon many men, moved by the Spirit of God, gathered at that place and began to live a life of asceticism according to the Rule of Pachomius, which he had received from the angel. As the number of monks increased, Pachomius gradually established six more monasteries. The number of his disciples amounted to about seven thousand. St. Anthony is considered to be the founder of the eremitic life; and St. Pachomius, of the monastic cenobitic way of life. The humility, love of labor, and abstinence of this Holy Father were and remain rare examples for imitation by a vast number of monks. St. Pachomius worked numerous miracles, but he also endured numerous temptations from demons as well as from men. He served men as both a father and a brother. He inspired many to follow the path to salvation and directed many on the path to truth. He was and remains a great light of the Church and a great witness to the truth and righteousness of Christ. He died peacefully in the year 348 A.D. in the seventy-fourth year of his earthly life. The Church has included many of his disciples in the ranks of the saints, such as: Theodore, Job, Paphnutius, Pecusius, Athenodorus, Eponichus, Sorus, Psois, Dionysius, Psentaesis and others.
! SAINT ACHILLES, BISHOP OF LARISSA
Achilles, the great hierarch and miracle-worker, was born in Cappadocia. He participated in the First Ecumenical Council [Nicaea, 325 A.D.], at which he shamed the heretics and commanded great astonishment by his learning as well as by his sanctity. Picking up a rock, St. Achilles shouted to the Arians: "If Christ is a creation of God, as you say, then command oil to flow from this rock." The heretics remained silent and were amazed at such a request from St. Achilles. Then the saint said: "And if the Son of God is equal to the Father, as we believe, let oil flow from this rock." And, indeed, oil did flow to the amazement of all. St. Achilles reposed peacefully in Larissa in the year 330 A.D. When the Macedonian King Samuel conquered Thessaly he translated the relics of Achilles to Prespa, to an island in a lake, which even today is called Achilles or Ailus.
! THE VENERABLE SILVANUS
At first, Silvanus was a comedian, impersonating everyone and everything. But then he was inflamed with love for Christ and became a disciple of St. Pachomius. "I am ready to give my life," St. Silvanus would say "only to receive forgiveness of my sins."
! HYMN OF PRAISE!
! THE VENERABLE PACHOMIUS THE GREAT
With the Spirit of God, Pachomius burns;
With the angels, Pachomius speaks.
Around him the monks gather;
Like candles, they all stand before God.
One day, the knocker sounded;
The Abba's sister came to see the Abba.
For many years she had not seen him.
Let him appear; why does he hide himself from her?
The gatekeeper brings the message to the Abba,
And the Abba gives him greetings to take to her:
"I, my sister, wish you every good fortune,
But I will not come to see you.
I once bade farewell to the world
And renounced everything in the world.
My sister, renounce it yourself.
Hurry, Sister, dedicate yourself to God.
What can the world give you, except the grave?
Christ will crown you with life.
Worldly pleasures are illusionary dreams;
Asleep with these dreams, a person is fattened;
But when he is awakened, he feels hungry,
And in another dream he is robbed by the adversary,
And roars for food like a hungry lion.
Cry out and shout for true Bread.
Christ hears all who call upon Him
And gives Living Bread to the hungry.
That is real--all else is a daydream.
Outside Christ, there is no hoping."
The sister heard and began to weep;
Her brother's counsel she quickly obeyed.
! REFLECTION
When a tyrant commits violence against the righteous out of greed, then the violence brings about loss and gain; that is, a loss to the tyrant and a gain to the one who suffered violence. Boris Godunov murdered Dimitri, the eight-year-old crown prince, to gain control of the throne without competition. The imperial days of Boris ended quickly, and the tyrant was given over to corruption and condemnation, but Dimitri was proclaimed a saint. After lying in the grave for fifteen years, the body of Dimitri was exhumed and found to be incorrupt and miracle-working. Forty-five miraculous healings occurred over his body. Who, therefore, receives the injury, and who receives the benefit from tyranny? If the tyrant knew that by his tyranny he would help his opponent to be included among the saints and that he would prepare defeat and damnation for himself, he would desist from his plan of violence. But twisted thinking is the forerunner and companion of tyranny.
! CONTEMPLATION
Contemplate the action of God the Holy Spirit upon the apostles:
# How, by the Holy Spirit, the apostles received mystical visions of the other world;
# How, by the Holy Spirit, the apostles perceived mysteries in the hearts of men.
! HOMILY
! on the prophesied and actual destruction of the idols of Egypt
"And the houses of the gods of the Egyptians shall burn with fire" (Jeremiah 43:13).
Who will burn them? //Nebuchadnezzar, the king of Babylon, My servant//, said the Lord (Jeremiah 25:9). This prophecy came true. Nebuchadnezzar conquered Egypt and by fire destroyed the houses of the false gods, the idols of the Egyptians. He burned them but he did not destroy them forever. For after that came the destruction of Babylon, again according to the prophecy of the holy Prophet Jeremiah, and Babylon became and remains to this day //heaps, a dwelling place for dragons, an astonishment and a hissing, without an inhabitant// (Jeremiah 51:37). But there is a tradition, recorded by St. Epiphanius of Cyprus, that there remained another prophecy of Jeremiah about the final destruction of the idols of Egypt: "All the idols will fall," says this prophecy, "and all that is made by hands will be destroyed at the time when a Virgin Mother comes here with a young Child, Who was born in a cave and placed in a manger." This prophecy was preserved by the pagan priests themselves, who from the time of Jeremiah introduced the custom of depicting the Virgin as she reclines on a bed and her young Child wrapped in swaddling clothes lying in a manger.
Nebuchadnezzar, the servant, was able by God's permission to cut down evil, but not to pluck it out by the roots. Sheared evil, like sheared grass, grows again. When the Lord came to earth, He plucked out evil by the roots. Nebuchadnezzar, the servant, burned the temples and the idols, but the temples were rebuilt and new idols were made, for they were not plucked out from the souls of men. When the Lord came and began His reign in the souls of the Egyptians, the temples and idols fell forever. So it was the same with the disobedient Jews who waged war against God. Nebuchadnezzar, the servant, took them into bondage for seventy years, and the offended Lord scattered them throughout the world, where many of them find themselves in dispersion today even after two thousand years. This scattering of the Jewish people throughout the world was clearly prophesied by Jeremiah. Thus, time justified the prophet of God in all his words.
O All-seeing Lord, grant us that we adhere to the words of Thy true prophet.
To Thee be glory and praise forever. Amen.
! THE VENERABLE THEODORE THE SANCTIFIED
Theodore was a disciple of St. Pachomius. He was born and raised a pagan, but as a young man he came to the knowledge of the true Faith and was baptized. Learning of St. Pachomius, Theodore secretly fled from his parents' home to Pachomius's monastery. St. Pachomius tonsured him a monk and loved him for his extraordinary zeal and obedience. When his mother arrived to summon him back home, Theodore did not want even to appear before her. Instead, he prayed that God would enlighten her with the truth. Indeed, not only did her son not return home, but she herself did not return home. Seeing a nearby convent that was under the spiritual direction of Pachomius's sister, she entered it and was tonsured a nun. After some time Paphnutius, Theodore's brother, also came to the monastery and was tonsured a monk. In time the bishop of Panopolis called St. Pachomius to establish a monastery for those who desired the monastic life. Pachomius took Theodore with him and entrusted him with the duty of establishing this new monastery. After the death of Pachomius, Theodore became the abbot of all Pachomius's monasteries and lived to a ripe old age. Theodore lived a life pleasing to God, directing many monks on the road to salvation. He reposed peacefully and took up his habitation in the Kingdom of Eternal Light in the year 368 A.D.
! THE BLESSED VIRGIN MUSA
St. Gregory the Dialogist recounts of her that she was only nine years old when, on two occasions, the Most-holy Theotokos [Birth-giver of God], surrounded by radiant virgins, appeared to her. When Musa expressed her desire to also be a member of that radiant company of the Queen of Heaven, the Theotokos said to her that she would return and take her in one month. She also instructed Musa how to live for those next thirty days. On the twenty-fifth day, Musa took to her bed. On the thirtieth day, the Most-pure One appeared again, calling to her in a soft voice, to which Musa answered: "Behold, I am coming. O Lady, behold, I am coming!" and she gave up her spirit. Musa was translated from this life into life eternal in the fifth century.
! SAINT NICHOLAS MYSTICUS, PATRIARCH OF CONSTANTINOPLE
Nicholas was famous because of the unusual severity of his life. When Emperor Leo the Wise married for the fourth time, the patriarch refused him entrance into the church and defrocked the priest who performed the marriage. As a result of this, the emperor deposed the patriarch and banished him to a monastery. The delegates of the Roman Pope Sergius II approved the emperor's fourth marriage. When the emperor died, Nicholas was again restored to the patriarchal throne and called an assembly in the year 925 A.D., at which a fourth marriage for a Christian was in general forbidden. The name "Mysticus" signifies the senior member of the emperor's council. At first, this saint had been a high-ranking courtier, but then he left the vanity of the world and was tonsured a monk. He reposed peacefully in the year 930 A.D.
! THE HOLY NEW MARTYR NICHOLAS
Nicholas was born in Epira. He was tortured by the Turks for the Christian Faith and beheaded in Trikkala in 1617 A.D. A reliquary containing the head of this martyr is preserved today in one of the Meteora monasteries in Thessaly. He performs many miracles and heals the gravest diseases. He is especially known to drive grasshoppers from fields.
! THE VENERABLE MARTYRS OF THE MONASTERY OF ST. SAVA THE SANCTIFIED
During the reign of Emperor Heraclius, about the year 610 A.D., forty-four monks from the Monastery of St. Sava the Sanctified near Jerusalem suffered for the Christian Faith. Their heroism and sufferings were recorded by St. Antiochus, an eyewitness (December 24).
! HYMN OF PRAISE!
! SAINT NICHOLAS THE NEW MARTYR
Nicholas the martyr suffered for Christ,
And by painful endurance overcame the devil.
The hero did not want to deny his Savior,
But glorified God as long as he had a voice;
And he glorified Him in his heart when his voice gave out.
He begged his enemies for greater sufferings.
Cruel as wolves, the Turks beat him;
They put him through every inhuman suffering.
And finally cut off his holy head.
Into the green grass the saint's head rolled;
And it was shining with light.
A Christian wrapped the head in silk,
And brought it into church to be a remedy for many,
To heal the disfigured, the blind and the insane.
On all sides, God punished the unbelievers,
And the faithful Nicholas He eternally glorified.
! REFLECTION
When Theodore the Sanctified was in Panopolis with his spiritual father St. Pachomius, a philosopher approached him and offered to debate with him about the Faith. The philosopher posed these three questions to Theodore: "Who was not born, but died?" "Who was born and did not die?" "Who died and did not decay?" To these questions, St. Theodore replied: "Adam was not born but died. Enoch was born and did not die. Lot's wife died and did not decay." And the saint added this advice to the philosopher: "Heed our sound advice; depart from these useless questions and scholastic syllogisms; draw near to Christ, Whom we are serving, and you will receive forgiveness of sins." The philosopher was silenced by such a pointed answer and, ashamed, he departed. From this, the enormous difference is clearly seen between a pagan philosopher and a Christian saint. The one [the philosopher] loses himself in abstractions, in cleverly twisted words, in contests of logic and in mental gymnastics, while the other [the saint] focuses his whole mind on the Living God and on the salvation of his soul. The one is abstract and dead, while the other is practical and alive.
! CONTEMPLATION
Contemplate the action of the Holy Spirit upon the apostles:
# How the Holy Spirit miraculously guided the feet of the apostles to distant lands;
# How the Holy Spirit assembled them in Jerusalem from distant lands for the burial of the Most-holy Theotokos.
! HOMILY
! on the appearance of the prophet Jeremiah from the other world
"This done, in like manner there appeared a man with gray hairs and exceeding glorious, who was of a wonderful and excellent majesty. Then Onias answered, saying, 'This is a lover of the brethren, who prays much for the people and for the holy city, to wit, Jeremiah the prophet of God'" (2 Maccabees 15:13-14).
This was the vision seen by the courageous Judas Maccabees. The first to appear to him from the other world was Onias the high priest, and after that the holy Prophet Jeremiah. Just as the apostles saw Moses and Elijah in glory on Mount Tabor, so at one time Judas Maccabees saw the Prophet Jeremiah in glory. Even before the risen Christ, then, the merciful God did not leave men without proof of life after death. In Christian times, however, those proofs are without number and without end. Whoever, even after all of this, doubts life after death, remains under the curse of his sin as under a tombstone. As dead things cannot see the light of day, neither can he see the life that is, and of which there is no end.
But behold how the Prophet Jeremiah is crowned with glory in the other life! //Gray hairs and exceeding glorious.// Around him was a certain indescribable dignity, a certain bright aureole, a certain inexpressible pleasure and beauty. He was dragged and beaten by the men to whom he had imparted the will of God, was a captive in prison and a martyr in a fetid hole, was derided as a liar, was tried as a traitor, and finally was stoned to death as a transgressor. However, the judgment of sinners is one thing, and the judgment of God is another. The most humiliated among men became crowned with angelic glory before God.
And yet, behold how heaven names one whom the earth called false, a traitor and a transgressor! //Lover of the brethren://this is what heaven called him. //Lover of the brethren, who prays much for the people//. Finally, see how the saints in heaven pray to God for us! Not sleeping, they pray for us while we are asleep; not eating, they pray for us while we are eating--and over-eating; not sinning, they pray for us while we are sinning. O brethren, let us be ashamed before so many of our sincere friends. Let us be ashamed, let us be ashamed of so many prayers for us by the saints, and let us join with their prayers. O Lord All-wonderful, forgive us our sinful slothfulness and dullness.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE ANDRONICUS
Andronicus was one of the Seventy Apostles. He was a kinsman of St. Paul, as Paul himself wrote [//Greet Andronicus and Junia, my relatives and my fellow prisoners; they are prominent among the apostles and they were in Christ before me// (Romans 16:7)]. Paul also mentions St. Junia, Andronicus's helper. Andronicus was appointed bishop in Pannonia but did not remain in one place; rather he preached the Gospel throughout Pannonia. With St. Junia, he succeeded in converting many to Christ and destroyed many idolatrous temples. They both possessed the power of grace to work miracles, through which they drove out demons from men and healed every type of disease and illness. They both suffered for Christ and thus received a twofold wreath: that of apostles and martyrs. Their holy relics were discovered in the regions of Eugenius (February 22).
! THE HOLY MARTYR SOLOCHON
Solochon was an Egyptian by birth and a Roman soldier under Commander Campanus during the reign of the wicked Emperor Maximian. When the directive from the emperor was handed down that all the soldiers must offer up sacrifices to the idols, Solochon declared himself a Christian. Two of his companions also declared themselves Christians: Pamphamir and Pamphylon. The commander ordered that they be flogged and cruelly tortured, and from this torture Saints Pamphamir and Pamphylon died. Solochon remained alive and was subjected to new tortures. The commander ordered the soldiers to open his mouth with a sword and to pour the sacrifices to the idols into his mouth. The martyr broke the iron sword with his teeth and did not consume the foul, idolatrous sacrifice. Finally, they pierced through both ears with a quill and left him to die. Christians removed the martyr and brought him to the home of a widow. There he gradually became a little stronger with food and drink. He then continued to counsel the believers to be persistent in their faith and in their sufferings for the Faith. After this, he gave thanks to God, completed his earthly life and presented himself to the Lord in the Kingdom of Heaven in the year 298 A.D.
! SAINT STEPHEN, PATRIARCH OF CONSTANTINOPLE
Stephen was the son of Emperor Basil the Macedonian and the brother of Emperor Leo the Wise. He succeeded to the patriarchal throne after Photius and governed the Church of God from 889 to 893 A.D. He died peacefully and presented himself to the Lord, Whom he greatly loved.
! HYMN OF PRAISE!
! THE APOSTLE ANDRONICUS AND SAINT JUNIA
The Apostle Andronicus, a kinsman of St. Paul,
A preacher of peace and spiritual health,
Burned with a flaming love for Christ,
And throughout the world carried the illuminating teaching;
Without much clothing, without pay and without care,
But rich in the power of the Divine Spirit.
With St. Junia he shared all his sufferings
Until he had carried the Cross throughout Pannonia!
There, darkness vanished where the honorable Cross shone,
Separating the wheat from the chaff.
Men awakened from the sleep of brutishness,
And embraced the gift of God's adoption.
They destroyed the idols like weak reeds,
And abandoned discord and odius vices.
When the heart began to sob, the mouth sang:
"We are Thy children, O Heavenly Father!
The light from Thine apostle we now receive.
Forgive us, that we were slaves to the idols."
! REFLECTION
Following a terrible earthquake in Antioch, St. John Chrysostom spoke to the people: "Great are the fruits of an earthquake. Behold the man-loving Lord, Who shakes the city and strengthens the soul, Who sways the foundation and strengthens the thoughts, Who shows the weakness of the city and makes the will of the people strong! Turn your attention to His love for mankind. He sways us for a while, but strengthens us forever; an earthquake for two days, but the devotion will remain for all times; you were sorrowful for a short time, but strengthened forever. A mother, wanting to wean her child from the habit of frequent crying, strongly rocks its little cradle, not in order to harm it but to frighten it. Precisely in this manner, the Lord of all, Who holds the universe in His hands, shakes it, not in order to destroy it but rather to bring back to salvation those men who live lawlessly." Behold how the Holy Fathers, the pillars of the universal Church, knew how to explain by God's love for man both assaults and blessings, both misfortune and fortune. Let us be ashamed who are slow to give thanks to God when He gives, and are quick in our murmuring toward him when He takes away.
! CONTEMPLATION
Contemplate the action of God the Holy Spirit upon the holy martyrs for the Faith:
# How the Holy Spirit gives them wisdom to speak before judges;
# How the Holy Spirit gives them courage to die on the scaffold.
! HOMILY
! on the Holy Spirit, the Comforter
"But the Comforter, which is the Holy Spirit, Whom the Father will send in My Name, He shall teach you all things, and bring all things to your remembrance, whatsoever I have said unto you" (John 14:26).
What practical meaning do these words have, if not that it is necessary that we pray daily that the Holy Spirit be sent to us just as we pray every day for our daily bread? God is willing to send us the Holy Spirit every day, but He seeks that we pray daily for the Holy Spirit. For as it is with regard to bread, which is at one time abundant and at another time scarce, so it is also with regard to the Holy Spirit. The Holy Spirit comes to us and departs from us according to our zealousness and our slothfulness in prayer, according to our good deeds and our patience. That is why the Church ordained that morning services begin with an invocation of the Holy Spirit: "O Heavenly King, Comforter, Spirit of Truth, come!" and after that comes the prayer: "...give us this day our daily bread!" Why? Because, without the Holy Spirit, we do not even know how to use bread as it should be used for our salvation.
//He shall teach you all things.// That is, every day and every night, according to the conditions and circumstances in which you find yourself, He will direct you, counsel you, teach you what you should think, what you should say, and what you should do. For that reason, implore God for the Holy Spirit only, and He Himself will bring all that you need at that particular moment. When the Holy Spirit shall descend upon you, you will know all, understand all, and you will be capable of all that is necessary.
//And bring all things to your remembrance, whatsoever I have said unto you.// That is: "Do not be afraid that you will forget My teaching and My words. The Holy Spirit also knows all that I know, so that when He will be present in you, all My teaching will be present in you, together with Him.
O Lord the Holy Spirit, deign to descend upon us not according to our merit but according to the merit of the Lord Jesus and according to Thine infinite goodness.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR THEODOTUS AND THE SEVEN MAIDEN MARTYRS: THECUSA, ALEXANDRA, CLAUDIA, FALINA, EUPHRASIA, MATRONA AND JULIA
Theodotus was an innkeeper in Ancyra during the reign of Diocletian. Although married, he lived according to the word of the Apostle: //They that have wives be as though they had none //(1 Corinthians 7:29). He maintained the inn in order to help Christians without attracting suspicion. His inn was a shelter for the persecuted faithful. Theodotus secretly sent help to those Christians who fled to the mountains and he secretly gathered the bodies of those who died, and buried them. At that time, seven maidens were brought to trial, tortured for Christ, ridiculed and finally drowned in a lake. One of them, St. Thecusa, appeared in a dream to Theodotus and told to him to remove their bodies from the lake and bury them. In the dark of night Theodotus went out with a companion to fulfill the wish of the martyr. Led by an angel of God, he succeeded in locating all seven bodies and burying them. But this companion betrayed Theodotus to the judge, and the judge subjected him to cruel tortures. Theodotus endured all the sufferings as though he were in someone else's body, keeping his whole mind immersed in the Lord. After the torturer had transformed Theodotus's body into wounds and knocked out his teeth with a stone, he ordered that the martyr be beheaded. When he was led to the scaffold, many Christians wept for him, but St. Theodotus said to them: "Brethren, do not weep for me, but glorify our Lord Jesus Christ, Who helped me to finish my course and overcome my enemy." Having said this, he place his head on the block under the sword and was beheaded in the year 303 A.D. A priest honorably buried this martyr's body on a hill outside the town. Later a church dedicated to St. Theodotus was built on this spot.
! THE HOLY MARTYRS PETER, DIONYSIUS, ANDREW, PAUL AND CHRISTINA
Peter, a handsome young man; Dionysius, a distinguished man; Andrew and Paul, soldiers; and Christina, a sixteen year old virgin: they all courageously confessed Christ the Lord and endured sufferings and death for His name. Nicomachus, who was tortured with them, denied Christ in the midst of his tortures and instantly lost his mind. As a madman, he bit his body and vomited foam from his mouth until he died. This occurred in the year 250 A.D.
! THE HOLY MARTYRS HERACLIUS, PAULINUS AND BENEDIMUS
All three were Athenians. They suffered for the Faith during the reign of Decius. They were burned in a fiery furnace for the name of Christ.
! HYMN OF PRAISE!
! SAINT THEODOTUS
Near Ancyra, on a green hill,
A group of persecuted Christians
With a blessing ate their meal.
What the sun is among the shining stars,
So was Theodotus among this group;
And next to him sat the presbyter Fronto.
To Fronto, Theodotus said:
"This spot is suitable for a church,
Over the relics of honorable martyrs!"
Fronto replied to Theodotus:
"Endeavor, most wonderful man,
To obtain relics of the martyrs for us,
And we will easily build a church
With which to adorn this place."
Theodotus the all-wonderful smiled.
From his right hand he removed a ring,
Gave it to the honorable Fronto,
And spoke to him these words:
"I give you my word of honor and the ring as a pledge:
I will soon procure relics
And place them on this spot!"
Theodotus said this as a prophecy:
He was prophesying his own suffering
And his martyrdom for Christ.
As he said, so it happened.
His relics were placed on that spot,
And over them a church was built,
As a wonderful memorial of an immortal victory,
Near Ancyra, on a green hill.
! REFLECTION
To conceal one's virtues and ascetic labors has been the custom of ascetics, both female and male, not only in the earliest times of Christianity but throughout all ages to the present time. Eudocia, wife of the glorious Prince Dimitri Donskoy, the liberator of Russia from the Tartars, was left a widow in 1389 A.D., while still fairly young. Imbued with devotion, this princess built many churches, distributed alms, and secretly weakened her body by fasting and long vigils. She wore an iron chain around her body. Meanwhile, she always appeared happy before the public, clothed in opulence and adorned with pearls. The public said many things about her, and they began to spread rumors that she was leading an immoral life. Her sons heard about this and, insulted and embittered, openly informed their mother what was being said about her. Their mother opened her luxurious robe and her sons, with great horror, saw her body, completely withered, dried up and bound with iron chains.
! CONTEMPLATION
Contemplate the action of God the Holy Spirit upon the martyrs:
# How the Holy Spirit provided them with comfort in their sufferings;
# How occasionally, according to His will, He made their bodies immune to the effects of fire.
! HOMILY
! on the testimony of the Spirit of God
"The Spirit of Truth, Who proceedeth from the Father, He shall testify of Me" (John 15:26).
God the Son sent God the Holy Spirit into the world to testify of Him until the end of time. //He shall testify of Me. //How will God the Spirit testify of God the Son? God the Spirit will testify in many ways:
By attracting men's souls to Christ's Church;
By revealing to them the meaning of the Holy Scriptures;
By leading their minds to the commandments of Christ;
By giving warmth, freshness, power and gentleness to the words of Christ;
By converting repentant sinners to righteousness;
By fulfilling all the promises and prophecies of Christ to men, to nations, and to God's Church;
By strengthening the Church of Christ and holding it firm against all the tempests of time and all the evils of hades and men throughout the ages,
The Spirit Who works in these and many other similar ways is the Spirit of God, the Spirit of Truth, gracious, life-creating and all-powerful.
Not one of Christ's words goes against the Spirit of God, nor does the Spirit of God go against a single word of Christ. That is why, when the Spirit of God is pleased to enter into the heart of man, such a man is enlivened and becomes a true witness to all that Christ said and did. Then, that man believes joyfully and unwaveringly. For how could he not believe the greatest and the most enduring Eyewitness of and Participator in all the words, miracles and works of Christ?
Thus, brethren, let us pray before all and above all, that this Eyewitness and Participator, the Holy and All-powerful Spirit, will settle in our hearts, so that our faith may become alive, unwavering and joyous. O God the Holy Spirit, the Spirit of Truth, come and abide in us.
To Thee be glory and praise forever. Amen.
! THE HOLY HIEROMARTYR PATRICK [PATRICIOS], BISHOP OF PRUSA, WITH THREE PRESBYTERS: ACACIUS, MENANDER AND POLYENUS
They suffered for the Christian Faith in Asian Prusa during the reign of Julian the Apostate. Junius the imperial deputy brought these saints to a hot spring and asked Patrick: "Who created these curative waters if not our gods Aesculapius and others whom we worship?" St. Patrick replied: "Your gods are demons and these waters, like everything else, were created by Christ the Lord, our God." Then the deputy asked: "And will your Christ save you if I throw you into this boiling water?" The saint replied: "If He wills, He is able to preserve me whole and unharmed, even though I desire that in these waters I become separated from this temporary life to live with Christ eternally. But let His holy will be done, without which not even a hair from a man's head can fall!" Hearing this, the deputy ordered that Patrick be cast into the boiling water. Drops of boiling water splashed on all sides and cruelly scalded many of those present, but the saint, whose lips were continually in prayer, remained unharmed as though he were standing in cold water. Seeing this, the deputy, deeply embarrassed, became enraged and ordered that Patrick and his three presbyters be beheaded with an ax. Then the innocent followers of Christ recited their prayers and placed their heads under the ax of the executioner. When they were beheaded, their joyful souls ascended to Christ's Kingdom of Light, to reign forever.
! SAINT JOHN, BISHOP OF THE GOTHS
John was a bishop in Georgia, but when the Tartar Khan in Georgia began to torture Christians, he left for four years to live among the Goths in Bessarabia. The diocese of the Goths had been established during the reign of Constantine the Great. Learning of the death of the Khan, John returned to his duties in Georgia and guided his flock zealously and devoutly. Before his death, he said: "In about forty days, I go to be judged with the Khan," that is, through death, John was going to the throne of God. And so it happened: on the fortieth day he died and went to the Lord. He reposed peacefully in the eighth century.
! THE HOLY PRINCE IVAN (JOHN) OF VOLOGDA
Ivan was a miracle-worker, God-fearing and virtuous from his youth. He was cast into prison by his uncle, Prince Ivan Vasilievich, along with his brother Dimitri, where they remained for thirty-two years. Before his death, Ivan was tonsured a monk and received the name Ignatius.
! HYMN OF PRAISE
! THE SAINTLY PRINCES IVAN AND DIMITRI OF VOLOGDA
In the dark dungeon, Prince Ivan languishes
With his brother Dimitri, and he counsels his brother:
"O brother, sorrow not; do not weary yourself with sorrows.
To the faithful, a dungeon is as a royal court.
Do not speak ill about our uncle,
Who has cast us, who are guiltless, into prison.
Without God's will, is it possible that this could be--
To enslave two of God's creatures in the darkness?
If our uncle cares only about himself,
God cares about us, to save our souls.
The irrational one only seeks his own benefit,
But God consoles with gifts those who are despised.
The merciful God is not afraid of the dungeon--
He prefers to be with captives than to stand with the proud.
Do not be angry, my brother, do not reproach our uncle.
Only God knows the truth between us.
Our uncle goes by one path, and we by another path are saved.
Worship God, to God be glory!"
! REFLECTION
The great hierarchs, the pillars of the Orthodox Church, knew how to blend meekness and firmness in their character: meekness toward the righteous ones and penitents, and firmness toward unrepentant criminals. One Sunday, following the Divine Liturgy, Tsar Ivan the Terrible approached Metropolitan Philip to receive his blessing. The metropolitan pretended not to see the tsar and gazed at the icon of the Savior. The tsar's adjutant approached the metropolitan and said to him: "Your Eminence, the Ruler is before you, bless him." The metropolitan looked at the tsar and said: "O Tsar, fear the judgment of God. Here, we offer up the Bloodless Sacrifice to God, and outside the sanctuary the blood of Christians is being spilled. How many innocent people suffer? You are exalted on the throne, but nevertheless you are a man." The enraged tsar told the metropolitan to keep silent, but the metropolitan said to him: "Where is my faith, if I remain silent?" When the tsar began to threaten the metropolitan, the latter quietly replied: "I am a visitor and guest on earth and am ready to suffer for the truth!" After some time, the cruel tsar had the metropolitan suffocated, but he could not suffocate the saint.
! CONTEMPLATION
Contemplate God the Holy Spirit as the Inspirer of wisdom and truth:
# How He inspired with wisdom and truth the prophets, evangelists and apostles who wrote the Holy Scriptures by His inspiration and guidance;
# How He inspired with wisdom and truth the Holy Fathers, who interpreted the Holy Scriptures by His inspiration and guidance.
! HOMILY
! on the holy men of God
"Holy men of God spake as they were moved by the Holy Spirit" (2 Peter 1:21).
This is witnessed by the Apostle Peter, who was himself a holy man of God, a rock of faith and a knight of the Cross. As a holy man of God he explained, from his own personal experience, how the holy men of God spoke, and how they still speak: They//spake as they were moved by the Holy Spirit.// They did not speak according to their own reasoning, nor according to their own memory, nor according to their own speculation, nor according to their own eloquence; rather they spoke from and by the Holy Spirit. The wisdom of God flowed through them, and the truth of God was revealed through them. Holy Scripture was not written with //the false pen of the scribes// (Jeremiah 8:8), but was written by the servants and the chosen ones of the Holy Spirit of God. Neither was Holy Scripture written by professional writers; rather, it was written by the saints of God, who were directed and compelled by the Spirit of God to write. Although they often did not want to write, at times even protesting, they had to write, as the Holy Prophet Jeremiah testified: //I will not make mention of Him, nor speak any more in His name. But His word was in my heart as a burning fire shut up in my bones, and I was weary with forbearing and I could not stay// (Jeremiah 20:9).
O my brethren, Sacred Scripture is not of men but of God. It is not of the earth but rather from heaven. Nor is it from the body; rather it is from the Spirit. Yes, from the Holy Spirit of God. Inspired by the wisdom and truth of the Holy Spirit, these holy men of God wrote: prophets, evangelists, apostles, fathers, teachers and shepherds.
O God the Holy Spirit, the Spirit of Wisdom and Truth, inspire us by Thy life-creating breath, that we may recognize wisdom and truth and fulfill them with Thy help.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS HESPERUS, ZOE, CYRIACUS AND THEODULUS
During the reign of Emperor Hadrian (117-138 A.D.), a pagan named Catallus purchased as slaves Hesperus, his wife Zoe, and their sons Cyriacus and Theodulus. Since they were steadfast Christians, they would not taste anything that had been sacrificed to the idols, but threw all that had been thus offered to the dogs, and they themselves hungered and endured. Learning of this, Catallus became enraged and began to torture his slaves cruelly. First he tortured the children, but the children remained unwavering in the Faith and even sought harsher torture from their persecutors. Finally, all four were thrown into a fiery furnace, where after prayers of thanksgiving they gave up their souls to the Lord. Their bodies remained intact, unconsumed by the fire.
! SAINT ATHANASIUS THE GREAT, ARCHBISHOP OF ALEXANDRIA
On this day the translation of the relics of St. Athanasius, as well as the miracles performed through his relics, are commemorated. The life and works of this great saint are recorded on January 18.
! THE HOLY MARTYRS BORIS AND GLEB
Boris and Gleb were the sons of the great Prince Vladimir, the baptizer of the Russian people. Before his baptism Vladimir had numerous wives and many children by them. Boris and Gleb were brothers of the same mother. Before his death Vladimir divided his realm among all of his sons. But Svyatopolk, his eldest son, the Prince of Kiev, desired to usurp the portions intended for Boris and Gleb. This is why he dispatched men to murder Boris in one place and Gleb in another. Both brothers were exceptionally pious and in all things pleasing to God. They met death with prayer and the uplifting of their hearts to God. Their bodies remained incorrupt and fragrant. Boris and Gleb were buried in Vyshegorod, where even today a blessed power comes from their relics, which heals men from various diseases and sufferings.
! SAINT MICHAEL (BORIS), TSAR OF BULGARIA
Boris was born and educated as a pagan and was baptized under the influence of his uncle (Bojan) and his sister. At baptism, he was given the name Michael. Patriarch Photius sent him priests, who in time baptized all the Bulgarian people. Many Bulgarian noblemen opposed this new Faith. Nevertheless, the new Faith conquered, and the Cross gleamed on many churches built by the devout Tsar Michael. The Five Followers, the disciples of St. Cyril and St. Methodius, especially established the Faith among the Bulgarians, as among the Serbs. They preached the knowledge of Christ to the people in the vernacular, the Slavonic language.
In his old age Michael retreated to a monastery and was tonsured a monk. When his son Vladimir began to destroy his father's work and to exterminate Christianity, Michael again donned his military uniform, girded himself with a sword, ousted Vladimir from the throne and installed Simeon, his younger son, as Tsar. After this, he again clothed himself in the monastic habit and retreated into silence. There, in asceticism and prayer, he completed his earthly life "in the good Faith; in the correct confession of our Lord Jesus Christ; great, honorable and devout." He took up his habitation in the Heavenly Realm on May 2, 906 A.D.
! HYMN OF PRAISE
! SAINT MICHAEL (BORIS) THE BULGARIAN
Michael the Bulgarian baptized the people with the Cross,
Numbering the pagans among the flock of Christ,
And by his example he touched the hearts of men,
That men might love the saving Faith.
He built churches and uprooted paganism,
Glorifying in himself the Spirit of God.
He abandoned the glory and vanity of men,
And tauthg men truth and righteousness.
He showed no pity on himself for the sake of God's name
And for the sake of the salvation of the Bulgarian people.
On earth he was granted a crown of kingship,
And in heaven a crown of eternal rejoicing.
! REFLECTION
Blessed Maximus the Fool-for-Christ walked naked through the streets of Moscow in winter. In response to the advice of men that he dress and protect himself from the cold, Maximus responded: "Yes, winter is cruel, but Paradise is sweet!" He also said: "For patience, God grants salvation!" When Christ the Lord did not regret giving Himself over to suffering and death, why should we feel sorry for ourselves for our own sakes? Christ prescribed a recipe for us: a diet for our spiritual restoration to health, which He called "an easy yoke." [//For My yoke is easy and My burden is light// (Matthew 11:30)]. The yoke that we impose upon ourselves is much heavier, for this yoke pulls us down deeper and deeper into spiritual illness. The earth seeks much greater sacrifices from us and does not promise us any reward after death. The earth seeks that we sacrifice God, our soul, our conscience, our mind, and all human and divine dignity to it. And, in return, it reveals a dark and putrid grave as the end of everything and the reward for all. Christ seeks that we sacrifice only the earth, our beastliness and sin, vice and all wickedness. And, in return, He promises resurrection and eternal life in Paradise. "Yes, winter is cruel, but Paradise is sweet!"
! CONTEMPLATION
Contemplate the Ascension of the Lord Jesus:
# How the disciples worshiped Him;
# How they returned to Jerusalem with great joy.
! HOMILY
! on the Source of living water and the dry cistern
"Be amazed at this, O heavens, and shudder with sheer horror, says the Lord. Two evils have my people done: they have forsaken Me, the source of living waters. They have dug themselves cisterns, broken cisterns that hold no water" (Jeremiah 2:12-13).
Was this spoken only for that time or also for us today? Certainly for us today. Is this spoken only for the Jewish people or also for our people? Certainly for our people also. When it was said, //Do not kill, do not steal, do not bear false witness,// it was said not only for that time but also for all times, and not only for the Jewish people but also for all peoples. And so it is true for us as well. This is valid today, at all times, for every people, and for every man who turns his back on the Source of living water in his own courtyard and digs a cistern from which to drink rainwater.
The Source of living water is the Lord Himself: inexhaustible, copius and sweet. The cistern is every man's work which is performed in opposition to God and God's law, and from which men expect progress, happiness and satisfaction for their hunger and thirst. Such is the cistern of godlessness, avarice, gluttony, immorality, love of power, vanity, idolatry, soothsaying, and all the other things that have the devil as their advisor, sin as their digger, and false hope for their water-carrier. //Be astonished, O ye heavens, at this, and be horribly afraid, be ye very desolate,//says the Lord. //Be astonished //at how man could become so senseless, forsaking the living water and digging a cistern in live coals that inflame his thirst even more!
O brethren, our people have also committed two evils: they have forgotten the Lord as the Source of every good and they have gone to seek for themselves good in evil and good through evil. Can water be found in fire? Or wheat in sand? It cannot; no, brethren, it cannot. Even less can peace, happiness, joy, life or any other good be found in the cisterns of sin and godlessness.
O Lord, Immortal Source of every good that the heart of man can desire and the mind of man can imagine, have mercy on us sinners and unworthy ones. With Thy powerful right hand, turn us away from our godless and vain works and quench our thirst with Thy sweet and living water.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR THALELAEUS
Thalelaeus was born in Lebanon. His father was called Berucius and his mother Romila. Thalelaeus was an eighteen-year-old youth: handsome, tall, and with reddish-blonde hair. He was a physician by profession. He suffered for Christ during the reign of Numerian. When he bravely confessed his faith in Christ the Lord before his judge-torturer, the judge ordered the two executioners, Alexander and Asterius, to bore through his knees with a drill, to thread a rope through the perforated bones, and to hang him from a tree. But God, through an invisible power, took away the sight of the executioners. In place of Thalelaeus they bored through a board and hung it from a tree. When the judge-torturer found out, he thought that the executioners had done this intentionally, and he ordered them both flogged. Then Alexander and Asterius cried out in the midst of their flogging: "The Lord is alive to us, and from now on we will also be Christians. We believe in Christ and suffer for Him." Upon hearing this, the judge-torturer ordered that both be beheaded. Then the judge took the drill to bore the knees of Thalelaeus himself, but his hands became paralyzed and he begged Thalelaeus to save him. This the innocent martyr of Christ did, with the help of prayer. Afterward, Thalelaeus was thrown into water but then appeared alive before his tormentor (for Thalelaeus had prayed to God inwardly to prolong his sufferings, so that he would not die immediately). When he was thrown to wild beasts, they licked his feet and were amicable toward him. Finally, Thalelaeus was beheaded and took up his habitation in life eternal in the year 284 A.D.
! THE HOLY MARTYR ASCLAS
Asclas suffered in the town of Antinoe in Egypt during the reign of Diocletian. He was flogged, scraped and burned with candles, but he remained unwavering in the Faith to the end. When the tormentor Arrian was crossing the Nile by boat, Asclas, through prayer, stopped the boat in the middle of the river and would not allow it to move until Arrian wrote that he believed in Christ as the One and Almighty God. But ascribing this miracle to a magical skill of Asclas, the tormentor forgot what he wrote and continued to torment the man of God. Finally they tied a stone around his neck and cast him into the Nile river. On the third day Christians found the body of Asclas along the shore with the stone around his neck (as the martyr foretold to them before his death) and honorably buried him, in the year 287 A.D. Leonides, the holy martyr, also suffered with him. Arrian, their tormentor, later repented, believed in Christ with his whole heart and openly began to express his faith before the pagans. The pagans also killed him, and thus Arrian--a former tormentor of Christians--was made worthy of the martyr's wreath for Christ.
! THE VENERABLE STEFAN OF PIPERI
This saint was born into the Nikšić clan in the village of Župa of poor but devout parents, Radoje and Jaćima. According to tradition, he first lived a life of asceticism in the monastery of Morača, where he was abbot. The Turks drove him out of Morača and he settled in Rovački, Turmanj, in the place which today is called Ćelište. Later, he settled in a cell in Piperi, where he remained in labor and God-pleasing asceticism until his death. He reposed peacefully in the Lord on May 20, 1697 A.D. His relics repose there even today, and with many miracles they glorify Christ God and Stefan, the saint of God.
! HYMN OF PRAISE
! THE HOLY MARTYR THALELAEUS
Attend, O men and angels--
In suffering and at the moment of death
Thalelaeus prayed to God:
"O Lord, Creator of the world,
Thine is the mercy, Thine is the vengeance!
To Thee I pray: Prolong my life,
That for Thee I may endure more pain.
In truth, little have I endured
In order to merit Thy Kingdom.
Horrible were Thy sufferings on Golgotha,
Horrible sufferings were endured by Thee, Sinless One!
For sinners, they should be more horrible,
That, being tortured, they may be cleansed
And worthily receive salvation."
That which the most wonderful Thalelaeus prayed for
Was granted him by God.
His petitions were precious;
God permitted him abundant sufferings.
To the end, Thalelaeus endured all,
All, with joy and with thanksgiving
From suffering to suffering he went,
As from celebration to an even greater celebration.
Thus, the saint glorifies Orthodoxy!
! REFLECTION
When a man acquires a Christian conscience, he zealously labors to correct his life and to please God. For him, all else becomes of little importance. We have examples of such men not only among the great ascetics and spiritual fathers but also among powerful rulers. Emperor Theodosius the Great provides us with such an example. For a brief time he fell into heresy but afterward he repented. St. Ambrose, his earlier critic, spoke over his lifeless body: "I loved this man who, divesting himself of all imperial insignias, bewailed his sin openly in church, and, with sighs and tears, begged forgiveness. What ordinary men are ashamed to do, the emperor was not ashamed to do. After his glorious victory over the enemies of the empire, he decided not to approach Holy Communion until the return of his sons, because his enemies had been slain in battle."
! CONTEMPLATION
Contemplate God the Holy Spirit as an Inspirer of meekness and gentleness:
# How He has inspired meekness and gentleness in ascetics and hermits throughout the ages;
# How He inspired--and inspires even today--meekness and gentleness in all truly repentant souls.
! HOMILY
! on the spirit of the world and the Spirit of God
"We have received, not the spirit of the world, but the Spirit which is of God" (1Corinthians 2:12).
Brethren, the spirit of this world is the spirit of pride and cruelty, and the Spirit of God is the Spirit of meekness and gentleness. The Apostle of God asserts that the followers of Christ received not the spirit of this world but //the Spirit which is of God,// that is, which proceeds from God the Father as a sweet-smelling fragrance of flowers, as a good fragrance pouring out on the soul of man, making it mighty, bright, peaceful, thankful and pleasant.
Men by nature are meek and gentle. St. Tertullian writes: "The soul of man is by nature Christian," but it is made irritable and angry by the spirit of this world. The spirit of this world makes wolves out of lambs, while the Spirit of God makes lambs out of wolves.
The Apostle adds further that we received the Spirit of God so that we might know the things that are freely given to us of God (1 Corinthians 2:12), that//we may know then, what is from God in us and what is not from God,// and that we may sense the sweetness of that which is from God and the bitterness of that which is not from God but from the spirit of this world. As long as man is outside his nature or beneath his nature, he considers bitterness sweet and sweetness bitter. But when by the Spirit of God he returns to his true nature, then he considers sweetness sweet and bitterness bitter.
Who can return man to God? Who can heal man of poisonous sinful bitterness? Who can teach him by experience to distinguish true sweetness from bitterness? No one except //the Spirit which is of God//.
Therefore, my brethren, let us pray that God grant us His Holy Spirit as He granted the Holy Spirit to His apostles and saints. And when the Holy Spirit of God enters into us, the Kingdom of God has come to us, in which is all sweetness, goodness, light, meekness and grace.
O Holy Spirit, the Spirit of meekness and gentleness, come and abide in us.
To Thee be glory and praise forever. Amen.
! THE HOLY EMPEROR CONSTANTINE AND EMPRESS HELENA
Constantine's parents were Emperor Constantius Chlorus and Empress Helena. Chlorus had other children by another wife, but from Helena he had only Constantine. After his coronation Constantine fought three great battles: the first against Maxentius, a Roman tyrant; the second against the Scythians on the Danube; and the third against the Byzantines. Before the battle with Maxentius, while Constantine was greatly concerned and doubtful of his success, a brilliant Cross appeared to him in the sky during the day, adorned with stars. Written on the Cross were the words: "By this Sign Conquer." Astonished, the emperor ordered a large cross to be forged, like the one that had appeared, and that it be carried before the army into battle. By the power of the Cross he achieved a glorious victory over the enemy, which was greatly superior in number. Maxentius drowned in the Tiber River. Immediately after this, in the year 313 A.D., Constantine issued the famous Edict of Milan to halt the persecution of Christians. Defeating the Byzantines, Constantine built a beautiful capital on the Bosphorus, which from that time was called Constantinople. Before this, however, Constantine fell ill with the dreaded disease of leprosy. As a cure, the pagan priests and physicians counseled him to bathe in the blood of slaughtered children. However, he rejected that. Then the Apostles Peter and Paul appeared to him and told him to seek out Bishop Sylvester, who would cure him of this dreaded disease. The bishop instructed him in the Christian Faith and baptized him, and the disease of leprosy vanished from the emperor's body. When a discord began in the Church because of the mutinous heretic Arius, the emperor convened the First Ecumenical Council in Nicaea in 325 A.D., at which the Arian heresy was condemned and Orthodoxy confirmed. St. Helena, the pious mother of the emperor, was very zealous for the Faith of Christ. She visited Jerusalem, discovered the Honorable Cross of the Lord, and built the Church of the Resurrection on Golgotha, as well as many other churches throughout the Holy Land. This holy woman presented herself to the Lord in her eightieth year, in 327 A.D. Emperor Constantine outlived his mother by ten years. He reposed in Nicomedia in his sixty-fifth year, in 337 A.D. His body was interred in the Church of the Twelve Apostles in Constantinople.
! THE VENERABLE MARTYR PACHOMIUS
Pachomius was born in Little Russia. The Tartars captured him in his youth and sold him to a Turkish tanner as a slave. He spent twenty-seven years in slavery in the town of Usaki in Asia Minor. He was forced to become a Moslem. Then, he went to Mount Athos, was tonsured a monk, and spent twelve years in the Monastery of St. Paul. He decided to suffer for Christ. His spiritual father, the Elder Joseph, accompanied him to Usaki, where Pachomius presented himself to his former master as a Christian in the monastic habit. The Turks subjected him to torture, threw him into prison and beheaded him on the Feast Day of the Ascension, May 8, 1730 A.D. Many miracles were wrought by his blood and relics. Pachomius was buried on the island of Patmos in the Church of St. John the Theologian. Thus this Little Russian peasant became a martyr and wreath-bearer in the Kingdom of Christ.
! HYMN OF PRAISE
! SAINT CONSTANTINE
To Constantine, the shining Cross appeared;
Constantine saw it and glorified God.
It was a sign from the Son of God;
There is nothing more beautiful than this sign:
The sign of suffering and temporary trouble,
But also the sign of final victory.
By this sign which worked wonders,
Constantine set out and conquered everywhere.
In the midst of pagan Rome, which persecuted the Cross,
He raised the Cross on high, to the glory of the Savior.
That which for three centuries had been broken and cursed,
Now, for Rome, became great and holy!
For three centuries the Cross had been spat upon;
The earth had been bathed in the blood of the saints.
Empires and emperors, arrogant and odious,
Were destroyed one by one, like weak reeds,
But the sign of the Cross remained upright;
Miraculously and gloriously it shone on the world.
Constantine recognized it and raised it even higher;
That is why, in the calendar, his name is written.
! REFLECTION
We see that vice is something shameful and sinful, in that it always hides and always takes upon itself the appearance of good works. St. John Chrysostom beautifully says: "Vice does not have its own particular face, but borrows the face of good works." This is why the Savior said: They //come to you in sheep's clothing, but inwardly they are ravening wolves// (Matthew 7:15). Call a liar a liar, a thief a thief, a murderer a murderer, an adulterer an adulterer, a slanderer a slanderer, and you will infuriate them. But if you want to call a man honest, honorable, unselfish, truthful, just, conscientious, you will make him light up with joy and please him. Again, I quote Chrysostom: "Good works are something natural in man, while vice is something unnatural and false." If a man is caught in a vice, he quickly justifies his vice by some good works; he clothes it in the garment of good works. Indeed, vice does not posses its own particular face. The same is true of the devil, the father of vice!
! CONTEMPLATION
Contemplate God the Holy Spirit as the Inspirer of justice, peace and joy:
# How He inspired with justice, peace and joy all the lovers of Christ's justice;
# How He inspired--and even today inspires--with justice, peace and joy all the sufferers for Christ's justice.
! HOMILY
! on the children of God
"The Spirit Itself beareth witness with our spirit, that we are the children of God" (Romans 8:16).
Only he who has the Spirit of God in himself has the witness that he is a child of God. Without the Spirit of God there is no such witness. Not even the whole universe can give this witness. The universe by itself, without the Spirit of God--what else does it witness to us other than the fact that we are its slaves, its victims, whom it unmercifully swallows? In essence, the pagans thought that also. Do not the opponents of God today think likewise? They do think so. For, indeed, it is difficult to take that thought away from those who do not recognize the Spirit of Christ, the Spirit of God, the Witness of Heaven. The same apostle says: //For ye have not received the spirit of bondage// (Romans 8:15). What is this spirit of bondage? It is every spirit except the Spirit of God, Whom Christ the Lord sends to those who love Him. The spirit of bondage is the spirit of materialism, the spirit of fortune-telling, the spirit of naturalism, the spirit of pessimism, the spirit of despair, the spirit of vice. Only the Spirit of God is the All-holy Spirit of adoption and freedom.
Oh, what happiness; oh, what peace; oh, what joy when the Spirit of God nestles in the cleansed heart of man as a sparrow does in its nest! Then our hope opens hundreds of doors in the prison of the universe; and our embrace, wider than the universe, stretches out to the One Who is greater and more merciful than the universe. To Whom? To the Father! And then we cry out: //Abba, Father!// (Romans 8:15).
The witness of God that comes through sight can lead us to doubt that we are the children of God. But the witness that comes to us from the heart, from the Spirit of God, does not leave even the slightest doubt. God witnesses about God. What doubt can there be? God the Holy Spirit caresses us in the heart of our very being. Can there be any doubt there? No, for then we know and feel completely confident that God is the Father and that we are the children of God. No one's servants, no one's slaves, but rather the children of God.
O Lord God, Holy Spirit, come abide in us and remain with us as a Witness of the Trinity and the Kingdom, as a Witness of the immortal paradise.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR BASILISCUS
Basiliscus was a kinsman of St. Theodore the Tyro. He was tortured together with Eutropius and Cleonicus. When the latter two were crucified and had died (March 3), then Basiliscus was returned to prison. At that time the emperor's deputy was being replaced, and so Basiliscus remained imprisoned for a long time. Basiliscus prayed with tears that God would not deprive him of a martyr's death. After he prayed at length, the Lord Jesus Himself appeared to him, promised to fulfill his wish, and sent him to his village to bid farewell to his mother and brothers. Then a new deputy, Agrippa, arrived and ordered that Basiliscus be brought from the village immediately. While Basiliscus was on his way from the village to the town of Amasea, the Lord worked a great miracle through His martyr, as a result of which many people believed in Christ. Agrippa ordered the martyr to offer a sacrifice to the idol Apollyon. "'Apollyon' means 'destroyer,'" said Basiliscus, and with fervent prayer he turned the idol into dust and burned the temple with fire from heaven. The frightened Agrippa attributed this to magic and ordered that Basiliscus be beheaded. At that moment, Agrippa went insane. In his madness, he went to the scaffold, found a little blood of the martyr in the dust, and placed it under his belt, and was healed. Coming to his senses, he was baptized. Marinus, a citizen of Comana, later built a church over the relics of the saint, at the place of Basiliscus's execution, and many afflicted people found healing there.
! THE HOLY MARTYR JOVAN VLADIMIR, KING OF SERBIA
Jovan Vladimir was of princely lineage from Zahumlje. His grandfather was called Hvalimir and his father Petrislav. As a ruler, he was wise, merciful, meek, chaste and brave. He fervently prayed to God and voluntarily built churches and supported them. However, he had difficult struggles both internally and externally: internally from heretics and the Bogomils, and externally from Tsar Samuel and Tsar Basil who wanted to conquer him. Samuel captured him deceitfully and cast him into prison. While he languished in prison an angel of God appeared to him and foretold that he would shortly be freed, but that he would die a martyr's death. Getting to know him better, Samuel grew to like him and gave his daughter Kosara to be his wife. When Samuel died, his son Radomir was crowned Tsar. But Vladislav, Radomir's twin brother, slew Radomir, then deceitfully summoned Vladimir and beheaded him in the year 1015 A.D. The relics of this saintly king are preserved incorrupt in his monastery near Elbasan, and numerous miracles have been worked over them throughout the ages and to this day. In 1925 a church was built to honor this crowned martyr near the Monastery of St. Nahum, since Jovan Vladimir had been a benefactor of that glorious monastery.
! THE SECOND ECUMENICAL COUNCIL
This Council was called during the reign of Emperor Theodosius the Great in Constantinople in the year 381 A.D. Its goal was to confirm the Orthodox teaching concerning the Holy Spirit. Macedonius, Patriarch of Constantinople, had erroneously taught that the Holy Spirit was God's creature and not a Divine Person [Hypostasis], and therefore not equal to the Father or the Son, or One in Essence with Them in the Holy Trinity. Macedonius was condemned by this Council, and the teaching about the Holy Spirit was added to the Nicaean Creed [the Symbol of Faith].
! THE HOLY RIGHTEOUS MELCHISEDEK, KING OF SALEM
Melchisedek was a contemporary of our forefather Abraham. According to the words of the Apostle Paul he was a king, a priest and a type of the Lord Jesus Christ (Hebrews 7).
! HYMN OF PRAISE
! MELCHISEDEK, KING OF SALEM
Melchisedek, king of Salem,
Whence is his family?
He was a king and a priest
Of the Highest King--God
He was greater than Abraham;
He was and remains a mystery.
He blessed Abraham;
To him, Abraham gave a tribute.
He was a king and priest in the world,
And became a forefigure of Christ.
He proclaimed peace and justice;
He was and remains a mystery.
His origin and end are unknown,
As is the length of his earthly life,
But it is known that he lived--
A beautiful example of a man.
King, saint, righteous one:
Such was Melchisedek--
A prophet and forefigure of Christ.
A prophet he was, without words,
But with a most beautiful personality.
A prophet he was, without words;
A prophet--with righteousness and mercy.
! REFLECTION
How was Moses able to fast for forty days? How were the many Christian ascetics able to live a long life in extreme abstinence from food and drink? For the physical man who does not know about the spiritual life, this is impossible to believe. It is impossible even to prove it to him, for the understanding of it is achieved only by experience. When the torturers of St. Basiliscus detained him for three days without food and water, and when they did offer him food to eat, he refused, saying that he was not hungry. "I am," said he, "filled with immortal food and do not want to receive mortal food. You are fed by earthly bread, but the heavenly word of God feeds me; wine makes you happy, but the grace of the Holy Spirit makes me happy; meat satisfies you, but fasting satisfies me; physical power strengthens you, but the Cross of Christ strengthens me; gold makes you rich, but the love of Christ enriches me; clothing adorns you, but good works adorn me; you are made happy with laughter, but I am comforted by the Spirit through prayer." Behold this man, one of many, in whom the word of the Lord was confirmed: //Man shall not live by bread alone, but by every word that proceedeth out of the mouth of God!// (Matthew 4:4).
! CONTEMPLATION!
Contemplate the grace of God the Holy Spirit in the Mystery [Sacrament] of Baptism:
# How that grace cleanses man from original sin;
# How it brings man to participation in the freedom of Christ.
! HOMILY
! on the bodies of men as temples
"Know ye not that your body is the temple of the Holy Spirit which is in you, which ye have of God, and ye are not your own? For ye are bought with a price" (1 Corinthians 6:19-20).
How is it, brethren, that our bodies became the temple of the Holy Spirit? Because we are bought with a price. The Lord Jesus bought us with His cares, labors, sufferings and death. Because of this price we were made worthy to become the temple of the Holy Spirit.
But someone will say: "That price was paid a long time ago, and we live twenty centuries later!" It is all the same: the price was not paid for one time and for one generation, but rather for all times and for all generations from Adam to the Dreadful Judgment. And if billions and billions of human beings are born on earth, the price is paid for all of them. The price is so great and rich that, if all the sand in the sea were changed into men, the price would be sufficient.
Brethren, from what moment do our bodies become the temple of the Holy Spirit? From the moment of our baptism. Although the price is paid for all men, only those who are baptized become the temple of the Holy Spirit.
Brethren, what is the consequence of the Holy Spirit taking up His abode in us? The consequence is this: that we are not our own anymore. When the Holy Spirit takes up His abode in our bodies, then He becomes the Master over us, and not we us over our bodies or over ourselves. Then, brethren, we are the possession of God the Holy Spirit.
Brethren, what did it mean at the Mystical Supper [Last Supper], when the Lord washed even the feet of Judas, and Judas received a piece of bread from the Lord, when the Scripture says: //Satan entered into him// (John 13:27). Oh, what dreadful words! Oh, what a horrible punishment for the traitor of God! Brethren, does this not mean that when we reject God, Who washes and feeds us, the Spirit of God departs from us and Satan settles in His place? Oh, what a harsh meaning! Oh, what a terrible reminder to all of us who are baptized! The Holy Spirit settled in us during our baptism and made us a temple for Himself. But the Holy Spirit does not dwell in us by force, but rather according to our good will. If we transgress against Him, He departs from us; Satan enters in His place, and our physical temple is transformed into a pigsty.
O All-good Holy Spirit, do not leave us. Have mercy on us and forgive us.
To Thee be glory and praise forever. Amen.
! SAINT MICHAEL, BISHOP OF SYNNADA
Michael, a holy and learned hierarch, dedicated himself to the service of Christ from early childhood. Together with St. Theophylactus of Nicomedia, he lived a life of asceticism. At one time during a period of drought, these two saints brought forth abundant rain on the earth by their prayers. Because of his ascetic and chaste life from his early youth, he was chosen and consecrated bishop of Synnada by Patriarch Tarasius. He participated in the Seventh Ecumenical Council [Nicaea, 787 A.D.]. At the request of the emperor, he went to Caliph Harun-al-Rashid to conduct negotiations for peace. During the reign of the nefarious Leo the Armenian, Michael was removed from his episcopal throne because of his veneration of icons and was sent into exile. There, in misery and poverty but in faithfulness to Orthodoxy, he reposed in the year 818 A.D. and took up his habitation in the Kingdom of Christ the King.
! THE VENERABLE MARTYR MICHAEL
After the death of his parents, Michael distributed all of his goods to the poor and went on a pilgrimage to Jerusalem. Thereafter he entered the Monastery of St. Sava the Sanctified, where he was tonsured a monk. Michael was quite young and handsome, but from much fasting he appeared withered and pale. At that time, the Arabs ruled Jerusalem. One day Michael was sent by his spiritual father to the city to sell his handiwork. He was met on the streets by a eunuch of the Arabian queen, who brought him to the queen to display his handiwork. When the queen saw this handsome monk she became inflamed with unclean passion and proposed carnal sin to him, as the wife of Potiphar had once proposed to the chaste Joseph. When Michael rejected the impure offer and began to flee, the angry queen ordered that he be beaten with canes and brought before the king with the charge that he had blasphemed the faith of Mohammed. The king proposed that Michael embrace the Islamic faith, but he refused. He was then given a potent poison to drink. Michael drank the poison but nothing happened to him. Then the king ordered that Michael be beheaded in the center of Jerusalem. Monks discovered his body and removed it to the Monastery of St. Sava, where they honorably buried it. St. Michael suffered for Christ and was glorified in the ninth century.
! THE VENERABLE EUPHROSYNE, PRINCESS OF POLOTSK
Euphrosyne was the daughter of Prince Vseslav of Polotsk. When her parents wanted to betroth her, she fled to a convent and was tonsured a nun. An angel of the Lord appeared to her three times and revealed to her where she was to establish a new convent for virgins. She even attracted her sister Eudocia to the monastic life, together with many other maidens from the ranks of the aristocracy. Her cousin, Zvenislava, by birth Princess of Borisov, brought all of her riches, clothes and precious stones and said: "All the beauty of this world I consider vanity, and these adornments prepared for my marriage I give to the Church of the Savior. And I myself wish to be betrothed to Him in a spiritual marriage and place my head beneath His good and easy yoke." Euphrosyne tonsured her a nun and gave her the name Eupraxia. In her old age, Euphrosyne desired to die in Jerusalem, and she prayed to God for this. God heard her prayers and, indeed, when she visited Jerusalem she reposed there. Euphrosyne was buried in the Monastery of St. Theodosius on May 23, 1173 A.D.
! HYMN OF PRAISE
! THE VENERABLE MARTYR MICHAEL
The evil empress accused Michael
Of berating the Islamic faith.
To the monk, the emperor extended a strange proposal:
That he would adopt him as a son,
If only he would abandon the true Faith
And, as a Moslem, shave his head.
The monk warmed his heart with prayer
And laughed in the Sultan's face:
"Do you think, O Emperor, that you are stronger than I?
For me, death means a new life.
My soul cares not for the world.
Behold, I propose three things to you:
Either be baptized with the Cross of true believers,
Or slay me with the bloodthirsty sword,
Or release me to my spiritual father,
That I may return to my monastery."
The king was filled with fury:
With the flash of a sword, the saint's head fell.
The angels took his holy soul
And conveyed it to the Kingdom of Christ.
! REFLECTION
A spiritual man interprets all things and all natural phenomena in a spiritual and symbolic manner, and from everything he draws benefit for his soul. Once, the brethren came to St. John the Dwarf and began to tell him how a heavy rain had fallen and watered the palms, and how new branches had begun to sprout on the palms so that the monks would have enough material for their handiwork. St. John thought and said to the brethren: "In the same manner the Holy Spirit enters the hearts of the saints, so that they are renewed and put forth the branches of the fear of God."
! CONTEMPLATION
Contemplate the grace of God the Holy Spirit in the Mystery [Sacrament] of Baptism:
# How that grace gives power to the soul to follow Christ the Lord;
# How it is a pledge of God's adoption of the baptized man.
! HOMILY
! on how we need not grieve the Spirit of God
"And grieve not the Holy Spirit of God, whereby ye are sealed unto the day of redemption" (Ephesians 4:30).
Brethren, "The Seal of the Gift of the Holy Spirit" is recited over all of us who are baptized by water and the Spirit. The Spirit of God is given to us not because of our merits--no one should ever think that--but according to the mercy of the Living God. Even in normal relations between men, happy is he who gives a gift and happy also is he who receives the gift. Giving is joy on both sides. The greater the gift, the greater the joy. God rejoices when He gives the grace of His Holy Spirit; why then should men who receive it not rejoice? The needy one who receives usually rejoices more than the rich man who gives; why then should not miserable men rejoice who receive this enormous gift from the rich God?
In what way do men grieve the Holy Spirit? The Apostle who commanded that we not grieve the Spirit of God immediately adds by what means the Spirit is grieved: //Let all bitterness, and wrath, and anger, and clamor, and evil speaking, be put away from you, with all malice//(Ephesians 4:31), says the Apostle. In other words, the Spirit of God is grieved by our every sin. Let every sin be put away from us, and the Spirit of God will be joyful and by Him we will rejoice. When we have an important guest in our home we endeavor to do everything that is well-pleasing for that guest. Can there be a greater guest than the Holy Spirit of God? Since He is our greatest and most desired Guest, we need to invest the utmost effort into pleasing Him. We know with what we please the Spirit of God--with the same thing with which we please Christ the Lord. The Lord said: //If you love me, keep My commandments// (John 14:15). Therefore, he who keeps the commandments of Christ has love toward the Son and toward the Holy Spirit. He who pleases the Son, keeping His commandments, also pleases the Father and the Holy Spirit. The Apostle especially recommends: //Be ye kind one to another, tenderhearted, forgiving one another// (Ephesians 4:32). If we are kind, if we are tenderhearted, if we forgive one another, by this we please the Spirit of God Who is a Guest in our hearts. The Spirit of God then rejoices in us, and our entire being trembles from a certain inexpressible joy.
O my brethren, let us take care that we not grieve our Most-high Guest, Who comes to us with the richest gifts.
O God the Holy Spirit, forgive our negligence toward Thine Immortal Majesty and do not leave us empty and worthless without Thee.
To Thee be glory and praise forever. Amen.
! THE VENERABLE SIMEON THE STYLITE OF THE WONDERFUL MOUNTAIN
This wonderful saint was born in Antioch in the year 522 A.D. during the reign of Emperor Justin the Elder. His father perished in an earthquake and he was left alone with his mother Martha. At age six he withdrew to the desert to a spiritual father named John, under whose guidance he submitted himself to a life of austere fasting and prayerful asceticism, to the astonishment of all who saw him. Enduring horrible demonic temptations, he received great comfort and grace from the Lord and His angels. The Lord Christ appeared to him in the form of a handsome youth. After this vision, a great love for Christ burned in Simeon's heart. He spent many years on a pillar praying to God and chanting psalms. Under God's guidance, he withdrew to a mountain called "Wonderful" by the Lord Himself. Because of the name of this mountain, Simeon was surnamed "of the Wonderful Mountain." Because of his love for God, he was endowed with the rare gift of grace, by which he healed every infirmity, tamed wild beasts, beheld distant parts of the world, and saw into the hearts of men. He left his body and gazed at the heavens and conversed with angels; he frightened and cast out demons; he prophesied; at times he lived without sleep for thirty days; and at times he lived even longer without food, receiving nourishment from the hands of angels. The words of the Lord were completely fulfilled in him: //He that believeth on Me, the works that I do shall he do also; and greater works than these shall he do// (John 14:12). In the year of our Lord 596 A.D., in the seventy-fifth year of his life, St. Simeon presented himself to the Lord, to delight eternally in the vision of the face of God together with the angels.
! THE HOLY MARTYR MELETIUS STRATELATES, ALONG WITH 1218 SOLDIERS AND THEIR WIVES AND CHILDREN
Meletius was accused of demolishing a pagan temple during the reign of Emperor Antoninus. Nailed to a tree, Meletius gave up his holy soul. Many soldiers under his command, who refused to deny Christ their Lord, suffered with him. They all suffrered honorably in the second century and took up their habitation in the Kingdom of Christ God.
! THE VENERABLE NICETAS, THE STYLITE
As a youth, Nicetas lived an unrestrained and sinful life. Entering into church by chance, he heard the words of the Prophet Isaiah: //Wash yourselves //(from sin)//and make you clean// (Isaiah 1:16). These words entered deeply into his heart and caused a complete change in his life. Nicetas left his home, wife and property, and entered a monastery near Pereyaslavl, where he lived a life of difficult ascetic labors until his death. He wrapped chains around himself and enclosed himself atop a pillar, for which reason he was called a Stylite. God endowed him with abundant grace so that he healed men of various tribulations. He cured Prince Michael of Chernigov of palsy. Certain evil-doers spotted the chains on him and, seeing them gleam, thought they were made of silver. They killed him one night, removed the chains, and carried them away. This occurred on May 16, 1186 A.D. After his death he appeared to Elder Simeon and ordered that his chains, when they were found, be placed next to his body in the grave.
! HYMN OF PRAISE!
! SAINT SIMEON THE STYLITE OF THE WONDERFUL MOUNTAIN
Glory to wonderful Simeon of the Wonderful Mountain;
He was the glory of the Most-high Creator.
Through prayer, fasting and all-night vigils
He becae a saint with mighty gifts,
With powerful gifts of God's grace.
The Lord rewarded his labors with grace,
Powerful grace in deeds and in words--
Grace which cures diseases and destroys demons;
Grace by which he discerned every deed according to the truth,
And saw into the mysteries of heaven and men.
From his childhood years to end of his days,
He was a beautiful and fragrant sacrifice.
His heart was an altar of the Living God,
A radiant sanctuary of the All-holy Spirit.
His mind was powerfully raised up to the highest realms,
Where all the objects of faith are seen with the eyes.
His will was extended toward goodness,
And mightily strengthened in God's law.
What are all riches and kingdoms; what are they?
Like a brief spark, they glow and are extinguished!
Even the whole world, compared to a holy man--what is it?
The world changes and perishes, and the saint remains.
If the world does not produce a saint, it is a fig tree
Without fruit and worth--a dead, barren tree!
Glory to wonderful Simeon of the Wonderful Mountain;
He was the glory of creation and the Creator.
! REFLECTION
The Apostle Paul said: //Unto the pure all things are pure//(Titus 1:15). The food of man cannot be called impure in itself, although some food can evoke impure thoughts and desires in man. The wonderful St. Simeon the Stylite pondered on this in a conversation with his Elder John. John the Elder said: "Man cannot make food and drink impure, for the Lord says in Scripture: //Even as the green herb have I given you all things// (Genesis 9:3)." To this Blessed Simeon responded: "Although man cannot make food and drink impure, nevertheless they can give birth to impure thoughts and darken the mind; they can give root to and fatten the passions, transforming a spiritual man into a carnal man and nailing his thoughts to earthly desires." Is not the water that falls from the clouds clean? But when too much rain falls, the crops rot because of it. Likewise, strong foods provoke the corruption of the spiritual and moral being of man.
! CONTEMPLATION!
Contemplate the grace of God the Holy Spirit in the Mystery [Sacrament] of Chrismation [Confirmation]:
# How that grace anoints the soul, cleansed by baptism from original sin, with the joy of sonship;
# How that grace confirms a man in the Faith of Christ and seals him for the Kingdom of God.
! HOMILY!
! on how the love of God is shed abroad in the hearts of men
"The love of God is shed abroad in our hearts by the Holy Spirit which is given to us" (Romans 5:5).
Love is joy, and love anoints the heart of man with joy. Brethren, love is power, and love anoints the heart of man with power. Love is peace, and love anoints the heart of man with peace. And from joy, power and peace is born courage, and love anoints the heart of man with courage.
The love of God, like a fragrant oil, is poured out upon our hearts in no other way than by the Holy Spirit, the All-gentle and All-powerful Spirit. Though we are completely undeserving of it, the Spirit of God is poured out upon us: the love of God is shed in our hearts in the Mystery of Chrismation. However, in time we neglect this love and by sin we alienate ourselves from God and fall into the disease of spiritual paralysis. And the Holy Spirit, unwilling to abide in an impure vessel, distances Himself from our heart. When the Holy Spirit distances Himself from us, then joy, power, peace and courage likewise depart from us immediately. We become sorrowful, weakened, disturbed and fearful. But the All-good Spirit of God only distances Himself from us; He does not abandon us completely. He does not abandon us, but rather offers us, as sick men, remedies through the Mystery of Repentance and the Mystery of Holy Communion. When we again cleanse ourselves through the Mysteries of Repentance and Communion, then He, the Holy Spirit of God, again abides in us, and the love of God is poured out upon our hearts. We fall, we rise, we fall, and we rise! When we fall, the Spirit of God stands by us and raises us, if we desire to be raised. And when we are raised, the Spirit of God stands within us all until, through our sinfulness and foolishness, we fall again. Thus, in this life we interchangeably become a fertile field and a wilderness, sons of repentance and prodigal sons, fullness and emptiness, light and darkness.
O All-good Holy Spirit of God, do not depart from us, neither when we want Thee nor when we do not want Thee. Be with us all the time, until our death, and save us for life eternal.
To Thee be glory and praise forever. Amen.
! THE THIRD FINDING OF THE HEAD OF JOHN THE BAPTIST
In the eighth century, during the bitter violence of iconoclasm, the head of St. John was brought to Comana, the place of exile of St. John Chrysostom. When iconoclasm ended in the year 850 A.D. during the time of Emperor Michael and the Patriarch Ignatius, the honorable head of St. John was translated to Constantinople and there was placed in the chapel of the imperial court.
! THE HIEROMARTYR [PRIEST-MARTYR] THERAPONTUS, BISHOP OF CYPRUS
Therapontus was a monk and an ascetic on the island of Cyprus. He was found worthy of the episcopal rank, but during the time of the persecution of Christians he was found worthy of an even greater wreath, the crown of martyrdom. His body reposed in a church on Cyprus. During the reign of Emperor Nicephorus in the year 806 A.D., when the island of Cyprus was attacked by the Hagarenes, the saint appeared to the sexton of that church, told him that the infidels would attack Cyprus, and ordered him to remove his relics to Constantinople. The sexton did this immediately. While the boat with the reliquary was sailing on the sea, a great storm arose, but the sea was calm around the boat and a sweet-smelling fragrance was emitted around the whole boat in all directions. The sexton opened the reliquary and everyone witnessed that it was filled with myrrh [oil], which flowed from the saint's relics. By anointing themselves with this oil, many of the sick were healed. A church was built in Constantinople over the relics of this miracle-worker, who continued to grant healing to all those who with faith touched them. By the grace of God, the grave illnesses of possession, cancer, hemorrhaging, insanity, blindness, barrenness as well as various other maladies were cured by the relics of St. Therapontus.
! THE HOLY MARTYRS PASICRATES, VALENTIAN, JULIUS AND OTHERS
They were all Roman soldiers. They all suffered for Christ in Macedonian Dorostol in about the year 302 A.D. When Pasicrates's brother Papian, who apostatized from Christ because of fear, began to urge him to deny Christ and remain alive, St. Pasicrates answered him: "Depart from me; you are not my brother!" Pasicrates and Valentian were beheaded together. At the trial, St. Julius said: "I am a veteran; for twenty-six years I have faithfully served the emperor and, since I was faithful to a lesser one, how can I not be faithful to a greater One?"--that is, to the Heavenly King. After that, Nicander was brought before the prefect Maximus. Nicander's wife encouraged her husband to die for Christ. "Foolish old woman," Maximus said to her angrily: "You just want a better husband." The woman answered him: "If you think that about me, give the order and let them kill me now, before my husband!" Marcian was also slain with Nicander. Marcian's wife approached the scaffold carrying her son in her arms. Marcian kissed his son and prayed to God: "O All-powerful Lord, take care of him!" Following this, they were beheaded and were translated to the Kingdom of Christ.//)
--------------------
//) Archbishop Philaret of Chernigov believes that all these martyrs were Slavs. See: //The Saints of the Southern Slavs.
//
! HYMN OF PRAISE!
! SAINT THERAPONTUS
Blessed Therapontus suffered for Christ.
He received two heavenly wreaths:
As a hierarch of the Church, and as a courageous martyr;
His body remained like a flower unfaded,
To heal the sick, to make fragrant the world,
To comfort the unfortunate, and to bring joy to the faithful.
Thus the Lord glorified His glorifier,
A wonderful shepherd of his rational flock.
And thus the Lord made known and voiced abroad,
That a violent death does not kill a saint,
But crowns him with a wreath and proclaimed his name,
Eternally glorifying him in both churches.
O God's glorifier, holy Therapontus,
Wonderful martyr for the holy Faith--
Help us also, for the love of God,
By your prayers before the throne most high!
! REFLECTION
Some misguided men think more about the end of the world than about the end of their lives, even though it is obvious that, when the end of a man's life has come, the end of the world has come for him, too. A brother standing in the presence of St. Seraphim of Sarov was turning over in his mind how he was going to ask the saint about the end of the world. St. Seraphim discerned his thought and said to him: "My joy! You think highly of the wretched Seraphim. How could I know when the end of the world will be, and that great day when the Lord will judge the living and the dead and render to each one according to his deeds? No, no, this is impossible for me to know!" And if the saints could not know, how could sinners know? Why should we know that which the Savior Himself did not find beneficial to reveal to us? It is much better to think that our death will come sooner than the end of the world, rather than that the end of the world will come before our death.
! CONTEMPLATION!
Contemplate the grace of God the Holy Spirit in the Mystery [Sacrament] of Repentance and Confession:
# How, when grace touches the heart of the penitent, the penitent sees all the ugliness of his sins and washes them away through tears;
# How grace enters the penitent who has confessed, as joy enters into a sorrowful one, as hope enters into a hopeless one.
! HOMILY!
! on the nearness of the Judge
"Behold, the Judge standeth before the door" (James 5:9).
In one day, brethren, you can gain all eternity. And in one day, brethren, you can lose all eternity. You are given thousands of days on earth to determine your own personal, eternal salvation or your own personal, eternal damnation. But blessed a hundredfold be the day in which you repent of all your unclean deeds, words and thoughts, and return to God crying out for mercy! That day will be worth more to you than a thousand other days.
What kind of day is that blessed day? It is a day of self-condemnation. When that day dawns, the man who until then judged the entire world will at once look and see himself as the greatest stain on God's world. He will become ashamed before God, ashamed before every man, and ashamed before every created thing of God in the world. Shame will begin to burn him like fire. Then he will recognize and confess: Truly, I am the greatest blot in God's world! Truly, all men are better than I! Truly, all things are more pure than I! I am blacker than burned wood, and until now I thought I was white! I am uglier than the frogs, and until now I thought I was as beautiful as an angel! Lord, Lord, Lord, have mercy on me a sinner and wash from me the mud of sin, so that I can, as much as possible, begin to resemble Thy creation!
Brother, do not wait, do not wait for that blessed day of repentance to come by itself. Seize firmly, brother, the first day that comes to meet you and say: "You are the blessed day on which I will purchase life eternal!" Do not wait, my brother, do not wait, for //Behold, the Judge standeth before the door!//That Judge is the Living Lord Who created you and has seen and numbered all of your transgressions up to now. In a day or two, He may call you to the judgment, where you will not have even a word of justification. Seize the day! Seize the day of repentance! Seize the day before death has seized you! //Behold, the Judge standeth before the door!//
O Lord, awesome and just, prolong the days of the sinner until he repents.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE CARPUS
Carpus was one of the Seventy Apostles. He was a follower and companion of the Apostle Paul, by whom he was appointed Bishop of Varna in Thrace. He also preached the Gospel on Crete, where he received St. Dionysius the Areopagite in his home. St. Dionysius testifies that Carpus was a man with an exceptionally pure mind, meekness and innocence; that the Lord Jesus, with His angels, appeared to him in a vision; and that he never began the Divine Liturgy without first receiving a heavenly vision. Enduring many assaults for the name of Christ, he finally suffered at the hands of the unbelieving Jews and was slain. His soul took up habitation in the Kingdom of God, there to delight eternally, gazing upon the Lord in glory.
! THE HOLY APOSTLE ALPHAEUS
Alphaeus was the father of two apostles from among the Twelve: James the son of Alphaeus, and Matthew the Evangelist. He ended his earthly life peacefully.
! THE VENERABLE JOHN OF PSYCHAITA
At an early age, he withdrew from the world to the Lavra [monastery] of Psychaita in Constantinople. There he lived a life of asceticism for many years for the sake of the love of Christ. Because of the veneration of icons, he endured banishment in the eighth century.
! THE NEW MARTYR ALEXANDER OF THESSALONICA
This martyr of Christ was born in Thessalonica at the time of the great tyranny of the Turks over this city. As a young man he was deceived by the Turks and became a Moslem. In the beginning he did not have any pangs of conscience over such an act, and he went on pilgrimage with other Moslems and became a dervish. But, living as a dervish in Thessalonica, he began to repent bitterly. During his repentance, the thought came to him that he could in no way wash away the horrible sin of apostasy from Christ except through his own blood. Therefore, when he repented and decided in favor of martyrdom, he declared himself a Christian before the Turks. The Turks cast him into prison and subjected him to various tortures, but Alexander only cried out: "I was born a Christian, and I want to die a Christian." Finally the Turks condemned him to death, over which the repentant Alexander greatly rejoiced, recognizing from this condemnation that his sins were forgiven and that God accepted his sacrifice. Alexander was beheaded in Smyrna in the year 1794 A.D., and was glorified in both the heavenly and the earthly Church.
! HYMN OF PRAISE!
! THE HOLY APOSTLES
The holy apostles, a small company,
Illumined the world with heavenly light.
On the wings of the Spirit they covered the world,
So that they could give these same wings to the world.
To palaces, huts, and mountains they went;
They sweated on the roads and crossed the seas.
For them, each day meant a new battle and new suffering.
Wrestling with the world, they battled without moaning.
Each day was different, but their thoughts were the same:
Their thoughts were on Christ and their vision on Christ.
What sort of day it would be, was all the same--
To spend the night either in a palace or a prison--
They cared only to uphold Christ in themselves,
And with Him to quickly cover the earth.
Whatever dinner or supper they ate, was all the same;
They cared only that the Faith would shine throughout the world.
Honors or blows: to them it was all the same;
They cared only that Christ would reign over the world.
Winged angels hovered over them,
And rejoiced in them as in their own brothers.
Holy apostles, sons of God,
Pillars of the Church on the foundation of Christ--
Even now they labor and build up the Church,
Although as suns then shine in heaven.
! REFLECTION
We should not desire the death of a sinner but his repentance. Nothing so grieves the Lord, Who suffered on the Cross for sinners, than when we pray to Him for the death of a sinner, thereby to remove the sinner from our path. It happened that the Apostle Carpus lost his patience and began to pray that God would send down death upon two sinful men: one a pagan and the other an apostate from the Faith. Then the Lord Christ Himself appeared to Carpus and said: "Strike me; I am prepared to be crucified again for the salvation of mankind." St. Carpus related this event to St. Dionysius the Areopagite, who wrote it down as a lesson to all in the Church that prayers are needed for sinners to be saved and not for them to be destroyed, for the Lord is //not willing that any should perish, but that all should come to repentance// (2 Peter 3:9).
! CONTEMPLATION!
Contemplate the grace of God the Holy Spirit in the Mystery [Sacrament] of Holy Communion:
# How grace gives life to the bread and wine;
# How It changes them into the Body and Blood of Christ.
! HOMILY!
! on the grace of God
"My Grace is sufficient for thee" (2 Corinthians 12:9).
The Lord did not even spare His apostles from temptations. That is why He gave them grace! When Satan himself began to malign the Apostle Paul, Paul prayed to God that Satan would depart from him. To this the Lord replied: //My grace is sufficient for thee!// That is, if you need to withstand Satan, My grace is sufficient for your endurance. If you need to struggle against Satan, again My grace is sufficient for you. If you wish to defeat Satan, again My grace is sufficient for you. Grace is an all-inclusive weapon. Grace is stronger than all opposition, than all assaults, than all the powers of darkness. Grace is invincible and victorious.
Brethren, that is why we should pray to the Lord to give us His All-powerful grace. Grace is God within us. Grace is the Kingdom of God within us. When the grace of God is within us, then day is within our souls. And day signifies light, knowledge and fearlessness.
Brethren, here on earth we cannot implore a greater good from God than the grace of God. If we were to receive the entire universe as a gift, that gift would be less than the grace of God.
O Most-abundant Lord, the inexhaustible source of omnipotent grace, sprinkle our hardened hearts with Thy grace, that we might weep before Thy most-great goodness and our horrendous ingratitude.
To Thee be glory and praise forever. Amen.
! THE PRIESTLY-MARTYR THERAPONTUS, BISHOP OF SARDIS
Therapontus converted many Hellenes [Greeks] to the Faith of Christ, and for that he was cruelly tortured by the pagans through starvation, imprisonment and flogging. They stretched him naked on the ground, tied him to four dry stumps, and whipped him mercilessly until his flesh was ripped from his bones. But the martyr remained alive and those four stumps turned green and grew into tall trees, from which many who were ill received healing. Finally, St. Therapontus was slaughtered like a lamb, and his soul took up habitation in the Kingdom to behold the glory of God in eternity. He suffered honorably during the time of Valerian, in about the year 259 A.D.
! THE HOLY MARTYRS THEODORA AND DIDYMUS
During the reign of the iniquitous Emperor Maximilian there lived in Alexandria a virgin, Theodora, of noble descent and upbringing. As a Christian, Theodora was brought to trial before the pagans. After subjecting her to a prolonged period of torture for the Faith of Christ, the prince-torturer ordered that she be brought to a place of ill repute and that the soldiers be permitted to approach her for the satisfaction of their carnal passions. St. Theodora fervently prayed to God to save her from defilement, and while she was praying a soldier by the name of Didymus came to her and told her that he too was a servant of Christ. He dressed her in his military attire and himself in her female attire. Then he let her out while he remained in the house of ill repute. Later he was arrested and brought to trial. He admitted that he was a Christian, that he had saved Theodora, and that he was ready to die for Christ. Didymus was sentenced to death and led to the scaffold. Theodora ran up to him and cried out: "Even though you saved my honor, I did not ask you to save me from death. Yield to me the martyr's death!" St. Didymus said to her: "My beloved sister, do not prevent me from dying for Christ and from washing away my sins by my blood!" Hearing this discussion, the pagans sentenced them both to death, and both were beheaded and their bodies burned. They honorably suffered and both obtained the wreath of eternal glory in the year 304 A.D., in Alexandria.
! SAINT DAVID OF GARESJA
David is one of the thirteen fathers of Georgia commemorated on May 7. He was called "of Garesja" because of the wilderness near Tbilisi where he lived the ascetic life [from the Georgian //gare//, 'outside' and //jdoma//, 'to sit']. In his old age, David decided to visit the Holy Land with a few of his disciples. He entrusted the care of the monastery to the Elders Lucian and Dodo, and began his journey. When they arrived at a hill from which Jerusalem was visible, David began to weep and said: "How can I be so bold as to walk in the footsteps of the God-man with my sinful feet?" David then told his disciples that they, being more worthy, should go to worship at the holy places, and he took three stones and began to return. But the Lord would not allow such humility to be hidden from the world, and an angel appeared to Elias the Patriarch of Jerusalem and said to him: "Immediately send for the elder who is returning to Syria. In his possession are three stones. He took with him all the grace of the Holy Land: for him one stone is sufficient for a blessing, and the other two should be returned to Jerusalem. That elder is Abba David of Garesja." The patriarch immediately sent men who caught up with the Elder David, took the two stones and released him. That third stone remains, even today, on his tomb and possesses the miraculous power of healing.
! HYMN OF PRAISE
! SAINT DIDYMUS AND SAINT THEODORA
Didymus, beautiful, to his death went! And joyfully chanted psalms.
When the young Theodora, this heard,! From the city, she hurried after Didymus.
With Didymus she debated,
Concerning death, with him vying:
"O Didymus, O my benefactor;
Let them first kill me!
You, my virgin's honor saved,
But from me took the martyr's wreath.
O Didymus, yours are the honor and glory,
But this death, let it be mine!
Remove yourself, let me the sword behead!"
Didymus replied to Theodora:
"Theodora, virgin, sister of mine,
Here is the fortune of which I have always dreamed!
Here the opportunity to die for Christ.
For you it is enough that a virgin pure you are;
You serve the Lord in purity.
Allow Didymus, God to repay!"
His counsel, Theodora did not accept;
Before Didymus, she hurried ahead toward death.
"A head for beheading, have I,
And a soul in need of salvation!"
Oh, most beautiful was this debate!
Oh, such a blessed competition over death!
But one sword can cut off two heads:
I flashed twice, and beheaded both
With the heavenly hosts, they are now numbered,
And by their prayers, help us.
! REFLECTION
Bodily health is undoubtedly a gift from God. But bodily health is by no means the greatest good of this world, as many people say and write about. For whatever kind of bodily health it is, it is transitory; and that which is transitory cannot be called the greatest blessing for man. Unchanging values are more precious than transitory values, as eternity is more precious than time. Unchanging values enter into the framework of the health of the soul. Father John of Kronstadt writes: "Oh, I myself feel that, when I am completely healthy and when I do not exhaust myself by labor, then I am dying in the spirit; then the Kingdom of God is not within me; then my body controls me, and with my body, the devil."
! CONTEMPLATION
To contemplate the Grace of God the Holy Spirit in the Mystery [Sacrament] of Holy Communion:
# How grace makes the consecrated bread and wine the living sacrifice of Christ;
# How it acts within the bread and wine in the same way as it acted within the body of the All-pure One [The Theotokos] at the time of the Incarnation of the Lord.
! HOMILY
! About the grace of God revealed throughout the ages
"That in the ages to come He might show the exceeding riches of His grace" (Ephesians 2:7).
With his prophetic gift, the Apostle Paul prophesied about the riches of grace which, throughout the ages, would be poured out on the generations of mankind. We who live nearly twenty centuries after the time of the Apostle can attest to that which the Apostle prophesied in ages past. Just as beehives are filled with valuable and honey-bearing bees, so all the centuries from Christ until today are filled with grace-filled men, virgins and women.
Oh, how abundantly the richness of the grace of God manifested itself on countless souls who at first were sinful and later became holy!
Oh, how abundantly the richness of the grace of God manifested itself on men and women who were at first weak and fearful and then heroically confessed Christ the Lord and joyfully suffered for Him!
Oh, how abundantly the richness of the grace of God manifested itself through the centuries on the simple and illiterate who became true wise men and spiritual generals of the faithful armies of Christ!
Brethren, just think how much more hidden holiness, unrevealed sacrifices, unrecorded heroism, unsung virtues lay hidden in the depths of twenty centuries of Christianity! When all of that is made known, everything from past centuries and those yet to come until the end of time, then angels and men will be astonished before the unspeakable riches of the grace of God. Then the Apostle Paul himself will have to cry out: "Even though I was an apostle, nevertheless, my word was too weak to express all the immeasurable richness of the grace of God which, out of love for man, has appeared in the world."
O Most-Holy Trinity, our mankind-loving God, lift up our hearts that we continually glorify and praise the exceeding great richness of Your grace.
To Thee be glory and praise forever. Amen.
! SAINT NICETAS, CONFESSOR AND BISHOP OF CHALCEDON
In his youth, he renounced the world and withdrew to a life of monastic asceticism. Shining like the sun with virtues, he was noticed by the elders of the Church and was elevated to the episcopal throne of Chalcedon. As a bishop, he was especially merciful toward the less fortunate, and he greatly concerned himself with the welfare of orphans, widows and the poor. When the evil Leo the Armenian rose up against the icons, Nicetas courageously stood up in their defense, denouncing the emperor and explaining their meaning. Consequently, he endured great humiliation, calumny and imprisonment. He was finally banished into exile for his confession of Faith, and in labors and sufferings presented himself to the Lord to receive a wreath of glory in the Kingdom of God.
! THE HOLY FEMALE MARTYR HELICONIS
Heliconis was born in Thessalonica and was educated in Christian piety. During the reign of Gordian and Philip, she moved to Corinth where she openly denounced all those who offered sacrifices to the idols. When Perinus the mayor urged her to offer a sacrifice to the idol Aesculapius, this martyr of Christ said to him: "Hear me, I am a handmaiden of Christ, and I do not know who Aesculapius is. Do with me what you will." For this, she was brought to trial and endured terrible tortures. She was cast into fire, but a great quantity of blood poured from her body, extinguishing the fire, and she remained alive. She was thrown to lions, but the lions did not touch her, fawning around her instead. Admitted into the temple allegedly to offer sacrifices to the idols, she destroyed the idols, and by this she embittered the torturer even more. As she lay wounded in prison, the Lord Himself appeared to her with the Archangels Michael and Gabriel. The Lord healed her wounds, comforting and strengthening her. Afterward she was led to the scaffold to be beheaded. Before her beheading, Heliconis raised her arms high and prayed that God receive her and unite her with His lambs in the heavenly sheepfold. When she completed her prayer, a voice was heard from heaven: "Come daughter, a crown and a throne are prepared for you!" Finally, she was beheaded and received the wreath of glory from the Lord, for Whom, out of love, she sacrificed herself as an innocent and pure lamb.
! SAINT IGNATIUS OF ROSTOV
As a hierarch, he governed the flock of Christ for twenty-six years with great love and compassion. When he died and as his body was being placed in church, some of those who were present witnessed him rise from the coffin into the air above the church and bless the people and the town from the heights. Then his body returned to his coffin. Many other miracles occurred at his grave. He presented himself to the Lord on May 28, 1288 A.D.
! HYMN OF PRAISE! ! SAINT HELICONIS
Heliconis, the courageous martyr,
Pure of soul, most beautiful of countenance,
In Corinth, the city of idols
Proclaimed the word about the only God:
"Corinthians, by darkness deceived,
In demonic bonds, tied,
You worship all things
But not the One God Most High!
God is One, the idols are many;
God is One, the devils are many.
The One God is the Creator, the Omnipotent;
Of all creation, He is the good Provider.
He created all, He sustains all;
To every living thing He gave the breath of life.
He moves everything with power and wisdom;
He caresses all with divine mercy.
He is the Lord of earth and heaven;
Him only should we worship.
Corinthians, wealthy and glorious,
Why, in faith, are you so lacking?"
! REFLECTION
Only a proud man is always prepared to equate Christ with other great men. However, it is obvious at first glance that great men are one thing and the Lord Christ another, just as creation is one thing and the Creator is another. Christ is not only great but He is the Creator and Source and Inspirer of everything truly great in the history of mankind. While in exile and misery on the island of St. Helena, Napoleon, a man of transient greatness, uttered these words: "Alexander, Caesar, Hannibal, Louis XIV, with all their genius, are nothing. They have conquered the world and were unable to gain one friend. And behold, Christ calls and instantly entire generations are united in a bond closer and stronger than the bond of blood. Christ ignites the fire of love which consumes all egoism and surpasses any kind of love whatever."
! CONTEMPLATION!
To contemplate the grace of God the Holy Spirit in the Mystery [Sacrament] of Holy Matrimony:
# How grace, during marriage, lawfully sanctifies the physical bond of two human beings for the sake of the procreation of children;
# How it unites, illumines and strengthens, through love, the union of two souls: husband and wife.
! HOMILY!
! About the power of the Mystery [Sacrament] of Matrimony
"Therefore shall a man leave his father and his mother, and shall cling to his wife and they shall be one flesh" (Genesis 2:24).
It is God's will that the human race multiply. The means by which this is accomplished have been devised by God's artistry. It is God's mystery how man leaves his father and mother and clings to his wife. To leave your parents does not mean to abandon your parents but rather to become parents yourself. When children become parents, they are no longer only children, they are also companions of their parents. When wedded sons learn of the mystery and pain of childbirth, they then respect their parents even more. The marital union can never free a man from having respect and obedience toward his parents. The original commandment of God to honor one's parents must be fulfilled. But, according to the natural cycle of things, a man leaves his parents and becomes a parent himself; he becomes a founder of a new future while his parents depart, having completed their role in the world. However, the "leaving" of one's parents does not consist in this alone. By a certain incomprehensible mystery, man clings to his wife and detaches himself from his parents. St. Theodoretus writes: "Christ Himself left his Father on high and united Himself to the Church."
My brethren, matrimony is a great and miraculous mystery, one of the greatest mysteries of God's plan. A pure and honorable marriage overflows with sublimity. A pure and honorable marriage, in the fear of God, is a vessel of the grace of the Holy Spirit. Whoever disdains marriage disdains the Spirit of God. Whoever defiles marriage with impurity blasphemes against the Spirit of God. Whoever abstains from marriage for the sake of the Kingdom of God must, in a different manner, prepare himself as a vessel of the Holy Spirit and must make himself fruitful in the spiritual realm in order not to be cut down as the barren fig tree.
O God, Holy Spirit Almighty, assist those who are married, that in purity, fear and mutual love they may be as the Church of God, in which You joyfully abide and govern all things for good.
To Thee be glory and praise forever. Amen.
! COMMEMORATION OF THE FIRST ECUMENICAL COUNCIL
The commemoration and praise of the [[Holy Fathers]] of the [[First Ecumenical Council]] is held on the [[Sunday before Pentecost]], the Seventh Sunday after [[Pascha]]. This Council was held in [[Nicaea]] in the year [[325 AD]] during the reign of the saintly [[Emperor Constantine the Great]]. The Council was convened to eliminate the confusion which [[Arius]], a priest of Alexandria, had created by his false teaching. He taught that Christ was created in time by God and that He is not the pre-eternal [[Son of God]], equal in being [[essence]] with [[God the Father]]. Three hundred and eighteen Holy Fathers participated in this Council. The Council condemned the teaching of Arius, and Arius was anathematized since he refused to repent. The Council finally confirmed the Symbol of Faith [[The Creed]], which was later augmented at the [[Second Ecumenical Council]] [[381 AD]]. Many distinguished saints were present at the First Ecumenical Council, among whom the most notable were: [[St Nicholas of Myra in Lycia]], [[St Spyridon]], [[St Athanasius]], [[St Acillus]], [[St Paphnutius]], [[St James of Nisibis]], [[Macarius of Jerusalem]], [[Alexander of Alexandria]], [[Eustathius of Antioch]], [[Eusebius of Caesarea]], [[Metrophanes of Constantinople]], [[John of Persia]], [[Aristarchus of Armenia]] and many others from the East. From the West, the following were present: [[Hosius of Cordova]], [[Theophilus the Goth]], [[Cecilianus of Carthage]] and others. The most important work of this Council was the confirmation of the Symbol of Faith [[The Creed]]. The Council also established the time of the celebration of the Feast of the Resurrection of Christ [[Pascha]] and issued twenty various canons.
! THE HOLY FEMALE MARTYR THEODOSIA OF TYRE
Once, during the reign of [[Emperor Maximian]], many Christians stood bound before the praetor(1) in Palestinian Caesarea. The pious virgin Theodosia approached, and comforted and encouraged them in their martyrdom. Upon hearing what she was saying, the soldiers also led her before the judge. The enraged judge ordered that a stone be hung around her neck and that she be cast into the depths of the sea. But angels of God carried her to the shore alive. When she appeared before the judge again, he ordered her to be beheaded. The following night, Theodosia appeared to her parents encompassed in a great heavenly light, surrounded by many other virgins who were also saved and said: "Do you see how great is the glory and grace of my Christ, of which you wanted to deprive me?" She said this to her parents because they had tried to dissuade her from confessing Christ and martyrdom. Theodosia suffered honorably and was glorified in the year [[308 AD]]
(1) An elected magistrate in ancient Rome ranking below a consul charged with the administration of civil justice.
! THE VENERABLE FEMALE MARTYR THEODOSIA
Theodosia was born as the result of the prayers of her mother to the holy martyr Anastasia, who appeared to her and said that she would give birth. Her parents dedicated her to God and at an early age presented her to a woman's monastery. After the death of her parents Theodosia inherited a vast estate, and from that estate she ordered three icons from a goldsmith: of the Savior, the Mother of God [[The Theotokos]] and St. Anastasia. The rest of her inheritance she distributed to the poor. She suffered in the year [[730 AD]] during the reign of the evil Emperor Leo the Isaurian, the iconoclast, and received a two-fold wreath: virginity and martyrdom.
! SAINT ALEXANDER, BISHOP OF ALEXANDRIA
Alexander was the first to take up the fight against Arius. He died in the year [[326 AD]]
! SAINT JOHN USTJUZSKI, [[Fool For Christ]] AND [[Miracle-Worker]]
! THE HOLY MARTYR JOHN NAN OF THESSALONICA
John suffered for the Faith at the hands of the Turks in Smyrna in [[1802 AD]]
! THE HOLY MARTYR ANDREW OF CHIOS
Andrew suffered for the Faith at the hands of the Turks in Constantinople in the year [[1465 AD]]
! THE FALL OF THE CITY OF CONSTANTINOPLE
Because of the sins of men, God permitted a bitter calamity to fall upon the capital of Christianity. On May 29, [[1453 AD]], [[Sultan Muhammed II]] conquered [[Constantinople]] and executed [[Emperor Constantine XI]].
! HYMN OF PRAISE
! THE FALL OF THE CITY CONSTANTINOPLE MAY 29, 1453
! EMPEROR CONSTANTINE XI
Constantine the Emperor bravely defends Constantinople,
And to God he quietly prays within himself:
"O Most-high God, Who from heaven looks down,
You do not allow injustice to defeat justice.
Christians, against You, have greatly sinned,
And upon Your laws, have trampled horridly.
Without Your permission, this battle is not;
Because of men's sins, blood is shed.
That this city fall, if it is Your will,
Not to surrender, encourage my people,
That the Cross not be trampled upon and that they not go over to Islam.
Rather, let them endure bondage, until freedom returns.
Let them servants be, let them even be slaves;
Upon them, let hatred and ridicule fall;
But with hope and repentance, let them endure
And with bitter sighing for former sins,
Until all their sins they wash away and expiate,
And until, to You, they completely return.
If they have You, they will be rich;
All plundered treasures, You will replace.
Constantinople on earth--may it be or not be;
A Constantintople in heaven, You established,
Where, with Your servants, you gloriously reign.
Before this Constantinople, behold, I stand.
O Blessed One, on our sinful souls, have mercy.
When it is built anew, let the old one be razed!
! REFLECTION
Oh, how great was the fearlessness of the holy men and holy women! When we read about their lives, both shame and pride is awakened involuntarily in us: shame that we have lagged so far behind them, and pride that they are of our Christian race. Neither sickness, nor prison, nor exile, nor suffering, nor humiliation, nor the sword, nor the abyss, nor fire, nor the gallows were able to shake the exalted peace of their souls, firmly attached to Christ, the Helmsman of the universe and of human history. When [[Emperor Julian the Apostate]] apostasized from the Faith and began to lay waste Christianity throughout the entire empire, [[St Athanasius the Great]] quietly spoke of him to the faithful: "It is a small cloud; it will pass!" //(Nibicula est, transibit)//. And indeed, that dark cloud quickly passed, and Christianity lowered its roots even deeper and spread its branches all the more throughout the world. The impotent rage of Julian against Christ passed after several years with Julian's cry in his death-rattle: "O Nazarene, You have conquered!" O sons of God, why should we be afraid of anything, when God our Father fears nothing?
! CONTEMPLATION
To contemplate the Grace of God the [[Holy Spirit]] in the [[Mystery]] [[Sacrament of Marriage]]:
# How [[Grace]] gives a certain dignity to the manner of the procreating of the human race;
# How it makes matrimony honorable by comparing it to the union of Christ with the Church.
! HOMILY
! About the two-fold mystery of marriage
"This is a great mystery: but I speak concerning Christ and the Church" ([[Ephesians 5]]:32).
Great is the mystery when a man leaves his father and mother and cleaves to his wife. The Apostle himself, who was raised to the third heaven and who saw many mysteries of heaven, calls the physical union of men and women in marriage on earth "a great mystery." It is the mystery of love and life, and only the mystery of Christ's union with His Church is greater. Christ is called the Bridegroom, and the Church is called the Bride. Christ loves His Church so much that, because of Her, He left His heavenly Father--remaining with Him, of course, in unity of essence and divinity--and descended to earth and bound Himself to His Church. He suffered for Her so that, by His Blood, He might cleanse Her from every sin and defilement, and make Her worthy to be called His Bride. With His love He warms the Church, with His Blood He feeds the Church, and by His Holy Spirit He causes the Church to live and sanctifies and adorns Her. What a husband is to a wife, so Christ is to the Church. Man is the head of woman and Christ is the Head of the Church. A woman listens to her husband, and the Church listens to Christ. A husband loves his wife as he loves his own body, and Christ loves the Church as His own Body. A husband loves his wife as he loves himself, and a wife reveres her husband; so also Christ loves the Church as His own self, and the Church reveres Christ. Since no one hates his own flesh but rather warms and nourishes it, so also Christ warms and feeds the Church as His own Body. Every individual human soul is the bride of Christ the Bridegroom, and the assembly of all the faithful is the bride of Christ the Bridegroom. The relationship of a believing man toward Christ is the relationship of the entire Church toward Christ. Christ is the Head of that great Body which is called the Church, and which is in part visible and in part invisible.
O my brethren, this is a great mystery! It is revealed to us according to the measure of our love for Christ and of our fear of Christ's judgment.
O Lord, gentle Savior, cleanse us, save us and adorn our souls, that we may be worthy of the immortal and indescribable unity with You in time and in eternity.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS TIMOTHY AND MAURA
The fate of these two wonderful martyrs, husband and wife, is amazing! Because of their Christian Faith, they were brought to trial before Arrianus, the governor of Thebaid, during the reign of Diocletian. This occurred only twenty days after their marriage. Timothy was a reader in his local church. The governor questioned him: "Who are you?" To this Timothy responded: "I am a Christian and a reader in God's Church." The governor further said to him: "Do you not see these instruments of torture surrounding you?" Timothy replied: "And do you not see all the angels of God who strengthen me?" Then the governor ordered that an iron rod be pierced through his ears, so that the pupils of his eyes protruded because of the pain. After that, they hanged him upside down and placed a piece of wood in his mouth. At first Maura was frightened because of Timothy's sufferings, but when her husband encouraged her, she also confessed her steadfast faith before the governor. The governor then ordered all the hairs of her head pulled out, and after that severed the fingers from her hands. After many other tortures, from which they would have succumbed had not the grace of God strengthened them, they were crucified facing each other. Thus hanging on their crosses, they lived for nine days, counseling and encouraging each other in perseverance. On the tenth day, they gave up their souls to their Lord for Whom they had endured death on a cross, and so were made worthy of His Kingdom. They suffered honorably for Christ in the year 286 A.D.//)
--------------------
//) The name "Maura" means black. Therefore, in Macedonia, the feast day of these two saints is referred to as Black Day. On the island of Zakynthos, there exists a church dedicted to Saints Timothy and Maura in which many miracles of healing have taken place.
! THE VENERABLE THEODOSIUS OF THE KIEV CAVES
From his early youth, Theodosius shunned laughter and levity, dedicating himself to godly thoughts and prayers. Because of this, he was often abused by his mother, especially one day when his mother noticed around his naked body an iron belt, which had stained his shirt with blood. Having once read the words of the Savior in the Gospel, //He that loves father or mother more than Me is not worthy of Me// (Matthew 10:37), Theodosius left the home of his parents and fled to the Monastery of the Kiev Caves to see the Venerable Anthony. Anthony received him and shortly afterward tonsured him a monk. When his mother found him and asked him to return home, he counseled her, and she entered a convent and was tonsured a nun. Theodosius quickly surpassed all the monks by his asceticism, meekness and goodness, and became very dear to Anthony, who installed him as abbot of the monastery. During the time that he was abbot, the brotherhood of the monastery greatly increased, churches and cells were built, and the Rule of the Studite Monastery was introduced in its entirety. God endowed Theodosius with abundant grace because of his virginal purity, great labor in prayer, and love for his fellow man. Thus, this man of God possessed great power over unclean spirits, healed diseases, and prophesied the destinies of men. Along with St. Anthony, Theodosius is considered the founder and organizer of monasticism in Russia. He reposed peacefully in the year 1074 A.D. His healing relics rest beside the relics of Anthony.
! HYMN OF PRAISE
! SAINTS TIMOTHY AND MAURA
Timothy and Maura, crucified and pale,
Looked at one another through the Lord Christ,
And with the spirit they saw each other better than with the eyes,
Being, in their pain, exalted above all things.
And Timothy spoke: "Maura, my sister,
You are of a feminine nature, and your pain is greater!
But do not despair, sister, strengthen yourself in prayer;
Affix all of your thoughts to Christ."
Maura replied: "Brother Timothy,
I feel the Spirit of God, it lifts my soul.
He keeps me strong, and strengthens me in my helplessness.
Sweetest Jesus assuages my pain.
But about you, my glorious pride, I am concerned.
What pain can be compared to yours?
But in just a little while, a little while, my sweet brother:
From the thorns of suffering, roses will blossom.
You shall be blessed by the entire heavenly host.
Only endure, endure without sound or outcry.
Let us be alert, Brother, let us not fall asleep;
Perhaps the Lord may come; may we not be ashamed.
Behold, I see the heavens opened,
And unseen treasures prepared for us."
Then Timothy said to Maura: "O wonderful sister,
Bride of Christ, glorious martyr:
Let us glorify God for His wondrous mercy,
That He has vouchsafed us such an honorable death.
Oh, glory to Thee, O Savior, Who suffered for us;
Our spirits we now commend into Thy hands."
! REFLECTION
Abba John the Dwarf asked his monks: "Who sold Joseph?" One monk replied: "His brothers." To this the elder replied: "Not his brothers, but his humility. Joseph could have said that he was their brother and protested his being sold, but he remained silent. His humility, therefore, sold him. Afterward, this same humility made him master over Egypt." We defend ourselves too much from the external difficulties that come from surrendering ourselves to the will of God. That is why we lose the good fruits that are harvested at the end of difficulties endured with humility. Abba Poemen wisely said: "We have abandoned the easy yoke, that is, self-reproach; and we have burdened ourselves with a heavy yoke, that is, self-justification." The Christian accepts every difficulty as payment for present or past sins, seeking in all the will of God with faith and awaiting the end with hope.
! CONTEMPLATION
Contemplate the ascended Lord Jesus:
# How He began His saving work on earth as an ordinary humble worker;
# How He completed His saving work by His miraculous and glorious Ascension into heaven.
! HOMILY
! on how the idol-worshipers will be put to shame
"As the thief is ashamed when caught, so shall the house of Israel be ashamed: They who say to a piece of wood, 'Thou are my father,' and to a stone, 'Thou gavest me birth.' They turn to Me their backs, not their faces; yet in time of trouble they cry out, 'Rise up and save us !' " (Jeremiah 2:26-27).
In truth, brethren, they will all be put to shame who do not see beyond wood and stone and who, in their ignorance, say that man is composed entirely of vegetable and mineral matter and that he shares the same fate as plants and minerals. With their backs turned to the Creator, they are unable to see anything other than creation, and they forget the Creator, proclaiming creation the creator. They say that nature created and gave birth to man, and that that is why man is subordinate to nature, lower than nature, the servant in the lap of nature, a slave in the chain of nature, and a dead man in the grave of nature. They who speak thus will be shamed when they fall into misfortune and cry out to God: //Rise up and save us!//
Why do they cry out to God, //Rise up, //as though God is lying down? God is not lying down, but standing; standing and waiting to be of service to everyone who, with faith and humility, seeks a service from Him. But those who have become enamored with wood and stone while trusting in their own power, have overthrown Him in their lives and excluded Him from their lives. Thus, when they are pressured by difficulties, they cry out to Him: //Rise up!//
But the Lord is meek and rises and comes to the aid of every penitent. Let the sinner truly repent and, casting off his sinful love, return to God in love, and God will help him. Let him turn his back on dead wood and stone and turn his face to the Living God, and God will redeem him. For the Almighty is not vengeful and vindictive, neither did He create man for death, but for life.
O brethren, let us seek neither help in the helpless nor life in the lifeless. Let us turn our heads toward our Living Creator, Who gave us a face more radiant than the face of any earthly thing. Let us turn from the western ways to the eastern path, for on this path is salvation. But let us hasten, before our last day on earth has sunk into the darkness of the west.
O ascended Lord, raise our minds to heaven. Cleanse them from darkness and unburden them of the earth, O our Light-bearing Creator.
To Thee be glory and praise forever. Amen.
! VENERABLE ISAAC, THE CONFESSOR
During the reign of Emperor Valens, the Arians, with the emperor's assistance, vehemently persecuted the Orthodoxy. Hearing of this persecution, Isaac, a hermit somewhere in the east, left the wilderness and came to Constantinople to encourage the faithful and denounce the heretics. At the same time, the Emperor Valens departed to the north with his army against the Goths, who had come down from the Danube toward Thrace. Isaac came before the emperor and said to him: "O Emperor, open the churches of the Orthodox, and God will bless your path." The emperor ignored the elder and proceeded on his way. The following day, Isaac ran out again before the emperor, and again he repeated his warning. The emperor almost heeded the elder, but a certain advisor of his, a follower of the Arian heresy, prevented him. Isaac ran out before the emperor on the third day, grabbed the emperor's horse by the reins, begged the emperor to grant freedom to the Church of God, and threatened him with divine retribution if he acted contrary to his petition. The enraged emperor ordered that the elder be thrown into a chasm of mud and thorns. However, three angels appeared and pulled the elder out of the chasm. On the fourth day Isaac came before the emperor and prophesied a terrible death for him if he did not grant freedom to the Orthodox: "I am speaking to you, O Emperor: You will lead the army against the barbarians, but you will not be able to endure their attack. You will flee from them, but you will be captured and burned alive." Thus, it happened. The barbarians cut down the Greek army like grass, but the emperor, with his Arian advisor, fled and hid in a basket. The barbarians arrived at that place and, learning where the emperor was, surrounded the basket and set it afire. Both the emperor and his advisor were burned alive. Following this, Theodosius the Great was crowned emperor. Theodosius, who heard about the prophecy of Isaac and its fulfillment, summoned Isaac and prostrated himself before him. Since peace reigned in the Church and the Arians were exiled, Isaac wanted to return to his wilderness, but he was persuaded to remain in Constantinople. An aristocrat, Saturninus by name, built a monastery for the Elder Issac, where he lived a life of asceticism until his death, working many miracles. The monastery overflowed with monks and became a great monastery. Before his death, Isaac appointed Dalmatus, his disciple, as abbot, after whom this monastery was later named. The God-pleasing Elder Isaac entered into eternity in the year 383 A.D., to rejoice in the vision of the face of God.
! SAINT MACRINA
Macrina was the grandmother of St. Basil the Great. She was exceptional for her intelligence and piety. She was a disciple of St. Gregory the Wonderworker of Neo-Caesarea. During the reign of Diocletian, Macrina abandoned her home, and she and her husband Basil hid themselves in the forests and wilderness. Their property was confiscated but they did not grieve over it. Deprived of everything except their love for God, they settled in a primeval forest, where they spent seven years. By God's providence, goats descended from the mountains, providing them with food. They both died peacefully in the fourth century, following great suffering for the Faith of Christ.
! HYMN OF PRAISE! ! THE VENERABLE ISAAC THE CONFESSOR
Isaac, like the Prophet Elias,
Shines with virtue like the sun.
The emperor he begs, the evil emperor he warns,
Because the emperor defies the great God:
"Against whom have you risen up, O my emperor?
Desolate, your kingdom will be left,
Because, against the Most-high God, you wage war.
Under his feet, dust and ashes!
With an army, against the cruel barbarians, you set out;
In your own strength, O Emperor, you hope!
Your strength is like that of a tiny ant;
He who is with God, true strength has.
Your foot has started out in two wars:
Against men and against God.
With poor men, everything will go easily,
But make peace with the invincible God.
Hold to Orthodoxy, heresy reject,
For otherwise the cruel fire will burn you.
The fire here, and the first yonder:
Shamefully, both worlds you will forfeit."
The warnings of the saint, the emperor does not heed.
Into battle he enters; God he does not remember.
Into battle he enters; from which he does not return.
Like a foul smell, Valens was and passs away.
But God, His Church frees,
And Isaac, of Paradise, is made worthy.
! REFLECTION
The Word of God is food for the soul. The Word of God is both power and light for the soul. He who reads the Word of God gives food, power and light to his soul. He who can, should read the Word of God in Holy Scripture, and he who cannot should listen to him who reads Holy Scripture. All the saints emphasized the benefit of reading Holy Scripture. St. Seraphim of Sarov says: "The soul should be provided with the Word of God. For the Word of God, as Gregory the Theologian says, is the bread of angels, which feeds the soul that is hungry for God. But, above all, one should read the New Testament and the Psalter. From this proceeds illumination of the mind... It is very beneficial to read the Word of God in solitude and to read the entire Bible with understanding. The Lord gives His mercy to a man for endeavoring to do this, more than for other good deeds, and fills him with the gift of understanding. When a man provides his soul with the Word of God, then he is filled with the understanding of good and evil."
! CONTEMPLATION!
To contemplate the Grace of God the Holy Spirit in the Mystery [Sacrament] of the Priesthood [Holy Orders - Ordination]:
# How grace sanctifies, illumines and enables a man to serve as shepherd and teacher;
# How it empowers the priest to celebrate the other Mysteries.
! HOMILY!
! About the Mystery of Ordination
"And when they had prayed, they laid their hands on them" (Acts of the Apostles 6:6).
By laying their hands on the chosen faithful, the apostles consecrated bishops, priests and deacons. It is apparent from this that the Christian Faith is not only a teaching but also a power. It is not enough merely to know; it is also necessary to have power. It is not enough merely to be chosen by men; one must also be confirmed by God. If power were not necessary for the priestly vocation, neither would the laying on of hands be necessary; only teaching passed from mouth to ear would be needed. The laying on of hands, therefore, signifies the transferring of authority and the descent of power on the chosen one. The power is in the grace of God, Who strengthens man, sanctifies and illumines him. Truly, the grace of God is that which teaches, leads, shepherds, and through the Mysteries [Sacraments] strengthens the flock of Christ. A priest is the vessel of this inexpressible, awesome and all sufficient power of grace. Blessed is that priest who understands what a precious treasury he has become! Blessed is he if the fear of God does not leave him day and night until his last breath! There is no greater honor on earth, no greater responsibility than the calling of the priesthood. By the laying on of hands by the bishop, the priest has come into contact with the heavenly and eternal source of grace and with the authority of the apostles. By this, the priest has become a companion in grace and a concelebrant with all the Orthodox priests from apostolic times until today, with the great hierarchs, with the countless number of saints, confessors, miracle-workers, ascetics and martyrs. He is gently adorned by their dignity, but he bears the burden of their merit, their example, and their reproach.
O my brethren, great and most great is the ministry of a shepherd of Christ's rational flock. He is responsible to pray to God for all, and all the faithful are required to pray to God for him.
O Lord, Supreme Hierarch, sustain the Orthodox priests in strength, in wisdom, in purity, in zeal, in meekness and in every apostolic virtue by the grace of Your Holy Spirit.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE HERMAS
Hermas was one of the Seventy Apostles. He is mentioned in the Epistle of St. Paul to the Romans. //Salute Asyncritus, Phlegon, Hermas, Patrobas, Hermes and the brethren which are with them// (Romans 16:14). Hermas was a Greek by birth but lived in Rome for a long time. He was a bishop in Philipoupolis and ended his life as a martyr. He compiled a very instructive book called "The Shepherd" according to revelations from an angel of God. Hermas was a wealthy man, but, because of his sins and the sins of his sons, he fell into extreme poverty. Once while in prayer, a man appeared to him in white raiment with a staff in his hand and told him that he was an angel of repentance, who was sent to be with him until the end of his life. The angel gave him twelve commandments:
# Believe in God;
2. Live in simplicity and innocence; do not speak evil; give alms to all who beg;
3. Love truth and avoid falsehood;
4. Preserve chastity in your thoughts;
5. Learn patience and generosity;
6. Know that a good and an evil spirit attend every man;
7. Fear God and fear not the devil;
8. Perform every good act, and refrain from every evil deed;
9. Pray to God from the depth of your soul with faith that your prayer will be fulfilled;
10. Guard against melancholy, the sister of doubt and anger;
1# Test true and false prophecies;
12. Guard against every evil desire.
! THE HOLY MARTYR HERMEAS
Hermeas served as an imperial soldier until old age, at which time he suffered for Christ the King. Since the evil judge tried in vain to dissuade him from following the Faith of Christ and failed to convince him to offer sacrifices to the idols, the judge then gave orders that Hermeas's teeth be knocked out with a stone and the skin peeled from his face with a knife. After that they threw him into a fiery furnace, but the grace of God saved him, and he stood up. Then, by order of the judge, he drank a bitter poison that was given to him by a magician, but the poison did him no harm. Witnessing this, the magician was so amazed that he openly confessed Christ, for which he was immediately beheaded. Afterward, they gouged out both of Hermeas's eyes, but he did not grieve. Instead he cried out to the judge: "Take for yourself these bodily eyes that gaze upon the vanity of the world. I have eyes in the heart, by which I clearly see the light of the truth." He was then hung upside down by the feet, and those who did this to him were blinded and staggered around him. St. Hermeas beckoned them to come to him, laid his hands on them and restored their sight by prayer to the Lord. Witnessing all of this, the judge became as enraged as a lion, drew a knife and severed the head of this godly man. Christians secretly removed the body of Hermeas and honorably buried it. His relics gave healing to all the sick and afflicted. St. Hermeas suffered in the year 166 A.D., during the reign of Emperor Antoninus.
! THE HOLY MARTYR PHILOSOPHUS
This martyr of Christ was born in the vicinity of Alexandria. During the time of the persecution of Christians, St. Philosophus did not want to deny Christ the Lord before the pagan princes and judges. For this, the pagans subjected him to violent tortures. After he was tortured in various ways, they finally placed him on a soft bed, tied his hands and feet, and had a harlot come to him and to lure him into sin. When St. Philosophus sensed that the sin of passion was being aroused in him from the touch of the woman's hand, he placed his tongue between his teeth, bit if off and spit it in the face of the depraved one. Because of this, the passion subsided in him, and the immoral woman was so horrified that she immediately fled from him. Afterward he was beheaded, in about the year 252 A.D., while still young in years, and took up his habitation in the Kingdom of eternal youth. (//)
(//) In the Greek Prologue, Philosophus is commemorated on May #
! HYMN OF PRAISE! ! SAINT HERMEAS AND THE MAGICIAN
The old and evil magician, a poisoner and liar;
In everything very small, but great in fear--
Bitter poison, to the holy Hermeas, he gave:
From this poison, even the serpents would hide!
Hermeas, the poison drank: death did not claim him,
And the old magician saw this and trembled all over.
"Oh, what a wonderful miracle!" he cried out,
"Over the soldier of God, the poison has no power!
Let be hidden the dark days of my life,
Let be erased the years of my shameful life!
To foolish deceits, my entire life I dedicated,
My whole life to the service of these idols senseless.
And just today, in great fear I see
That the One True God, the God of Hermeas is.
Christ crucified, the Lord of the heavens--
Only His miracles are truth.
From now on, Christ's I am: O Christ, forgive me.
As thy least servant, You, O Good One, receive me.
Forgive me my all-too-many sins, forgive me.
For You I will sacrifice body and lifeless bones!"
Bitterly repentant, the old man uttered these words,
And at once he was cleansed of falsehood and fears.
Among the Christians, himself, he openly numbered.
The sword over him flashed and, in his blood, baptized him.
! REFLECTION
This life is a spiritual struggle. To conquer or to be conquered! If we conquer, we will enjoy the fruits of victory through all eternity. If we are defeated, we will endure the horrors of destruction through all eternity. This life is a duel between man and all that opposes God. God is an almighty Ally to all who sincerely call upon Him for help. "This life is not a joke or a plaything," says Father John of Kronstadt, "but men turn it into a joke and plaything. The capricious play around with the time given to us for preparing for eternity; they play around with empty words. They gather together as guests, they sit and chatter and after that they sit and play this or that game. They gather in theaters, and there they entertain themselves. All of life is an amusement for them. But woe unto them who do nothing but entertain themselves."
! CONTEMPLATION!
To contemplate the grace of God the Holy Spirit in the Mystery [Sacrament] of Holy Unction [Anointing with Oil]:
# How grace works through the sanctified oil;
# How, according to prayer and faith, it heals every illness and infirmity.
! HOMILY!
! About the Mystery [Sacrament] of Holy Unction [Anointing with Holy Oil]
"...And anointed with oil many that were sick, and healed them" (St. Mark 6:13).
The holy apostles did this, and it is commanded that we do the same. The Apostle James writes to us: //Is there any sick among you? Let him call for the elders of the church; and let them pray over him, anointing him with oil in the Name of the Lord. And the prayer of faith shall save the sick, and the Lord shall raise him up; and if he has committed sins, they shall be forgiven him// (St. James 5: 14-15). One must not call anyone except the priests, the elders of the church. One must not anoint him in any other name except the Name of the Lord, so that it will not appear to be witchcraft. No one will be able to raise him except the Lord Himself, neither can anyone forgive his sins except the One Lord. Why oil and not something else? Because it is commanded, and so that we may show obedience and faith. Why is it commanded that we be baptized with water, and anoint [chrismated] with oil [myrrh], and communicated with bread and wine? That is God's choice and God's prudence, and it is for us to believe and to obey. Various elements are used in the different Mysteries [Sacraments], but the grace of God is one as our Lord is one, and everything is from the Lord. Why does our Lord need material objects in order to pour out His grace upon us? The Lord does not need material objects, but we do; as long as we are material, we need them. Condescending to our weakness, the Lord uses matter. To the incorporeal angels He gives grace in an incorporeal manner.
Oil alone is ineffectyual in itself, just as every other material is ineffectual in itself; but the grace of God is all-powerful. Through oil the Lord gives the grace of His Holy Spirit, and that grace heals the sick, raises the infirm, and restores sanity to the insane.
O my brethren, how inexpressible is God's goodness! What did God not do for us? And what more could we possibly desire? He knew all of our needs beforehand, and He foresaw the cures in advance for all of them. He only seeks from us that we believe in Him and fulfill His prescriptions. Is it not insolent and shameful that we often conscientiously fulfill the prescriptions of physicians, mortal men like us, and neglect the prescriptions of the Immortal God?
O All-good Lord, thaw our stony hearts by the power of Your grace, so that before the hour of our death, we may show the gratitude we owe You, O our All-good and our All-wise God!
To Thee be glory and praise forever. Amen.
! THE HOLY FEMALE MARTYR PELAGIA OF TARSUS
Pelagia was born in the town of Tarsus of pagan but distinguished and wealthy parents. Hearing about Christ and the salvation of souls from Christians, she burned with love for the Savior and became utterly Christian in soul. At that time there was a terrible persecution of Christians. It happened that the Emperor Diocletian stopped in Tarsus. During his stay in Tarsus his son, the crown prince, fell deeply in love with Pelagia and wanted to take her as his wife. Pelagia replied through her mother, a wicked woman, that she had already been betrothed to her heavenly Bridegroom, Christ the Lord. Fleeing the profane crown prince and her wicked mother, Pelagia sought and found Bishop Linus, a man distinguished for his holiness. He instructed Pelagia in the Christian Faith and baptized her. Then Pelagia gave away her luxurious garments and great wealth, returned home, and confessed to her mother that she was already baptized. Learning of this and having lost all hope that he would gain this holy virgin for his wife, the crown prince ran himself through with a sword and died. The wicked mother denounced her daughter before the emperor and turned her over to him for trial. The emperor was amazed at the beauty of this young virgin and, forgetting his son, became inflamed with impure passion toward her. But since Pelagia remained unwavering in her faith, the emperor sentenced her to be burned alive in a metal ox, glowing with a red-hot fire. When the executioner stripped her, St. Pelagia made the sign of the Cross and, with a prayer of thanksgiving to God on her lips, entered the glowing ox, where she melted like wax in the twinkling of an eye. Pelagia suffered honorably in the year 287 A.D. The remains of her bones were acquired by Bishop Linus and he buried them on a hill under a stone. In the time of Emperor Constantine Copronymos (741-775 A.D), on that exact spot a beautiful church was built in honor of the holy virgin and martyr Pelagia, who sacrificed herself for Christ in order to reign eternally with Him.
! THE HIEROMARTYR [PRIEST-MARTYR] SILVANUS, BISHOP OF GAZA
Silvanus was first in the military service but later, driven by the power of his faith, he entered into the spiritual service. Accused of converting pagans to Christianity, he was cruelly tortured and was later beheaded with forty other soldiers in the year 311 A.D. Thus, they all became citizens of heaven.
! THE VENERABLE NICEPHORUS
At first Nicephorus was a Roman Catholic, but later he embraced the Orthodox Faith. He lived the life of an ascetic as a monk on Mount Athos with the wise Theoleptos. He was a teacher of the glorious Gregory Palamas and wrote a work on mental prayer. He presented himself peacefully to the Lord in the fourteenth century. Nicephorus taught: "Gather your mind and force it to enter into the heart and remain there. When your mind is established in the heart, it should not remain empty, but should continually perform this prayer: 'Lord Jesus Christ, Son of God, have mercy on me!' [The Jesus Prayer.] Never allow it to cease. Because of this, the entire chain of virtues will enter into you: love, joy, peace and all the others. And through this your every petition to God will be fulfilled."
! HYMN OF PRAISE
! SAINT PELAGIA
Pelagia, as an angel bright,
Stood before the emperor for trial and judgment.
The brutish-looking emperor spoke to her:
"With a royal diadem I will crown you,
If you, among women, will be my wife!"
Pelagia boldly replied:
"I loathe the thought of marriage to a heathen.
Never, O Emperor, will I be yours.
What do you offer me? A wreath of dust!
Three wreaths have I from the Lord,
From Christ, my eternal Bridegroom.
The first wreath--for the Faith I have kept;
The second wreath--for the virginity I have preserved;
The third wreath--the wreath of martyrdom.
Do not hesitate, impious Emperor:
Crush this body of dust--
Crush, cut up, burn and grind it,
That my soul may soon depart for the wedding,
That soon I may stand beside my Bridegroom,
My Savior, the Immortal God.
! REFLECTION
A young man inexperienced in spiritual combat underlines his every good work with self-praise. But the experienced soldier in the midst of struggles with the passions and demons disparages his every deed and intensifies his prayer for God's help. Abba Matoes used to say: "The closer a man is to God, the more sinful he sees himself to be." He also was known to say: "When I was young, I thought perhaps that I was doing some good; and now when I am old, I see that I do not have one good deed." Did not our Lord say: //There is none good but one, ! that is, God// (Matthew 19:17)? Therefore, if only the One God is good and the source of all good, how can a good deed be done that is not from God? And how can someone who does a good deed ascribe it to himself and not to God? If this is so, then in what can a mortal man be praised? In nothing, except by God and the goodness of God!
CONTEMPLATION!
Contemplate the ascended Lord Jesus:
# How, by His Ascension, He manifested His Divine Nature and His Divine Might;
# How, by His Ascension into heaven, He reveals to man that there exists a better, loftier world and life: a heavenly world and heavenly life.
HOMILY!
on idolatry as adultery!
"Judah and Israel have defiled the land and committed adultery with stones and with wood" (Jeremiah 3:9).
What sort of adultery did the people of Israel and Judah commit with stones and wood? It was the worship of idols of stone and wood. Before this sin, they committed another sin: they turned away from worshipping the True God, the Living God, the One God. Why is their idolatry called adultery? Because they were first bound by love for the True God, the Living God, the One God, but afterward they betrayed this love and gave their hearts to strange idols of stone and wood. That is why the Lord calls their idolatry, adultery.
Was this reproach of God deserved only in ancient times and not in our own time, and only by Israel and Judah and not by Christians? Unfortunately, even today many Christians deserve this reproach of God. In whomever love has cooled off for the True God, the Living God, the One God, and a lower love has been enkindled for things of stone and wood, for decaying things and mortal creatures, he commits adultery and brings down upon himself the reproach of God. So, that reproach of God is as appropriate today as it was then, for men sinned then without knowing Christ, and men sin now knowing Christ.
O brethren, how long will this dark idolatry be dragged over the earth? How long will the earth reek from the adultery of mankind with their idols of stone and wood, of silver and gold, of flesh and blood? Did not the Almighty Christ crush all the idols into dust and ashes? Why do some now stoop down and again make gods for themselves from that dust? Because of the devil's lies and their own self-deception.
O Lord, ascended into the highest heavens, protect us from the lies of the devil and our own self-deception. By Thine honorable Cross safeguard us from shameful adultery with fallen idols. Help us, O Lord, help us to ceaselessly worship Thee the only True God, the Living God, the One God.
To Thee be glory and praise forever. Amen.
////
! THE HOLY GREAT-MARTYR IRENE
Irene lived in the Balkans during apostolic times in the town of Magedon. Her father Licinius was a lower-rank nobleman. Some think that she was a Slav. Irene was born a pagan of pagan parents. Penelope--for that was her pagan name--learned about the Christian Faith from her teacher Appelianus. St. Timothy, the disciple of the Apostle Paul, baptized her and her court attendants, and provided her with the Epistles of the Apostle Paul to read. Refusing to marry, she angered her father, and he wanted to torture her. Instead, she converted her father to Christianity in a miraculous manner. Irene was subjected to various tortures by four kings, not including her father, but God spared her through His angels. King Sedechias buried her up to her neck in a ditch filled with snakes and scorpions, but an angel of God destroyed these venomous and repulsive creatures and preserved the holy virgin unharmed. Then this king tried to saw her in half, but the saw broke against her body as against a stone. After that the same king tied her to a wheel under a water mill and released the flow of water, hoping in this manner to drown her. But the water refused to flow, and stood still, and the virgin remained alive and well. King Sapor, the son of King Sedechias, shod her feet with nails, loaded a sack of sand upon her, harnessed her and ordered that she be led like an animal far outside the town. "Truly, I am as a beast before Thee, O Lord!" said the holy martyr, running bound behind her torturers. However, an angel of God shook the earth, and the earth opened up and swallowed her torturers. Having survived all her tortures, through which she converted a countless number of pagans to Christianity, Irene entered the town of Callinicus, where she preached the Christian Faith. The local king Numerian tried to kill her in this manner: he cast her into three flaming hot metal oxen, one after the other. But the virgin was saved and remained alive. Many saw this and came to believe. The Eparch Vavdonos took her to the town of Constantina, where he thought to kill her by placing her on red-hot grates. But that too did not harm St. Irene, and she brought many to the true Faith. Finally, Irene arrived in the town of Mesembria where she was slain by King Shapur, but God restored her to life. The king and many of the people, upon witnessing this, believed in Christ and were baptized. Thus, through her sufferings and miracles, St. Irene converted over one hundred thousand pagans to the Christian Faith. Finally she lay down in a coffin and ordered Appelianus to close it. After four days, when the coffin was opened, her body was not in it. Thus, God glorified forever the virgin and martyr Irene, who sacrificed all and endured all so that God might be glorified among men.//)
--------------------
//) Archbishop Philaret of Chernigov believed that St. Irene was of Serbian descent. See his //Lives of the Saints.
//
! SAINT MARTIN AND SAINT HERACLIUS
Martin and Heraclius were both Slavs. They were persecuted by the Arian heretics in Illyria. Sent into exile, these two knights of Orthodoxy completed their earthly lives in the fourth century and took up their habitation with the Lord.
! HYMN OF PRAISE
! SAINT IRENE
Penelope, daughter of the king, was at the balcony,
When three birds in a row quickly flew to her.
The first a dove, white as milk, with an olive branch;
After that an eagle, carrying a wreath of flowers in its bony beak;
Finally, a raven, carrying a fierce viper, swooped down and entered.
Penelope asked the servants if they knew what this meant.
The servants were silent; no one knew; all were struck with amazement.
Appelianus the elder said: "We are all mortal men,
But hearken to me, Penelope, hearken, beautiful child.
The Spirit of God, through these signs, clearly prophesies to you:
The dove signifies your serenity; 'Irene' you will be called;
The olive branch signifies the grace of God upon you;
The eagle is a conqueror--you shall conquer the passions;
The flowery wreath signifies glory and heavenly sweetness;
The raven with a serpent signifies the demon with his maliciousness,
But by your endurance you will overcome him."
Irene heard all this, and her heart quivered.
And she resolved to give herself wholly to the saving Faith.
She carried out what she decided, and God helped her.
Through her holy prayers, O God, save even us.
! REFLECTION
Prayer consisting of words alone does not help if the heart does not participate in prayer. God hears only a fervent prayer. Once Abba Zoilus of the Thebaid was returning from Mount Sinai and met a monk who complained to him that they were suffering greatly from drought in the monastery. Zoilus said to him: "Why don't you pray and implore God?" The monk replied: "We have prayed and have implored, but there is no rain." To this Zoilus replied: "It is evident that you are not praying fervently. Do you want to be convinced that this is so?" Having said this, the elder raised his hands to heaven and prayed. Abundant rain fell to the earth. Seeing this, the astonished monk fell to the ground and bowed before the elder, but the elder, fearing the glory of men, quickly fled. The Lord Himself said: ! //Ask and it shall be given you// (Luke 11:9). But a mouth full of prayer is to no purpose if the heart is empty. God does not stand and listen to the mouth but to the heart. Let the heart be filled with prayer, even though the mouth might be silent. God will hear and will receive the prayer. For God only listens to a fervent prayer.
! CONTEMPLATION
Contemplate the ascended Lord Jesus:
# How, by His Ascension, He signified the triumphant completion of His entire work on earth in the course of some thirty-three years;
# How, by His Ascension, He teaches us that we should direct all of our aspirations toward heaven and not toward earth.
! HOMILY
! on the divine marriage of the souls of men
"Turn, O backsliding children, says the Lord; for I am married to you" (Jeremiah 3:14).
The soul of man is the bride, and the Living and All-powerful God is the bridegroom of the soul of man. The Lord clothes His bride, the soul, in light and nourishes it with His grace. And the soul, whose groom is God, gives birth to many good children in the form of many beautiful works of virtue. The soul, on its own, cannot give birth to even one virtuous work. Virtuous works are born only of the soul made fertile by God. However, the soul that is made fertile by the world either remains barren or produces sin and vice. That is why the Lord says to men: "I am married to you." If a human soul knew to Whom it is betrothed and with Whom it is wed, it would not stray and deaden itself in adultery and turn to dust.
God is a faithful Groom of the human soul. He never betrays His bride, the soul. His love toward the soul never cools as long as the soul does not turn away from Him and commit adultery. But even then God does not abandon the soul immediately, but pursues it and returns it from the path of destruction. //Turn,// the Lord then says to the souls of men. "Repent and I will forgive you. Return and I will receive you." Penitents can testify to how great the mercy of God is. They can confirm how patient the love of God is toward sinners, even to the last hour. God is faithful in His love, and He is not swift to seek vengeance on the adulterous soul. He constantly tries to restore the sense of shame that has been lost to the adulterous soul because of sin. Shame produces repentance, repentance leads to restoration, and restoration leads to the original love and fidelity.
O Lord, All-powerful, help us, that from Thine eternal love our souls may produce good and abundant fruit.
To Thee be glory and praise forever. Amen.
! THE HOLY, RIGHTEOUS AND LONG-SUFFERING JOB
Job was a descendant of Esau the grandson of Abraham and lived in Arabia about two thousand years before Christ. His father's name was Zareth, and his mother's name was Bosora. However, his full name was Jobab. Job was an honorable, God-fearing man and very wealthy. In the seventy-ninth year of his life, God permitted difficult temptations to befall him through Satan, as is written in detail in the Book of Job. In one day, Job lost all his enormous estates, his sons and his daughters. After that, a terrible disease befell him, and his entire body was covered with sores from head to foot. He lay on the rubbish heap outside the town and with a potsherd scrapped away the pus from his wounds. Job did not murmur against God, but patiently endured all his sufferings to the end. That is why God restored his health, gave him greater riches than before, and bestowed upon him seven sons and three daughters, as many as he had previously had. He lived for a total of 248 years, always glorifying and praising God. Job is considered the model of patient endurance of every suffering that God sends upon us, and a type of the suffering of the Lord Jesus.
! THE HOLY MARTYR BARBARUS
Barbarus was a soldier during the reign of Julian the Apostate. When the emperor's commander Bacchus led the Roman army against the Franks, Barbarus, who was secretly a Christian, was serving in the army. In battle there appeared a certain hero on the side of the Franks, similar to Goliath of old, and he challenged the Romans to send one of their men to come out to do battle. Commander Bacchus advised Barbarus to go. Barbarus prayed in his heart to the Living Lord, went out and defeated that giant. As a result, the Frankish army became confused and fled. Then the commander prepared a great celebration and ordered that sacrifices be offered to the idols. But during the sacrificial offerings, the commander learned that Barbarus was keeping himself apart. When asked why, Barbarus declared that he was a Christian. The commander informed the emperor, and the emperor ordered that Barbarus be subjected to the most severe tortures. But Barbarus endured all with rare courage and composure. During his tortures many miracles occurred, and many soldiers who witnessed this accepted the Christian Faith. Among them was the Commander Bacchus along with Callimachus and Dionysius. All three were beheaded for the name of Christ, and after them Barbarus was also beheaded in the year 362 A.D. Their souls took up their habitation in the Kingdom of Christ the Immortal King.
! SAINT BARBARUS THE ROBBER
After having committed many crimes, Barbarus repented and at first condemned himself to crawl on all fours for three years and to eat with dogs. He then lived twelve years in the forest without clothes, a roof or food except grass and leaves. Angels revealed to him that his sins were forgiven. Some merchants, traveling through the forest, saw Barbarus from afar, thought that he was an animal and not a man, aimed their arrows at him, and pierced him. Dying, Barbarus begged them to inform the nearest priest about him. The priest arrived and buried him honorably. From his body flowed healing myrrh (oil), which cured various diseases and pains of men.
! HYMN OF PRAISE
! JOB THE SUFFERING SERVANT
Tell me, brother, what you are able to endure,
And I will tell you how much of a man you are.
Job the righteous, rich and all glorious,
Was thrown by Satan onto a dunghill,
And with festering and sores he was covered:
To both dogs and men, a horrifying sight!
Whatever he had, perished in a day,
Save for faith and patience.
But with the weapons of faith and patience
Job overcame terrible Satan.
God looked upon the uneven struggle,
And to the righteous one He imparted victory.
With victory He imparted all other riches,
And put the envious devil to shame.
! REFLECTION
Abba Isaiah said of himself: "I see myself resembling a horse wandering around without a rider. Whoever finds him, sits on him and rides him to his content. When one rider dismounts the horse, another saddles him and does the same, likewise the third and so on." This great ascetic, about whom everyone said with amazement that he had attained perfection, spoke this of himself either out of humility or from remembrance of his time of imperfection. The main thing is that these words are true in relation to every Christian who walks spiritually unbridled and unrestrained. Just as soon as one passion dismounts, another mounts him. Just as soon as one wearies him and leaves him in despair, another mounts him with the deluded hope that it will make him happy. Such a man does not have a rider who would direct him to the true path without digressing to the left or to the right. The only friendly rider that should be greeted with a welcome is the holy and powerful Christian spirit.
! CONTEMPLATION
Contemplate the Ascension of the Lord Jesus:
# How He first resurrected bodily and then ascended bodily;
# How after death the souls of righteous men first ascend into heaven while the body awaits the general resurrection, general transfiguration and general ascension.
! HOMILY
! on the power that God gave to the words of the prophets
"Behold, I made My words in your mouth a fire. And this people is the wood that it shall devour!" (Jeremiah 5:14).
You see, brethren, that the effect of the word of God is different according to different people. The word of God is like fire in which the righteous one rejoices as one frozen in the cold of this world; and the word of God is like fire that burns the unrighteous one whom this material world has overly warmed. The experienced spiritual fathers have left us proof that only the name of Jesus--bringing power, joy and refreshment to the faithful--consumes evil spirits as a living fire. That is the way with every word of God. For some it creates comfort, for others irritation; for some it quiets anger, for others it increases anger; for some it causes deep respect, and for others scorn. To the healthy it is honey; to the unhealthy it is the honey of wormwood.
But why should the people be as wood that will be consumed? Are the people to be blamed if the godless elders and false prophets lead them astray?
The people are not to blame to as great a degree as their elders and false prophets, but nevertheless they are to blame to a certain extent. For God also gave the people to know the right path through conscience and through the preaching of God's word. Thus, the people should not have blindly followed their blind leaders when they led them on false paths and distanced them from God and God's law. Brethren, God is just and He knows the measure of everyone's faults, and He will not permit the ignorant and the least to suffer as much as the learned and the great.
O All-seeing God, save us that we be neither blind leaders nor blind followers. Strengthen our hearts that, as leaders and as followers, we will always be Thy servants and only Thy servants.
To Thee be glory and praise forever. Amen.
! COMMEMORATION OF THE APPEARANCE OF THE HONORABLE CROSS OVER JERUSALEM
During the time of St. Constantine's son, Emperor Constantius, and Patriarch Cyril of Jerusalem, the Honorable Cross appeared about 9:00 a.m. stretching from Golgotha to above the Mount of Olives. This Cross was brighter than the sun and more beautiful than the most beautiful rainbow. All the people, both believing and unbelieving, left their work and observed this heavenly sign in fear and amazement. Many unbelievers converted to the Christian Faith, and many Arian heretics abandoned their evil heresy and returned to Orthodoxy. About this sign, Patriarch Cyril wrote a letter to Emperor Constantius, who had inclinations toward Arianism. This occurred on May 7, 357 A.D. Thus, even on this occasion it was demonstrated that the Christian Faith is not worldly theorizing, according to the sensual understanding of man. Rather it is God's power, demonstrated through numerous miracles and signs.
! THE HOLY MARTYR ACACIUS
St. Acacius was a Roman officer during the reign of Emperor Maximian. Answering at his trial for his faith in Christ, he said that he inherited this devout Faith from his parents and was strengthened in it by witnessing the many miraculous healings wrought by the relics of Christian saints. After courageously enduring great tortures in the Thracian city of Pyrrinthus, Acacius was taken to Byzantium. There he endured new tortures until he was finally beheaded. He suffered honorably and took up his habitation in the Eternal Kingdom of joy in the year 303 A.D.
! THE VENERABLE FATHERS OF GEORGIA
In the sixth century, two hundred years after St. Nina preached the Gospel in Georgia, the Most-holy Mother of God appeared to John, an Antiochian ascetic, and commanded that he select twelve of his disciples and go to Georgia to strengthen the Orthodox Faith. And so he did. Arriving in Georgia, these twelve missionaries were solemnly received by the prince of that country and the Catholicos Eulalius and immediately began their work with zeal. The people gathered around them in masses, and they strengthened the people in the Faith with great wisdom and many miracles. The head of these Christ-loving missionaries was St. John of Zedazeni and the names of the others were: Abibus, Anthony, David, Zenon, Thaddeus, Jesse, Isidore, Joseph, Michael, Pyrrus, Stephen and Shio. With apostolic zeal they all confirmed the Christian Faith in Georgia, established many monasteries, and left many disciples after them. Thus, they were made worthy of glory in heaven and power on earth.
! HYMN OF PRAISE
! THE HOLY MARTYR ACACIUS
Acacius, soldier of the King Most-high,
Prepares for death,
His soul filled with the incense of prayer.
The godless judge asks him:
"Why does not Christ deliver the faithful?
Why does He not punish your tormentors,
When you call Him Almighty God?"
The martyr meekly replies to him:
"The Lord Christ is great in mercy,
Long suffering in mercy and in patience.
He awaits repentance from the sinner,
And patient suffering from the faithful.
If He immediately punished the sinners
How would He reveal His mercy?
And the righteous--if they would not suffer,
By what would they show the power of God?
By what would they shine before the world?"
Having said these words, Acacius is beheaded,
And his souls ascends to Paradise.
! REFLECTION
"I recognize that my debt was greater, and that more was forgiven me. I was called to the priesthood from juridical and public offices; and that is why I show myself ungrateful if I love less than the measure to which I am forgiven." These are the words of St. Ambrose, who was unexpectedly called by God to change vocations and, having been a secular judge, to become an archbishop of Christ's Church. With these words the saint demonstrated how the priestly calling is greater than the secular calling, how he came to the priestly vocation by God's calling, and how he who is called owes thanksgiving to God. All the saints considered the debt of thanksgiving to God as their main debt. Without thanksgiving to God there can be no progress in the spiritual life. Ceaseless thanksgiving to God is the noble seed from which, if it is watered by the tears of unceasing repentance, a beautiful fruit grows--love for God.
! CONTEMPLATION
Contemplate the descent of God the Holy Spirit upon the holy apostles:
# How the apostles stood in one mind at prayer;
# How, suddenly, there came a sound from heaven as a rushing mighty wind.
! HOMILY
! on how good is taken away from man by sin
"Your sins have turned back these blessings from you" (Jeremiah 5:25).
If you do not possess good in abundance, O people, that means you have sin in abundance. Your sins have turned your good from you. O people, if you wish good for yourselves, reject sin and sin no more. Then you will move toward good, good will come to you, and good will not depart from you.
O man, if you do not have good, it means that you have sin. Good cannot dwell in the same house with sin, just as light and darkness cannot exist in the same place at the same time. When light departs, darkness settles in, and when the darkness departs, the light shines. Thus, sin and good can be interchanged, but they cannot dwell together.
O my brethren, //y! our sins have turned back these blessings from you.// These words were not spoken by only one prophet to only one nation; rather, every true prophet spoke these words to his people. False prophets flatter their people with sins, and thus they assist even more in turning back good from their people. The true prophets oppose the sins of the people, for they consort with good and cry out against sin, so as to introduce the good from God into their people's souls. If the beehive begins to stink, will the honey-bees enter and deposit their honey in it? No! And when irrational bees refuse to enter a putrid and smoke-ridden beehive, then how will the rational Spirit of God enter a soul that is putrid and smoke-ridden from sin? And the Spirit of God is the possessor and the dispenser of all good gifts.
O Lord, Holy Spirit, help Thy people by Thine irresistible power to drive away sin from their souls; so that Thou wouldst be able to enter inside with Thy life-creating gifts.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE AND EVANGELIST JOHN
The feast day of this great apostle and evangelist is celebrated on September 26. This day (May 8) commemorates the miracle which occurred at his grave. When John was over one hundred years old, he took seven of his disciples, went outside the town of Ephesus, and ordered them to dig a grave in the form of a cross. Then the elder went down alive into this grave and was buried. Later, when the faithful opened John's grave, they did not find his body. On May 8 of every year, dust rises up from his grave, by which the sick are healed of various diseases.
! THE VENERABLE ARSENIUS THE GREAT
This glorious saint was born of a patrician family in Rome. He was well educated in the secular sciences and philosophy as well as in spiritual wisdom. Abandoning all the vanity of the world, he dedicated himself to the service of the Church and was a deacon in a large church in Rome. Unmarried, withdrawn, quiet and devout, he thought to live that way his entire life. But the providence of God directed his path in life in another way. Emperor Theodosius took him as a tutor and instructor for his sons Arcadius and Honorius, and installed him as a senator, surrounding him with great wealth, honors and luxury. Rather than pleasing him, all of this burdened Arsenius's heart. It happened once that Arcadius committed a wrong, and for that Arsenius punished him. The offended Arcadius conceived a terrible plan for revenge against his teacher. When Arsenius found out, he dressed as a beggar and left for the seashore. There he boarded a boat and sailed to Egypt. When he arrived at the renowned Scetis, he became a disciple of the glorious John the Dwarf and dedicated himself to a life of asceticism. He considered himself dead, and when someone informed him that a wealthy relative had died and willed his entire estate to him, Arsenius replied: "But I died before him; how is it then that I could be his heir?" Enclosed in a hermit's cell as in a tomb, through the entire day he wove baskets of palm leaves, and at night he prayed to God. He avoided men and all conversations with them. Only on feast days did he leave his cell and attend church to receive Holy Communion. In order to avoid laziness, he often asked himself the question: "Arsenius, why did you come to the wilderness?" He remained in the wilderness for fifty-five years as a desert dweller and for the entire time was a model to the monks and a glory to monastics in general. In all, Arsenius lived one hundred years and reposed peacefully in the year 448 A.D. after prolonged labor and voluntary hardships. He took up his habitation in the Kingdom of Christ the Lord, Whom he loved with all his heart, mind and soul.
! SAINT EMILIA
Emilia was the mother of St. Basil the Great. In her youth she desired to remain a virgin for life but was forced into marriage. Emilia gave birth to nine children and inspired them with the Spirit of Christ to such an extent that five of them became Christian saints: Basil the Great; Gregory of Nyssa; Peter, Bishop of Sebaste; Macrina and Theosevia. In her old age Emilia established a convent where she lived with her daughter Macrina. There she reposed in the Lord on May 8, 375 A.D.
! THE VENERABLE ARSENIUS, THE LOVER OF LABOR
Arsenius was a monk in the Monastery of the Kiev Caves. He never afforded himself any rest but continually labored. He ate food only once a day, after the setting of the sun. He lived a life of asceticism and reposed in the fourteenth century.
! HYMN OF PRAISE
! SAINT ARSENIUS
Glorious Arsenius, whom the world glorified,
Fleeing from glory, said to himself:
"To men and to the world, consider yourself dead.
Speak neither wise nor foolish words.
For a word I have at times repented;
For silence I have never repented.
If I do not bind my heart to God,
I am not able to shake off the passionate life.
If my thoughts only glorify God,
External passions will leave me.
Fill your time with prayer and labor;
Sleep even less and labor all the more.
Sinful Arsenius, why do you stop?
Why did you come to the wilderness, I ask?
Not for the sake of idleness, but for the salvation of the soul;
Not for the sake of sleep, but for the sake of repentance.
Heal yourself quickly, and enliven the soul:
Lord have mercy! Forgive and have mercy!
! RELFECTION
A monk complained to St. Arsenius that while reading Holy Scripture he felt neither the power of the words he read nor gentleness in his heart. The great saint replied to him: "My child, just read! I heard that when snake-charmers cast a spell upon serpents, these sorcerers utter words which they themselves do not understand, but the serpents, hearing the words spoken, sense their power and are tamed. An so it is with us, when the words of Holy Scripture are continually on our lips, although we do not feel the power of the words, evil spirits tremble and flee for they are unable to endure the words of the Holy Spirit." My child, just read! The Holy Spirit, Who wrote these divine words through inspired men, will hear, understand and hasten to your assistance. Likewise, the demons will hear and understand, and will flee from you. That is: He to Whom you are calling for help will understand, and those whom you wish to drive away from yourself will understand. And both goals will be achieved.
! CONTEMPLATION
Contemplate the descent of God the Holy Spirit upon the apostles:
# How there appeared fiery tongues over the apostles, one on each of them;
# How the apostles were filled with the Holy Spirit and begin to speak in various tongues, as the Holy Spirit gave them utterance.
! HOMILY
! on evil as the fruit of the thoughts of men
"Hear, O earth: behold, I will bring evil upon this people, even the fruit of their thoughts, because they have not hearkened to My words, nor to My law, but rejected it" (Jeremiah 6:19).
Brethren, do you see where evil grows and ripens? Not in the bosom of God, but in the thoughts of men. Evil is sown in the thoughts of men by demonic powers or by the passions of the flesh. Evil grows in the thoughts of men, spreads and multiplies itself, blossoms and bears leaves, and finally shows fruit. God is prompt to warn men to break from their evil thoughts so that evil will not ripen in their souls and bring forth its bitter and deadly fruit. God was prompt to warn Cain, but he did not want to heed the warning and permitted evil thoughts against his brother to bring forth evil fruit; fracticide.
What are evil thoughts? All those thoughts that are contrary to the Law of God and the word of God. Evil thoughts are the self-willed law of man, which man prescribes for himself in spite of and contrary to the Law of God. Therefore, if a man has resolutely decided to adhere to the Law of God, then evil thoughts are as weak as shadows, which quickly appear but quickly disappear in the same way. Then a man is lord over his thoughts, for he feels God as the Lord over himself. Then his law is the Law of God, and the evil thoughts of men are nothing.
//Behold, I will bring evil upon this people! ,//said the Lord. What kind of evil? //The fruit of their thoughts.// That is: I will permit them only to reap that which they sowed and nurtured, for evil is neither My seed nor My harvest. The evil that I will permit upon lawless men is the fruit of their own thoughts. According to their thoughts, they should have estimated what kind of evil would befall them, as a sower estimates, according to his seeds, what he will harvest.
O Lord, meek and guileless, save us from our own evil, which we alone have nurtured in ourselves. We pray to Thee: remove the evil fruit of evil crops, and help us to pluck out the evil seed from our souls.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET ISAIAH
This great prophet was of royal lineage. Isaiah was born in Jerusalem of his father Amoz, who was the brother of Amaziah the king of Judah. By the great grace of God that was in him, Isaiah was made worthy to see the Lord of Sabaoth on the throne in heaven surrounded by six-winged seraphim who continuously sing: ! //Holy, Holy, Holy, is the Lord of Sabaoth [Hosts]//(Isaiah 6:3). Isaiah prophesied many things to individual men as well as to the people. On one occasion, he walked naked through the streets of Jerusalem for three days, prophesying the imminent fall of Jerusalem to the Assyrian King Sennacherib, and reminding the king and the leaders of the people not to hope in assistance from the Egyptians or Ethiopians, because they too would be subjugated to the same Sennacherib, but rather to trust in help from God the Most High. This prophesy, as well as other prophecies, was literally fulfilled. Isaiah's most important prophecies are the ones concerning the Incarnation of God, His conception by the All-holy Virgin, John the Forerunner, and many events in the life of Christ. ! //[Therefore, the Lord Himself shall give you a sign; Behold a virgin shall conceive, and bear a son, and shall call His name Emmanuel// (Isaiah 7:14).// For unto us a child is born, unto us a son is given; and the government shall be upon his shoulder: his name shall be called Wonderful, Counselor, The Mighty God, The Everlasting Father, The Prince of Peace //(Isaiah 9:6)//. The voice of him that cries in the wilderness, Prepare ye the way of the Lord and make straight in the desert a highway for our God (Isaiah 40:3).]// This prophet, because of the purity of his heart and his zealousness toward God, also received the gift of working miracles. Thus, when the besieged Jerusalem suffered from drought, Isaiah prayed to God and water flowed from beneath Mount Zion. This water was called Siloam, which means "sent." Later, the Lord directed the man who was blind from birth to bathe in this water to gain his sight. During the reign of King Manasses, when Isaiah thundered against the pagan customs of the king and the leaders, comparing that generation with Sodom and Gomorrah, the anger of the leaders and the people was aroused against this great prophet. He was captured and led out of Jerusalem, and was sawn in half. Isaiah lived and prophesied about seven hundred years before Christ.
! THE TRANSLATION OF THE RELICS OF SAINT NICHOLAS THE WONDERWORKER OF MYRA IN LYCIA.
In 1087 A.D., during the reign of Emperor Alexius Comnenus and Patriarch Nicholas Grammaticus, the body of this saint was translated from Myra in Lycia to the town of Bari in Italy. This occurred because of the Moslem assault on Lycia. The saint appeared in a dream to an honorable priest in Bari and ordered that his relics be translated to this town. At that time, Bari was Orthodox and under an Orthodox patriarch. During the translation of this saint's relics, many miracles occurred either through touching the relics or from the myrrh [oil] that abundantly flowed from them. Also on this day is commemorated the miracle St. Nicholas wrought on the Serbian King, Stefan of Dečani. This was when St. Nicholas restored sight to the blinded King Stefan.
! THE HOLY MARTYR CHRISTOPHER
Christopher was a great miracle-worker. He is especially venerated in Spain. The people pray to him primarily for protection from contagious diseases and great pestilence. He suffered for Christ and was glorified by Christ in the year 249 A.D.
! HYMN OF PRAISE
! SAINT STEFAN OF DEČ! ANI
! [STEPHAN DECANSKI]
On the Field of Sheep, the blind Stefan slept,
And in a dream he endured misfortune without peace.
His eyes bloody, his body shivering:
Death is surely better than such a life.
At that moment, in a dream a man appeared to him,
In heavenly radiance, in heavenly glory.
"I am Nicholas of Myra in Lycia," said he,
"And you are one of those whom God has chosen.
Look into my right hand, O Stefan:
Behold, your eyes are preserved in it!
You are without eyes; your eyes are with me.
I will give them to you when the Lord wills."
Five years passed and Stefan was in darkness.
He had a strong hope, a strong faith:
"Nicholas will come once more to me;
With God's help, he will help me."
Thus did Stefan ponder in the church,
And with tears he prayed to the beloved saint.
And, while he sat in the chair, he had a dream:
Behold, St. Nicholas came to him again!
The saint held the two eyes of the king in his right palm.
"Behold," said he, "for you, O King, the day has dawned!
In the name of the Lord, Who gives sight to the blind,
Look and cry out: To God be glory!"
The saint touched the blind eyes,
And darkness was drawn from his eyes like a curtain.
! REFLECTION
Every Christian can accept martyrdom for the Faith for himself, in times of persecution as well as in times of peace. Abba Athanasius says: "Be tortured by your conscience, die to sin, mortify your earthly members, and you will be a martyr in accordance with your wishes. The martyrs fought with emperors and princes; you have the king of sins--the devil and the demonic princes. Before, there were idols, pagan temples, and those who offer sacrifice to the idols. And now, they exist as thoughts in the soul. He who is a slave to debauchery worships the idol of Aphrodite. He who becomes angry and enraged worships the idol of Ares. He who is avaricious and ignores the pain and misery of his neighbor worships the idol Hermes. If you refrain from all of this and preserve yourself from passions, you have overcome idols, you have rejected an evil belief and have become a martyr for the true Faith." Therefore, a man need not especially yearn for persecution and martyrdom. Everyone in every age can endure martyrdom for the sake of Christ and His Gospel.
! CONTEMPLATION
Contemplate the descent of God the Holy Spirit upon the apostles:
# How all the men wondered and marveled, hearing the apostles speak in different tongues;
# How some mocked them, saying: ! //They have had too much new wine// (Acts 2:13).
! HOMILY
! on the curse of man who trusts in man
"Thus says the Lord: cursed is the man who trusts in man, who seeks his strength in flesh, whose heart turns away from the Lord" (Jeremiah 17:5).
When man alienates himself from God in his heart he usually trusts in men and in himself, for in whom else can he trust when he has untied his little boat from God's ship? Since he has already loosed his boat from God's ship, nothing else remains for him except to trust in his boat or in the boat of his neighbors. A weak trust, but there is none other for him! A lamentable trust over the abyss of destruction, but there is no other!
But, O heaven and earth, why did man loose his boat from God's ship? What happened to man that he flees from his security? What calculation did he make when he decided it would be better for him alone on the tempestuous waves than in God's house near the hem of His robe! With whom did he make an alliance when he breached his alliance with God? Is it with someone stronger than God? Foolishness, foolishness, foolishness!
//Cursed is the man who trusts in man! // God said this once, and men have repeated this thousands of times. Being disappointed in their trust in men, they have thousands of times cursed those who have trusted in man. God has said only that which men have both experienced too well and confirmed by their experience: Truly, how cursed is the man who trusts in man!
Brethren, that is why we should have trust in God, Who is the stable ship in the tempest and Who will not fail us. Let us have trust only in Him, for all other trust is a devilish delusion. In Thee do we trust, O Lord, our fortress and refuge. Tie us alongside Thee and do not allow us to loosen ourselves if we, by our foolishness and accursedness, attempt to do so.
To Thee be glory and praise forever. Amen.
////
! SAINTS COSMAS AND DAMIAN
Cosmas and Damian were unmercenaries and miracle-workers. They were brothers both in the flesh and in the spirit, born somewhere in Asia Minor of a pagan father and a Christian mother. After their father's death, their mother Theodotia devoted all her time and effort to educating her sons and raising them as true Christians. God helped her, and her sons matured as sweet fruit and luminaries of the world. They were learned in the art of medicine and ministered to the sick without payment, not so much with medicine as by the name of the Lord Jesus Christ. They were called "unmercenary physicians," that is, unpaid physicians, for they healed freely and thus fulfilled the commandment of Christ: //Freely ye have received, freely give// (Matthew 10:8). So careful were they in healing men free of charge that Cosmas became very angry with his brother Damian because he accepted three eggs from a woman, Palladia, and ordered that he not be buried alongside his brother Damian after his death. In fact, St. Damian did not accept these three eggs as a reward for healing the ailing Palladia, but rather because she adjured him in the name of the Most-holy Trinity to accept these three eggs. Nevertheless, after their death in the town of Fereman, they were buried together according to a revelation from God. The holy brothers were great miracle-workers both during their life and after their death. A snake crawled through the mouth and into the stomach of a certain farm laborer during his sleep, and the unfortunate man would have died in the greatest pain had he not, in the last moment, invoked the help of Saints Cosmas and Damian. Thus, the Lord glorified forever the miracle-working of those who glorified Him on earth by their faith, purity and mercy.
! THE HOLY MARTYR HERMENEGILD THE HEIR
Hermenegild was the son of the Gothic King Leovigild who adhered to the Arian heresy. However, Hermenegild did not turn away from Orthodoxy in spite of all the flatteries and threats of his cruel heretical father. His father cast him into prison and, early on Pascha, sent a heretical bishop to administer Communion to him. But the God-pleaser refused to receive Communion at the hands of a heretic, and the heretical bishop informed the king about this. The king became angry and ordered the executioner to behead Hermenegild in the year 586 A.D. Leovigild later repented that he had killed his son; he renounced his heresy and returned to Orthodoxy.
! THE VENERABLE MARTYR JAMES WITH HIS DISCIPLES JAMES AND DIONYSIUS
James was born in the Diocese of Castoria of parents named Martin and Parasceva. Working as a shepherd James became wealthy, and by this incurred the envy of his brother, who maligned him to the Turks as having found some treasure in the ground. James fled to Constantinople where he again became very wealthy. Once, James was the guest of a Turkish Bey. The Turks ate meat and James fasted. Then the Bey said: "Great is your Christian Faith!" And he related how his wife had been mentally ill and how he, after all the physicians and cures had failed, took her to the patriarch for prayers to be read over her. As soon as the patriarch opened the book to read, a heavenly light shone forth in the church. After the completion of the prayer, his wife was made whole. Hearing how the Turk extolled the Christian Faith, James distributed all his goods and went to the Holy Mountain, where he was tonsured a monk in the Monastery of Iveron. He lived a life of asceticism on the Holy Mountain and suffered for the Faith at the hands of the Turks in Jedrene on November 1, 1520 A.D. His miracle-working relics and those of his disciples, James and Dionysius, repose in the Monastery of St. Anastasia in Galakistou near Thessalonica.
! HYMN OF PRAISE
!
! SAINTS COSMAS AND DAMIAN
The Church glorifies the miracle-working physicians,
Shining stars that shine with the Lord,
St. Cosmas and St. Damian,
Two Christians, wondrous giants.
Theodotia was the mother of these sons;
She nourished these giants.
The glorious brothers fulfilled the law,
And by their mercy pleased Christ.
They pleased Christ, the Merciful One,
The greatest Unmercenary Physician.
They received the gift, and became physicians;
They received the gift, but did not sell it.
They gave the gifts of God to the poor,
And in the name of Christ healed them.
Time has not covered God's saints with darkness;
Thus it has always been, and thus it is now.
Nor has it covered the wonderworking physicians;
They shine today as they once did,
And help the infirm and the unfortunate
By mighty and willing prayers
Before Christ's heavenly throne.
Honor and glory to the wondrous physicians!
! REFLECTION
St. Hilarion of Meglin fought a great battle against the Bogomils. At one time, the leaders of the Bogomils met with Hilarion and began to debate with him about faith. The Bogomils taught that God created the spiritual world and that the devil created the material world. To this, Hilarion replied to them that in Holy Scripture it is written: //For God is the King of all the earth//(Psalm 47:7) and also: //The earth is the Lord's and all its fullness// (Psalm 24:1). The Bogomils claimed that the Old Testament is of the devil. To them, the saint replied: "If the Old Testament indeed proceeded from the devil would Christ have said, //Search the Scriptures … and they are they which testify of Me// (John 5:39), and would He have acknowledged as the greatest commandments those about love toward God and one's neighbor which, at one time, were given through Moses?" The Bogomils also claimed that the body of Christ was brought from heaven. To this, St. Hilarion replied to them that had it been so, then the body of Christ would have felt neither hunger nor thirst, nor weariness nor suffering, nor would it have been susceptible to death. The Bogomils then expressed their disapproval of the sign of the Cross which Orthodox Christians use. The saint replied to them: "And what will you do when the sign of the Son of Man, His Cross, appears in the heavens, and when all nations of the earth who do not believe in the Cross will weep?" And he also said to them: "How is it that you say that all evil is from evil material, and meanwhile you do not reverence that Wood by which the whole material world was sanctified?"
! CONTEMPLATION
Contemplate the wondrous power of the apostles' words (Acts 16):
# How Paul and Silas spoke to the assembled women alongside the water at Philippi;
# How the Lord opened the heart of the woman Lydia, and she and her household were baptized.
! HOMILY
! on the call to all Christians to become saints
To the saints which are at Ephesus (Ephesians 1:1).
The Apostle calls the Christians in Ephesus saints. He does not call one or two of them saints, nor one group of them, but all of them. Is this not a wondrous miracle of God for people, not in the wilderness but in a city--and an idolatrous and corrupt city--to become saints? That married men who sire children, who trade and work, become saints! Indeed, such were the first Christians. Their dedication, fidelity and zeal in the Faith as well as their holiness and purity of life, completely justified their being called saints. If in latter times saints have become the exception, in those earlier times the unholy were the exception. Saints were the rule. Therefore, we must not wonder that the Apostle calls all baptized souls in Ephesus "saints" and that he has an even loftier name for all Christians, i.e., "sons," the sons of God (Galatians 4:6). Christ the Lord Himself gave us the right to call ourselves such when He taught us to address God as //Our Father// (Matthew 6:9).
O my brethren, do we not say to God every day: "Holy God?" Do we not call the angels holy? Do we not call the Mother of God holy? And the prophets, apostles, martyrs and the righteous? Do we not call heaven holy and the Kingdom of Heaven holy? Who then is able to enter into the holy Kingdom but the saints? Therefore, if we have hope for salvation, we also have hope for holiness.
O Holy God, Who dwellest in the holy place and resteth among the saints and callest the holy to Thyself and showest mercy to them, help us also that we may become holy--in words, in thoughts and in deeds--to Thy glory and our salvation.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLES OLYMPAS, ERASTUS, QUARTUS, HERODION, SOSIPATER AND TERTIUS
They were all among the Seventy. The latter three are also commemorated elsewhere: Herodion on April 8, Sosipater on April 28, and Tertius on October 30. Saints Olympas and Herodion were followers of the Apostle Peter and when Peter suffered, they also suffered. By the command of Nero, they were beheaded. Erastus had been the steward of the church in Jerusalem, and later became Bishop of Paneas in Palestine. Quartus was Bishop of Beirut. He suffered greatly, but converted many to the Christian Faith. Sosipater was a bishop in Iconium and Tertius was the second bishop in that city. They waged spiritual warfare and, as victors, received heavenly wreaths of glory.
! THE HOLY MARTYR ORESTES
Orestes was from the town of Tyana in Cappadocia. He was a Christian from birth and a physician by profession. He was harshly tortured by a certain wicked eparch Maximus during the reign of Diocletian. When the eparch at first advised him to deny Christ and worship idols, Orestes replied: "If you knew the power of the Crucified One, you would reject idolatrous falsehoods and worship the true God." For this, he was savagely beaten, scraped, pulled apart on the rack, burned with a red-hot iron, and cast into prison to die of starvation. The young Orestes spent seven days without bread or water. On the eighth day, he was again brought before the eparch who threatened him with frightening tortures. Orestes answered: "I am prepared to endure every pain, having the sign of my Lord Jesus Christ inscribed on my heart." The governor condemned him, and the torturers hammered twenty iron nails into his feet and tied him to a horse, dragging him over thorns and rocks until the martyr of God breathed his last. On the place where they discarded Orestes's body, a man bright as the sun appeared, gathered Orestes's relics, and carried them to a hill near the town of Tyana, honorably burying them there. This wonderful saint appeared to St. Dimitri of Rostov after his repose, and showed him all the wounds on his body.
! SAINT NONNUS, BISHOP OF HELIOPOLIS
Nonnus was renowned as a great ascetic in the Tabennisiot monastery in Egypt. Because of this, he was chosen Bishop of the diocese of Edessa in 448 A.D. Later, he was translated to the diocese of Heliopolis, and there converted 30,000 Arabs to the Christian Faith. After the death of Bishop Ibo, St. Nonnus returned to Edessa, where he remained until his repose in 471 A.D. Through his prayers, the infamous sinner Pelagia (who was later glorified for her holiness of life), was converted to the Christian Faith (see October 8).
! HYMN OF PRAISE
!
! THE HOLY MARTYR ORESTES
The young Orestes did not spare his youth,
But boasted of Christ before the judge,
The Living God, One and Holy,
Crucified on the Cross for mankind.
They flogged St. Orestes's back,
As he mocked the lifeless idols;
And they burned wondrous Orestes in the fire,
Which was cooled by the dew of God's Spirit.
They drove nails into his feet,
And covered his whole body with wounds.
Strengthened by the Spirit, Orestes prayed,
And gave thanks to God
That he was made worthy of such sufferings,
That God had adopted him as a son.
O Orestes, the God-pleaser,
Courageous martyr for Christ,
Help us unto the last day--
By your prayers, come to our aid--
That we may honorably end our lives,
And be made worthy of Paradise with you.
! REFLECTION
The all-wondrous ways of God's providence were shown in an exceptional and wondrous event in the Monastery of Dochiariou, in the time of the Blessed Neophytus, nephew of St. Euthymius. When, after Euthymius's repose, Neophytus began to build a new, larger church to St. Nicholas the Wonderworker, his resources ran out and he prayed to God for help, and God helped him in a miraculous manner. A peninsula called Longos or Sika lay near the Monastery of Dochiariou. On this peninsula, Neophytus had a small metochion,//) close to which was a stone statue of a man, bearing the following inscription: "He who strikes me on the head will find much gold." Many had struck the statue on the head, but had found nothing. It happened that Neophytus sent Basil, a novice of the monastery, on an errand. One day this Basil stood by the statue and wondered at the mysterious inscription. Just then the sun came out and cast the statue's shadow toward the west. Basil struck the head of the shadow with a stone, dug there, and found a kettle full of gold coins. He immediately ran to tell Abbot Neophytus. The abbot ordered three honorable monks to go with Basil in the monastery's boat and bring back the gold. These monks set off, loaded the gold into the boat and began the return trip. While they were on the sea, the devil tempted them to take the gold for themselves. Then those three honorable monks, deluded by the devil, bound Basil with a rope, tied a rock around his neck and threw him into the sea. As Basil fell to the bottom of the sea, the Archangels Michael and Gabriel suddenly appeared to him as two resplendent youths, took him and brought him to the church at Dochiariou, placing him before the Royal Doors in the locked church. The next day, when the monks entered the church, they found Basil lying bound before the sanctuary. The abbot questioned him and was told of the miraculous event. Then the three other monks arrived and, seeing Basil alive, were thunderstruck. The abbot punished them severely, took the gold and completed the church. However, he dedicated it to the Holy Archangels Michael and Gabriel, and not to St. Nicholas, as he had earlier planned. That is why Euthymius's old church at Dochiariou is called the Church of St. Nicholas, and the new one is called the Church of the Holy Archangels Michael and Gabriel.
--------------------
//) A small monastic holding, belonging to a particular monastery but located elsewhere. --Trans.
! CONTEMPLATION
Contemplate Paul's wondrous salvation from the snake (Acts 28):
# How Paul gathered sticks and put them on the fire;
# How a venomous viper leaped from the fire and fastened on his hand;
# How he shook the viper off, and no harm came to him.
! HOMILY
! on the only Peace and the Peacemaker
For He is our peace, Who hath made both one (Ephesians 2:14).
Between the Israelites and the pagans there lay a wide abyss that no mortal could bridge, or fill in and level off. The Lord Jesus Christ alone was the one who could do that, and He did it. That which had been estranged, He brought closer and joined. By what? By His Blood. By His sacrifice, He replaced all other sacrifices. By this, He redeemed all of nature and by Himself replaced that which men brought and offered to God (or, to the gods) as sacrifice. One sacrifice is sufficient both for the Israelites and for the pagans: the sacrifice of Christ. Furthermore, the blood of animals separated the Israelites and the pagans--by the places where they were offered, by the divinity to whom they were offered, by the kind of animal that was offered and the manner in which it was offered. Now, Christ's Most-pure Blood has come in place of all that blood, and His Blood unites and makes brothers of the Israelites and the pagans. They became blood brothers, even as all of us faithful are blood-brothers--because of the Blood of Christ, by which we are redeemed from the curse, and by which we are now fed. He destroyed //the middle wall of partition// (Ephesians 2:14) that divided and separated, and He joined the hands and the hearts of the Israelites and the pagans. By what? By His Body. That is, by the living truth, by the truth incarnate in Himself. The shadow of the Law had replaced truth for the Israelites, and fables had replaced truth for the pagans. He removed both of them and revealed the living truth in His Body, and the world saw and rejoiced.
O Lord Jesus Christ, our most blessed Redeemer, unite the hearts of us, Thy faithful.
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT-MARTYR MENAS
Menas was an Egyptian by birth and a soldier by profession. As a true Christian, he was not able to witness the abominable sacrificial offerings to the idols and left the army, the town, the people and everything else, and went to a deserted mountain, for it was easier for him to live among the wild beasts than with pagans. One day Menas clairvoyantly discerned a pagan celebration in the town of Cotyaeus. He descended into the town and openly declared his faith in Christ the Living God. He denounced idolatry and paganism as falsehood and darkness. Pyrrhus, eparch of that town, asked Menas who he was and where he was from. The saint replied: "My fatherland is Egypt, my name is Menas. I was an officer, but witnessing the worship of idols, I renounced your honors. I now come before you all to proclaim my Christ as the true God, that He may proclaim me as His servant in the Heavenly Kingdom." Hearing this, Pyrrhus subjected St. Menas to severe tortures. They flogged him, scraped him with iron claws, burned him with torches, and tortured him by various other means, and finally beheaded him with the sword. They threw his body into a fire so that Christians would not be able to retrieve it, but Christians recovered several parts of his body from the fire nevertheless. They reverently buried those remains, which were later transferred to Alexandria and buried there, where a church was built over them. St. Menas suffered in about the year 304 A.D. and went to the Kingdom of Christ. He was and remains a great miracle-worker, both on earth and in heaven. Whoever glorifies St. Menas and invokes his help with faith, receives his help. The saint has often appeared as a warrior on horseback, arriving to help the faithful or punish the unfaithful.
! THE HOLY MARTYR STEFAN OF DEČANI, KING OF SERBIA
Stefan was the son of King Milutin and father of Tsar Dušan. By the command of his ill-informed father, Stefan was blinded, and at the command of his capricious son (Dušan), was strangled in his old age. When he was blinded, St. Nicholas appeared to him in the church at Ovče Polje (Field of the Sheep) and showed him his eyes saying: "Stefan, be not afraid: behold your eyes in my palm. In due time, I will return them to you." Stefan spent five years in Constantinople as a prisoner in the Monastery of the Pantocrator. By his wisdom and asceticism, his meekness and piety, his patience and benevolence, Stefan not only surpassed all the monks in his monastery, but all monks in Constantinople. When five years had passed, St. Nicholas again appeared to him and said: "I came to fulfill my promise." He then traced the sign of the Cross on the blind king, and Stefan received his sight. In thanksgiving to God, Stefan built the Church of Dečani, one of the most marvelous works of Byzantine artistic beauty, and one of the most famous monuments of Serbian piety. The holy King Stefan, with St. Sava and the holy Prince Lazar, constitute a most glorious trinity of holiness, nobility and self-sacrifice--the gift of the Serbian people. St. Stefan lived his earthly life as a martyr, and died as a martyr in the year 1336 A.D., receiving the wreath of immortal glory from the Almighty God Whom he had faithfully served.
! THE HOLY MARTYRS VICTOR AND STEPHANIDA
Victor was a soldier of Roman birth. He was tortured for Christ during the reign of Emperor Antoninus. At the time of his torture a young woman, Stephanida, declared that she too was a Christian. Victor was beheaded and Stephanida was pulled apart by having her legs bound to the tops of two palm trees.
! THE HOLY MARTYR VINCENT THE DEACON
Vincent was from the diocese of Saragossa in Spain. He was cruelly tortured for the Lord Jesus Christ, then burned on an iron grid. He gave up his soul to God in the year 304 A.D. His body reposes in Rome in the church bearing his name.
! THE VENERABLE THEODORE THE STUDITE
Theodore was the famous abbot of the Studite monastery (the Studium). He suffered greatly for the holy icons, and was a wise organizer of the monastic life, a divinely inspired teacher of Orthodoxy and a wonderful ascetic. He entered into rest in Constantinople, in the year 826 A.D. at the age of sixty-eight.
! SAINT UROŠICA, PRINCE OF SERBIA
Urošica was the son of King Dragutin. He preserved his purity and chastity in marriage. Myrrh flowed from his grave.
! HYMN OF PRAISE
! THE HOLY MARTYR STEFAN OF DEČANI, KING OF SERBIA
Tortured and persecuted, Holy King Stefan of Dečani
Endured pains and persecutions as a true Christian.
And when it seemed he was defeated by all,
He was actually victorious, powerful and unscathed.
He defeated his father by patient endurance,
And Cantacuzene by profound wisdom.
With silence he overcame malicious Simonida,
And with trust in God he overcame King Shishman.
He was even more powerful than his mighty son--
For those who do not sin are always more powerful.
Earthly power always ends without a glimmer,
But there is no end to heavenly power.
King Stefan of Dečani, meek and beloved,
Drew his strength from heavenly power:
His power and glory were from Christ,
And from Christ was his life, throne and sovereignty.
Stefan understood this, and this he confessed;
That is why he defeated all adversaries in the end.
Pray for us, O wondrous king,
That God may grant us salvation and mercy.
! REFLECTION
If ever there was a holy king who sat on the throne of an earthly kingdom, that was the holy King Stefan of Dečani. The Greeks, who otherwise considered the Slavs barbarians, were amazed at the beauty of St. Stefan's soul as one of the rarest wonders of the time. When the Emperor Cantacuzene sent the abbot of the Monastery of the Pantocrator to Milutin on some official business, King Milutin inquired about his son Stefan. "O King, are you asking me about the second Job?" the abbot replied. "Be assured that his poverty stands above your royal greatness." For his part, the Byzantine emperor acted very cruelly toward the blind Stefan: he confined him to one area of the court and forbade everyone access to him. After that, he sent him to the Monastery of the Pantocrator, hoping that the monastery would force him into strict monastic asceticism, and that he would become weak and perish there. But God preserved the Blessed Stefan and he endured the ascetic labor of fasting and prayer like the best of monks. They began to speak of his wisdom throughout all of Constantinople, and the emperor began to respect him and often sought advice from him. For example, St. Stefan contributed to the defeat of the infamous heresy of Barlaam, against which St. Gregory of Palamas fought.//) Barlaam then resided in Constantinople, and by skillful intrigue, had won over many high-ranking clerics and civil officials to his way of thinking. In perplexity, the emperor summoned Stefan and asked him what he should do. The wise Stefan replied with the words of the Psalmist: //Do not I hate them, O Lord, that hate Thee?// (Psalm 139:21), and also said: "Dangerous men must be banished from society." Heeding this, Emperor Cantacuzene drove Barlaam from the capital with dishonor.
--------------------
//) Refer to the Synaxarion, the Second Sunday in Lent.
! CONTEMPLATION
Contemplate the wonderful healing power of the Apostle Paul (Acts 28):
# How Paul prayed and laid his hand on Publius's father and healed him of dysentery;
# How he also healed many others in that place in the same manner.
! HOMILY
! on the Creator of the new man
… for to make in himself of twain one new man, so making peace (Ephesians 2:15).
When He came to earth, the Lord, the Lover of Mankind, came to all men, not just to some. The Jews awaited a messiah; He came as the Messiah. The pagans awaited a redeemer; He came as the Redeemer. He came with equal love for both the Jews and the pagans. There was no other group on earth--only the Jews and the pagans. The Jews were the only ones in the world who believed in one God, whereas the pagans worshiped idols. But the Jews had obscured their faith by their transgressions and, therefore, knew nothing. Thus, both the Jews and the pagans had become equal in their ignorance and equal in the curse of sin with which Adam had burdened the benighted earth. As of old Adam did not belong to the Jews exclusively, but also to the pagans, for they both descended from him, so Christ, the new Adam, did not belong to one or the other, but to both, for He saved both. The Lord Jesus could not side with the Jewish kingdom of empty legal formalism, or the Hellenic kingdom (including paganism in general) of naturalistic fables and demonic divinations and sorcery. Rather, He healed them both. He took both of these sick ones and he created the new man. And this is the Church of God. Thus, the Lord annulled and cast out both Judaism and Hellenism, and created His Holy Church.
O Lord Jesus, All-good and All-wise, everything Thou hast done is good and wise beyond words.
To Thee be glory and praise forever. Amen.
! ST. JOHN THE MERCIFUL, PATRIARCH OF ALEXANDRIA
John was born on the island of Cyprus. His father was Prince Epiphanius. John was raised as a true Christian from childhood. At the insistence of his parents, he married and had children. However, by God's providence, his wife and children passed from this world into the next. Renowned for his compassion and piety, John was chosen as Patriarch of Alexandria in the time of Emperor Heraclius. He governed the Church of Alexandria for ten years as a true shepherd, safeguarding it from pagans and heretics. He was a model of meekness, charity and love for his fellow men. He said: "If you desire nobility, seek it not in blood but in virtues, for this is true nobility." All the saints have been distinguished by mercifulness, but St. John was completely dedicated to this wonderful virtue. Once, while celebrating the Liturgy, the patriarch remembered the words of Christ, //Therefore if thou bring thy gift to the altar, and there rememberest that thy brother hath aught against thee, leave there thy gift before the altar, and go thy way; first be reconciled to thy brother, and then come and offer thy gift// (Matthew 5:23-24), and he remembered that one of the clergy in that church had a grievance against him. He quickly left the Holy Gifts, approached that priest, fell before his feet and begged for forgiveness. And only when he had made peace with this man did he return to the table of oblation. Another time, as he was on his way to the Church of Saints Cyrus and John, it happened that he met a needy and unfortunate widow who spoke to him at length about her misfortune. The patriarch's escorts became bored by the woman's lengthy complaint, and urged the bishop to hurry to the church for the service, intimating that he could hear the woman's story afterward. John said to them: "And how will God listen to me, if I do not listen to her?" He would not leave until he heard the widow's complaint to the end.
When the Persians attacked Egypt, Patriarch John boarded a boat to escape from danger. Along the way he fell ill and, when he arrived in Cyprus, he reposed at his birthplace, in the year 620 A.D. After he entered the Immortal Kingdom of his Lord, his miracle-working relics were translated to Constantinople, then to Budapest, and finally to Presburg.
! THE HOLY PROPHET AHIJAH OF SHILOH
Ahijah prophesied a thousand years before Christ. He prophesied to Jeroboam, Solomon's servant, that he would reign over ten of the tribes of Israel (I Kings 11:29-31).
! THE VENERABLE NILUS OF SINAI
Nilus was at first a prefect in the capital city, Constantinople. As a married man, he had a son and a daughter. Seeing the sinful life of the capital, he agreed with his wife to withdraw from the world. This they did. His wife and daughter went to a convent in Egypt. Nilus and his son Theodulus went to Mount Sinai. Nilus lived a life of asceticism on Mount Sinai for a full sixty years. He wrote wonderful books on the spiritual life. He entered peacefully into rest in about the year 450 A.D., in the eightieth year of his earthly existence, and took up his habitation in the blessed heavenly life. These holy words are his: "Physical passions have their origin in physical desires, and against them abstinence is necessary; but spiritual passions are born of spiritual desires, and against them, prayer is necessary."
! THE VENERABLE NILUS THE MYRRH-GUSHER
Nilus was born in the Morea. As a hieromonk he went with his uncle to the Holy Mountain and there lived a life of asceticism as a recluse in a deserted place called "the Holy Rocks." When he entered into rest, myrrh flowed from his body in such abundance that it ran down from the top of the mountain into the sea. This miracle-working myrrh attracted ailing men from all over. A disciple of St. Nilus was so distracted by the many visitors that he complained in prayer to St. Nilus, and the flow of myrrh ceased at once. St. Nilus lived a life of asceticism in the fullest sense, like the saints of old. He entered into rest in the seventeenth century.
! HYMN OF PRAISE
!
! THE VENERABLE NILUS OF SINAI
St. Nilus of Sinai spoke to the monks:
"Repeat the name of Jesus in your heart!
Exercise your heart in innocence,
And your body in purity and abstinence.
If you are insulted, endure the insult,
And thus the insulter will feel the injury.
Weep for the sinner, even when he advances:
He is on an eternal journey to meet justice.
If you endure misfortunes, they will serve you--
Misfortunes are thorns on which roses grow.
Whenever you pray to God, ask not for pleasant things,
But for that which brings benefit to the soul!
Fear not death, but await the death of the body;
Feel shame before the angels, before you feel the shame of men.
Avoid temptation and do not seek it,
But when it comes of its own accord, show yourself a hero.
He who often partakes of Communion with the gracious Christ
Is a temple in which Christ abides.
Speak little and rarely with men,
But speak more and more often with God."
Thus, did Nilus of Sinai teach the monks,
And his deeds bore witness to his words.
! REFLECTION
Their time of death and the necessity of preparation for it was revealed beforehand to many holy men and women. This is a great gift from heaven, but as we do not expect this gift, we unworthy ones need daily repentance to prepare for our departure. One can flee from men, but never from God. When St. John the Merciful fled Egypt from the Persians, a gloriously radiant man with a golden sceptre in his hand appeared to him on the boat and said: "The King of kings is calling you to Himself." John understood these words and began to prepare for his repose, which came soon. The holy King Stefan of Dečani's beloved St. Nicholas often appeared to him, and did so before Stefan's repose, saying: "Stefan, prepare for your departure, for soon you will appear before the Lord." Both saints were very similar in their compassion. Despite the immeasurable wealth that St. John had at his disposal as Patriarch of Alexandria, he personally had only one-third of a dinar at his repose, and he willed even that to the poor. When St. Stefan of Dečani was in the Monastery of the Pantocrator in Constantinople, a generous Serbian nobleman secretly sent him a substantial sum of money. "I give thanks to the good gentleman for his love," replied Stefan to the bearer, "but he would give me greater joy if he would distribute this money, intended for me, to the poor."
! CONTEMPLATION
Contemplate the courage of the Apostle Paul (Acts 28):
# How he sat in chains for two years in Rome;
# How he freely preached the Gospel to the pagans and Jews, not fearing anyone;
# How neither chains nor prison nor death could turn him away from preaching the Gospel.
! HOMILY
! on how strangers become members of the household
Now therefore ye are no more strangers and foreigners, but fellow-citizens with the saints, and of the household of God (Ephesians 2:19).
Before the coming of the Lord Jesus Christ, it seemed that only the Jews were close to God and that the pagans were farther away from God. But as a matter of fact, the Jews and the pagans were equally estranged from God, and from true reverence for Him. Then He came, Christ the Savior, //and preached peace to you which were afar off, and to them that were nigh//(Ephesians 2:17) and by that, brought both Jews and pagans //by one Spirit unto the Father// (Ephesians 2:18). In the new creation, or the new man, or the Church of God, the Spirit is one; and everyone who enters the Church of God receives this Spirit, so that no matter how much the Church increases in members, there always remains the one Spirit of God; and no matter how many nations or tribes or races enter the Church of God, the Spirit does not change, but remains forever and ever, one and the same Spirit. That is why pagans are not //strangers and foreigners// in the Church, but are //fellow-citizens with the saints, and of the household of God,// as are all other members of the Church. For the Church is founded on holiness, and her cornerstone is the Saint above saints, and according to the plan, all of her members should be holy. All those who lived before Christ but expected Christ and hoped in Him, as well as those who lived after Christ, and who recognized Christ as Lord, Son of God, Savior, Redeemer, Resurrector and Judge, are also called saints. Sin separates and alienates from God, but through the Lord Jesus Christ, division and alienation have vanished, and all the faithful--whether former Jews or pagans--became members of the household of God, by and through the Lord Jesus Christ.
O my brethren, the Lord Jesus Christ gave us something greater and more precious than this life: He gave us peace and friendship with God, and this is greater and more precious than life in alienation from God.
O Lord Jesus Christ, Creator of Peace and Giver of Peace, sustain us to the end in peace with God.
To Thee be glory and praise forever. Amen.
! SAINT JOHN CHRYSOSTOM, PATRIARCH OF CONSTANTINOPLE
John was born in Antioch in the year 354 A.D. His father, Secundus, was an imperial commander and his mother's name was Anthusa. Studying Greek philosophy, John became disgusted with Hellenic paganism and adopted the Christian Faith as the one and all-embracing truth. Meletius, Patriarch of Antioch, baptized John, and his parents also subsequently received baptism. Following his parents' repose, John was tonsured a monk and lived a strict life of asceticism. He then wrote a book, //On the Priesthood,// after which the Holy Apostles John and Peter appeared to him, and prophesied that he would have a life of great service, great grace and great suffering. When he was to be ordained a priest, an angel of God appeared simultaneously to John and to Patriarch Flavian (Meletius's successor). While the patriarch was ordaining John, a shining white dove was seen hovering over John's head. Glorified for his wisdom, asceticism and power of words, John was chosen as Patriarch of Constantinople at the behest of Emperor Arcadius. As patriarch, he governed the Church for six years with unequalled zeal and wisdom. He sent missionaries to the pagan Celts and Scythians and eradicated simony in the Church, deposing many bishops guilty of this vice. He extended the charitable works of the Church and wrote a special order of the Divine Liturgy. He shamed the heretics, denounced Empress Eudoxia, interpreted Holy Scripture with his golden mind and tongue, and bequeathed the Church many precious books of his homilies. The people glorified him, the envious loathed him, and the Empress, on two occasions, sent him into exile. John spent three years in exile, and reposed as an exile on the Feast of the Elevation of the Precious and Life-giving Cross, September 14, 407 A.D., in the town of Comana in Georgia. Before his repose, the Holy Apostles John and Peter appeared to him again, as did the Holy Martyr Basiliscus (May 22) in whose church he received Communion for the last time. His last words were, "Glory be to God for all things," and with that, the soul of the golden-mouthed patriarch was taken into Paradise. Chrysostom's head reposes in the Church of the Dormition in Moscow, and his body reposes in the Vatican in Rome.
! THE HOLY MARTYRS ANTONINUS, NICEPHORUS, GERMANUS AND MANETHA
The first three were watching the pagans worshiping idols with shouts and dancing at one of their feasts. Fearlessly, they went before the crowd and preached the One God in Trinity. Firmilian--the eparch of Palestinian Caesarea, where this occurred--was so enraged at the action of these three Christians that he commanded their immediate beheading. Manetha was a Christian maiden who followed the martyrs as they were being led to the place of execution. She too was arrested, and after cruel tortures, was burned to death. They all suffered in the year 308 A.D. and entered into the eternal joy of the Eternal God.
! THE VENERABLE MARTYR DAMASCENE
Damascene was born in Galata in Constantinople and at first was called Diamantis. In his youth he lived immorally, and even became a Moslem. Then bitter repentance ensued, and he went to the Holy Mountain, where he lived a life of strict asceticism for twelve years, as a monk in the Lavra of St. Athanasius. But, desiring martyrdom to expiate his sins, Damascene went to Constantinople and visited the mosques, making the sign of the Cross and shouting that the Turks' faith was false and that Jesus Christ is God and Lord. He was beheaded before the gate of the Phanar//) on November 13, 1681 A.D. His relics repose on Halki, in the Monastery of the Holy Trinity.
--------------------
//) Phanar: a city district, where the Ecumenical Patriarchate is now situated. --Trans.
! HYMN OF PRAISE
!
! SAINT JOHN CHRYSOSTOM
The Church glorifies St. John
The "Golden-mouth," blessed by God,
Christ's great soldier,
Who is the adornment and boast of the Church:
Profound of heart and mind,
And a golden-stringed harp of words.
He plumbed the depths of mysteries,
And found the pearl that shines as the stars.
Exalted in mind to heaven's height,
He expounded divine truth;
And his vision is true throughout history.
He gave all to the Son of God.
He revealed to us the horrors of sin,
And the virtues that adorn a man;
He showed us the most precious mysteries,
And all the sweet richness of Paradise.
Evangelist, interpreter of the Gospel
And bearer of spiritual joy,
Zealous for Christ like an apostle,
He would accept no injustice.
He was tormented like any martyr,
And received his torment as a pledge of salvation.
This servant of Christ showed himself true;
Therefore, the Church glorifies Chrysostom.
! REFLECTION
Punishment and reward! Both of these are in the hands of God. But, as this earthly life is only a shadow of the true life in the heavens, so punishment and reward here on earth are only a shadow of true punishment and reward in eternity. The principle persecutors of the saint of God Chrysostom were Patriarch Theophilus of Alexandria and Empress Eudoxia. After Chrysostom's martyric death, bitter punishment befell them both. Theophilus went mad, and Eudoxia was banished from the imperial court by Emperor Arcadius. Eudoxia soon became ill with an incurable disease--wounds opened up all over her body, and worms came out of her wounds. Such was the stench that she gave off, that it was not easy for a person on the street to pass by her house. Physicians used all the most powerful perfumes and incense if only to overcome the stench from the wicked empress, but had little success. The empress finally died in corruption and agony. Even after death, the hand of God lay heavy on her. The coffin containing her body shook day and night for a full thirty-four years until Emperor Theodosius translated the relics of St. John Chrysostom to Constantinople. But what happened to Chrysostom after his repose? Reward--such reward as only God can give. Adeltius, the Arabian bishop who received the exiled Chrysostom into his home in Cucusus, prayed to God after Chrysostom's repose that He reveal to him where John's soul was to be found. Adeltius then had a vision while at prayer. It was as though he were out of himself, and was led through the heavens by a radiant youth who showed him the hierarchs, pastors and teachers of the Church in order, calling each of them by name--but he did not see John. Then that angel of God led him to the passage out of Paradise, and Adeltius was downcast. When the angel asked him why he was sad, Adeltius replied that he was sorry that he had not seen his beloved teacher, John Chrysostom. The angel replied: "No man who is still in the flesh can see him, for he is at God's throne with the Cherubim and Seraphim."
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 1):
# How, in the beginning, God created the heavens and the earth;
# How the earth was without form and void;
# How the Spirit of God moved upon the face of the waters.
! HOMILY
! on the foundation and the cornerstone
And are built upon the foundation of the apostles and prophets, Jesus Christ Himself being the chief corner stone (Ephesians 2:20).
Brethren, the foundation of the apostles and prophets is their life and work: the Old and the New Testaments. Who unites the apostles and the prophets? Christ the Lord. Without Him, the prophets would not understand the apostles, nor would the apostles understand the prophets. Therefore, He is the fulfillment of the prophets and witness of the apostles. Thus, He is the Cornerstone that ties the prophets and the apostles together, as a cornerstone holds the walls together. The Old and New Testaments are united in Him, have their meaning in Him, revolve around Him, were inspired by Him and are upheld by Him, the Lord Jesus Christ. Where would the pagans and Jews meet, and where would they understand one another, if not in Jesus Christ the Lord? Nowhere, except in Him. In Him and through Him they are united in one new man, in one immortal body, in One, Holy and Catholic Church. Only through the Lord Jesus Christ are the body and the soul united in a loftier and holier friendship. The bonds between the soul and body were at enmity until His coming in the flesh, and that enmity led to the destruction of the soul. He reconciled and sanctified them both. Thus, He became the Cornerstone of every immortal and God-pleasing edifice--be that edifice an individual man or family or nation or the entire race of man--either in the present, in the past, or in the future; of the Old Covenant or the New Covenant. He is the Chief Cornerstone in every building, as He is the Head of the Body, God's Church.
O Lord Jesus Christ, our Cornerstone of salvation, have mercy on us and save us.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE PHILIP
Philip was born in Bethsaida beside the Sea of Galilee, as were Peter and Andrew. Instructed in Holy Scripture from his youth, Philip immediately responded to the call of the Lord Jesus and followed Him (John 1:43). After the descent of the Holy Spirit, Philip zealously preached the Gospel throughout many regions in Asia and Greece. In Greece, the Jews wanted to kill him, but the Lord saved him by His mighty miracles. Thus, a Jewish high priest that rushed at Philip to beat him was suddenly blinded and turned completely black. Then there was a great earthquake, and the earth opened up and swallowed Philip's wicked persecutor. Many other miracles were manifested, especially the healing of the sick, by which many pagans believed in Christ. In the Phrygian town of Hierapolis, St. Philip found himself in common evangelical work with his sister Mariamna, St. John the Theologian, and the Apostle Bartholomew. In this town there was a dangerous snake that the pagans diligently fed and worshiped as a god. God's apostle killed the snake through prayer as though with a spear, but he also incurred the wrath of the unenlightened people. The wicked pagans seized Philip and crucified him upside-down on a tree, and then crucified Bartholomew as well. At that, the earth opened up and swallowed the judge and many other pagans with him. In great fear, the people rushed to rescue the crucified apostles, but only Bartholomew was still alive; Philip had already breathed his last. Bartholomew ordained Stachys as bishop for those whom he and Philip had baptized. Stachys had been blind for forty years, and Bartholomew and Philip had healed and baptized him. The relics of St. Philip were later translated to Rome. This wonderful apostle suffered in the year 86 A.D. in the time of Emperor Dometian.
! SAINT GREGORY PALAMAS, ARCHBISHOP OF THESSALONICA
Gregory's father was an eminent official at the court of Emperor Andronicus II Palaeologus. The gifted Gregory, completing his secular studies, did not want to enter the service of the imperial court, but withdrew to the Holy Mountain and was tonsured a monk. He lived a life of asceticism in the Monastery of Vatopedi and the Great Lavra. He led the struggle against the heretic Barlaam and finally defeated him. He was consecrated as Metropolitan of Thessalonica in the year 1347 A.D. He is glorified as an ascetic, a theologian, a hierarch and a miracle-worker. The Most-holy Theotokos, St. John the Theologian, St. Demetrius, St. Anthony the Great, St. John Chrysostom and angels of God appeared to him at different times. He governed the Church in Thessalonica for thirteen years, of which he spent one year in slavery under the Saracens in Asia. He entered peacefully into rest in the year 1360 A.D, and took up his habitation in the Kingdom of Christ. His relics repose in Thessalonica, where a beautiful church is dedicated to him.
! SAINT JUSTINIAN, EMPEROR OF BYZANTIUM
Justinian was a Slav by birth, probably a Serb from the region of Skoplje. His Slavic name was Upravda, meaning "truth, justice." He succeeded to the throne of his uncle Justin in 527 A.D. The greatness of this emperor is inseparably bound to his profound faith in Orthodoxy; he believed, and lived according to his faith. During Great Lent, he neither ate bread nor drank wine but ate only vegetables and drank water, and that, just every other day. He waged war against the barbarians of the Danube because they castrated their captives. This reveals his elevated feeling of love for his fellow man. Justinian was fortunate and successful both in wars and in his works. He built many great and beautiful churches, the most beautiful of which was Hagia Sophia [the Church of the Divine Wisdom] in Constantinople. He collected [and revised] and published the Laws of Rome//) and also personally issued many strict laws against immorality and licentiousness. He composed the Church hymn "Only-begotten Son and Word of God," which has been sung during the Divine Liturgy since the year 536 A.D. He convened the Fifth Ecumenical Council (553). He died peacefully at the age of eighty, and took up his abode in the Kingdom of the Heavenly King.
--------------------
//) The entirely reworked Roman Code became known as Justinian's Code. --Trans.
! HYMN OF PRAISE
! SAINT JUSTINIAN, EMPEROR OF BYZANTIUM
Justinian, great and glorious,
Knight of the Cross and Orthodox emperor,
Raised a church to the Wisdom of God,
A church to endure to the threshold of eternity:
Another sun to shine on earth,
To warm the generations;
A church in which to worship the Incarnate Word,
And in which to come to know the beauty of Christ,
And the measureless height of the Kingdom of God,
And as in height, measureless depth,
And as in depth, measureless width,
And as in width, measureless length.
Like the sun on a summer's day,
Shone the crown of Emperor Justinian--
Shone the crown of the servant of God--
In his wisdom, the wisest,
In his might, the most powerful,
And in his faith, the most faithful.
O great Orthodox Emperor,
Your churches never grow old,
Your faith still shines upon the world
With the brilliance of the Orthodox Christ.
O holy Emperor, pray to Christ
That this Faith withstand time.
! REFLECTION
St. Gregory Palamas learned much through heavenly revelations. After he had spent three years in stillness in a cell of the Great Lavra, it was necessary for him to go out among men and benefit them with his accumulated knowledge and experience. God revealed this necessity to him through an extraordinary vision: One day, as though in a light sleep, Gregory saw himself holding a vessel in his hand full to overflowing with milk. Gradually, the milk turned into wine which likewise spilled over the rim, and drenched his hands and garments. Then a radiant youth appeared and said: "Why would you not give others of this wonderful drink that you are wasting so carelessly, or are you not aware that this is the gift of God's grace?" To this Gregory replied: "But if there is no one in our time who feels the need for such a drink, to whom shall I give it?" Then the youth said: "Whether there are some or whether there are none thirsty for such a drink, you are obligated to fulfill your debt and not neglect the gift of God." Gregory interpreted the milk as the common knowledge (of the masses) of moral life and conduct, and the wine as dogmatic teaching.
The second time Gregory secluded himself in a monastery he was writing his //Principles of Orthodoxy//. On the eve of the Feast of St. Anthony the Great, the monks summoned him to the all-night vigil service, but he remained at his work in the cell while all the brethren went to church. St. Anthony suddenly appeared to him and said: "Perfect stillness is good, but sometimes it is necessary to be with the brethren." Convinced by this revelation, Gregory immediately went into church to the joy of all the monks.
! CONTEMPLATION
Contemplate the wondrous creation of light (Genesis 1):
# How there was darkness everywhere over the formless earth;
# How //God said, Let there be light: and there was light;//
# How God separated the light from the darkness, and there was day and there was night.
! HOMILY
! on Paul, the prisoner
… I, Paul, the prisoner of Jesus Christ for you Gentiles (Ephesians 3:1).
Brethren, this apostle of Christ calls himself the "prisoner of Christ." How is it that an apostle can be a prisoner? Is not a prisoner bound? Yes, and the Apostle is bound--bound by love to the Lord Jesus so strongly that he feels that no comparable bond exists on earth. The Apostle is bound in his mind to the Lord Jesus so strongly that he cannot think of anything except Jesus Christ the Lord. The Apostle is so firmly bound by his will to the Lord Jesus that, in essence, he does not have a will of his own but has submitted his will completely to the Lord Jesus. And so, he loves that which Christ loves, thinks that which Christ thinks, and does that which Christ wills. Is this not imprisonment? O blessed imprisonment, which is not unto shame but glory, and is not unto destruction but salvation! Thus, Christ is the complete Lord of the Apostle's life, both outwardly and inwardly. For outwardly and inwardly, Christ permits him to be tempted; outwardly and inwardly, He reveals to him the wonders of His providence; outwardly and inwardly, He guides him to perfect good for the sake of his salvation, and for the sake of the salvation of many others.
Brethren, let us also commit ourselves to the Lord Jesus Christ as did His Apostle, and then we will be in the most secure hands and on the most secure path.
O Lord Jesus Christ, great and wonderful Lord, bind us to Thee, imprison us in Thee forever and ever in both worlds.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS GURIAS, SAMONAS AND ABIBUS
Gurias and Samonas were prominent citizens of Edessa. During one of the persecutions of Christians, they hid outside the city and lived in fasting and prayer, encouraging true believers who came to them for counsel. However, they were captured and brought before the judge, who threatened them with death if they did not submit to the imperial decree demanding idol worship. These holy martyrs of Christ answered him: "If we submit to the imperial decree, we will perish, even if you don't kill us." After cruel torture, they were thrown into prison, where they remained from August 1 to November 10, enduring hunger, darkness and pain. They were then led out and again tortured, but since they remained unwavering in the Christian Faith, they were condemned to death and beheaded in the year 322 A.D., during the reign of the wicked Emperor Licinius. Later Abibus, a deacon in Edessa, suffered tortures for Christ his Lord and gave his spirit to God while in the flames. His mother took his body, miraculously intact, from the fire and buried it in a grave with the relics of St. Gurias and St. Samonas. When the persecution ceased, Christians built a church in honor of the three martyrs, Gurias, Samonas and Abibus, and placed their miracle-working relics in a common reliquary. Of the numerous miracles of these wonderful saints of God, the following is especially outstanding: A widow in Edessa had a young daughter who was to marry a Gothic soldier serving in the Greek army. As the mother feared for her daughter's safety if she were to live far away, the Goth swore on the grave of the holy three martyrs that he would do no evil to the maiden, but would take her as his lawful wife, as he had already sworn that he was not already married. In reality, he did have a wife, and when he took the young maiden to his country he kept her, not as his wife but as a slave, until his lawful wife died. He then agreed with his kinsmen to bury his living slave with his dead wife. The girl tearfully prayed to the three holy martyrs to save her, and they appeared to her in the grave, and took her in an instant from the land of the Goths to Edessa, to their church. The following day when the church was opened, they found the young maiden by the tomb of the saints of God, and learned of her miraculous deliverance.
! THE HOLY MARTYRS ELPIDIUS, MARCELLUS AND EUSTOCHIUS
They suffered for Christ at the time of Julian the Apostate. Elpidius was a senator. Witnessing the torture and miracles of Elpidius, six thousand pagans came to believe in Christ the Lord.
! THE FEAST OF THE ICON OF THE HOLY THEOTOKOS OF KUPYATICH
This icon first appeared to a maiden named Anna in the village of Kupyatich, in the province of Minsk, in the year 1182 A.D. Tending her flock, Anna saw a light in the forest. When she approached this light she beheld a medium-size cross on a tree, bearing the image of the Most-holy Theotokos. Anna brought this cross home, then returned to her flock. However, to her great amazement, she saw the same cross on the tree in the same place. She took it, placed it in her bosom and brought it home. When she tried to show her father the cross, she reached into her bosom, but the cross was not there. She related everything to her father and went out with him, saw the cross in the forest, and took it home. The next day, the cross was not in the house. They alerted the whole village, and all the villagers went and beheld the cross and venerated it. The people soon built a church there, and numerous miracles were manifested by this cross bearing the image of the Theotokos. This icon is now to be found in the Church of Holy Wisdom in Kiev.
! HYMN OF PRAISE
!
! TO THE MOST-HOLY THEOTOKOS
O Most-holy Mother of God, Bride of God,
Thou wast the Bodily Throne of Christ God,
Thou didst bear the King of Glory in thy body,
Thou gavest birth to Him Who gavest life to a dead world.
By His Blood, His holy Blood, He redeemed the world,
Gloriously glorifying Himself and thee, O Virgin.
But thy true glory shines in heaven,
Where thou sittest on the right hand of Christ Himself.
And the rays of thy glory descend to earth,
And shine at night on the path of the sojourners.
Glory to thee, Mother of God, throughout the ages,
The first Temple, the wonderful Temple of the glory of Christ!
! REFLECTION
God most often gives victory in battle to the peacemakers. One example of this is the great Emperor Justinian, and another example is the holy King Stefan of Dečani. Following the death of his father King Milutin, Stefan removed the bandage from his eyes and was joyfully proclaimed as king both by the nobles and by the people. However, Constantine--son of Simonida and Stefan's younger brother on his father's side--raised up an army against Stefan. Stefan then wrote him in the following manner: "You have heard what has happened to me (that is, how I received my sight) by God's providence, that works in all for the good. Shown mercy by God, I have inherited the throne of my parents, to rule over the people in the fear of God and with justice, according to the example of my forefathers. Abandon your undertaking, and come, let us meet with one another; assume the second place in the kingdom as the second son, and do not rise up with foreigners against your fatherland. Our spacious land is sufficient for both you and me. I am not Cain, the slayer of his brother, but a friend of Joseph, the lover of his brethren. In the words of the latter, I say to you: //You intended evil against me but God intended it for good //(Genesis 50:20)." Thus wrote the holy king, but Constantine did not take heed and was defeated in battle by Stefan. Defeated also was Vladislav, Dragutin's son, another pretender to the Serbian throne. However, Michael Shishman, the Bulgarian king, fared worst of all. Stefan wrote to him: "Reflect on the meaning of Christian love, calm your wrath, let there be love between us as there was between our parents. Cease to shed Christian blood. Turn your weapons against the enemies of the name of Christ and not on Christians. Remind yourself of how hard it will be to answer for innocent blood. Know this also, that he who takes what belongs to others loses what is his." Michael scoffed at this letter from the holy king and was utterly defeated at Velbuzd in 1330 A.D. "God is with the righteous, not with the mighty."
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 1):
# How God said: //Let there be a firmament in the midst of the waters, and let it divide the waters from the waters;//
# How He divided the waters under the firmament from the waters above the firmament;
# How He called the firmament heaven.
! HOMILY
! on the revelation of the wisdom of God to the heavenly powers
… To the intent that now unto the principalities and powers in heavenly places might be known by the Church the manifold wisdom of God (Ephesians 3:10).
Brethren, are the angels all-knowing? They are not; for if they were all-knowing, they would be gods. God is one, brethren, and the angels are God's beautiful servants. The mystery of the Incarnation was not known to the angels before it took place. And all the other mysteries connected with the mystery of the Incarnation were also unknown to the angels until they saw them revealed in the Church. Therefore the Church is a new revelation, even for the holy angels. The Church is a new revelation of the wisdom and power of God and of His love for man. On the other hand, it is also a new revelation of man's love for God, and man's struggle. Even the angels themselves did not foresee how much God would humble Himself or how much man would be uplifted. This was shown in the Church, and through the Church it was proclaimed to the angels. The Apostle speaks of this to the Ephesians in the words quoted above: //the principalities and powers//--in other words, not even to the chiefs of the angels was everything known beforehand. //The manifold wisdom of God// is that wisdom that was not revealed earlier, and was unknown to the angels and now, in the Church, is shown in countless forms, situations and circumstances.
O my brethren, the two greatest works of God that have been revealed up to now are the creation of the world and the creation of the Church. In both works, brethren, man is the main object of God's love. Let us be thankful with our every breath to the Most-gracious God.
! O Gracious God, O Compassionate God, to Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE MATTHEW THE EVANGELIST
Matthew, son of Alphaeus, was a tax collector when the Lord saw him in Capernaum and said: //Follow Me. And he arose, and followed Him// (Matthew 9:9). After that, Matthew prepared a reception for the Lord in his home and thus provided the occasion for the Lord to express several great truths about His coming to earth. After receiving the Holy Spirit, Matthew preached the Gospel to the Parthians, Medes and Ethiopians. In Ethiopia he appointed his follower Plato as bishop, and withdrew to prayerful solitude on a mountain, where the Lord appeared to him. Matthew baptized the wife and the son of the prince of Ethiopia, at which the prince became greatly enraged and dispatched a guard to bring Matthew to him for trial. The soldiers returned to the prince saying that they had heard Matthew's voice, but could not see him with their eyes. The prince then sent a second guard. When this guard approached the apostle, he shone with a heavenly light so powerful that the soldiers could not look at him; filled with fear, they threw down their weapons and returned. The prince then went himself. Matthew radiated such light that the prince was instantly blinded. However, the holy apostle had a compassionate heart; he prayed to God, and the prince was given back his sight. Unfortunately, he saw only with physical eyes and not spiritual eyes. He arrested Matthew and subjected him to cruel tortures. Twice, a large fire was lighted on his chest, but the power of God preserved him alive and unharmed. Then the apostle prayed to God and gave up his spirit. The prince commanded that the martyr's body be placed in a lead coffin and thrown into the sea. The saint appeared to Bishop Plato and told him where the coffin bearing his body could be found. The bishop retrieved the coffin with Matthew's body from the sea. Witnessing this new miracle, the prince was baptized and received the name Matthew. After that, the prince left all the vanity of the world and became a presbyter and served the Church in a God-pleasing way. When Plato died, the Apostle Matthew appeared to the presbyter Matthew and counseled him to accept the episcopacy. He accepted the bishopric and, for many years, was a good shepherd until the Lord called him to His Immortal Kingdom. St. Matthew the Apostle wrote his Gospel in the Aramaic language. It was soon after translated into Greek and the Greek text has come down to us, while the Aramaic text has been lost. It is said of this evangelist that he never ate meat, but only vegetables and fruit.
! THE VENERABLE SERGIUS OF MALOPINEGA
Sergius was a Russian parish priest who lived a God-pleasing life and served for sixty-two years in the province of Vologda. He peacefully entered into rest in the Lord on November 16, 1585 A.D., at the age of ninety-two.
! HYMN OF PRAISE
!
! THE HOLY APOSTLE MATTHEW THE EVANGELIST
To His Holy Apostle Matthew,
The Lord appeared in the land of the blacks,
Giving great comfort to the tortured warrior,
And great strength to his heroic soul.
The Lord gave him a staff from His hand,
And told Matthew to plant it in front of the church.
He told him that it would grow green with life and blossom with various colors,
And bear sweet fruit for everyone to enjoy.
A spring would flow from beneath its roots--
A spring of cool water for those who thirst.
The face of whomever would partake of it with thanksgiving
Would shine with a wondrous light.
The apostle did as the Lord said,
And the wood budded forth, and was adorned with blossoms,
And living water flowed from its roots,
And the church was filled with a multitude of people.
Whoever was sick, was healed;
Whoever was healthy, became healthier still.
The blacks were blessed, their faces radiant,
And this fierce people became God's vineyard.
O wondrous tree, would that we could have it!
But we do have it, brethren; all of us have it!
It is Christ the Lord, the Lord of Hosts--
He is the Tree of Life; by Him we are saved.
! REFLECTION
Does the Lord's command about ceaseless prayer, //that men ought always to pray//(Luke 18:1), apply only to monks or to all Christians in general? If it applied only to monks, the Apostle Paul would not have written to the Christians in Thessalonica to //pray without ceasing// (I Thessalonians 5:17). The Apostle repeats the Lord's command, word for word, and issues it to all Christians without distinction, whether monks or laymen. St. Gregory Palamas lived a life of asceticism for some time as a young hieromonk in a monastery in Beroea. The elder Job, a well-known ascetic whom everyone respected, lived in that monastery. It happened that, in elder Job's presence, St. Gregory quoted the Apostle's words, asserting that ceaseless prayer is the obligation of every Christian and not just for monks. However, elder Job replied that ceaseless prayer is the obligation of the monk only, and not for every Christian. Gregory, as the younger of the two, yielded and withdrew in silence. When Job returned to his cell and stood at prayer, an angel in great heavenly glory appeared to him and said: "O Elder, do not doubt the truthfulness of Gregory's words; he spoke correctly and you should think likewise and pass it on to others." Thus, both the Apostle and the angel confirmed the commandment that all Christians must pray to God //without ceasing//. Not only //without ceasing// in church, but also //without ceasing// in every place and at all times, and especially in your heart. For if God does not for a moment tire of giving us good things, how can we tire of thanking Him for these good things? When He thinks of us //without ceasing//, why do we not think of Him //without ceasing//?
! CONTEMPLATION
Contemplate the creation of the world (Genesis 1):
# How on the third day God divided the dry land from the water;
# How He commanded the earth to bring forth grass and fruit-bearing trees;
# How this was according to the Word of God, and //it was good//.
! HOMILY
! on Christ's dwelling in the hearts of the faithful
… that Christ may dwell in your hearts by faith; that ye [may be] rooted and grounded in love (Ephesians 3:17).
With faith, Christ comes into the heart, and with Christ comes love. Thus man is rooted and grounded in love. First then, there is faith; then with faith comes Christ's presence in the heart; then with Christ's presence, the presence of love; and with love, all ineffable goodness. In a few words, the Apostle delineates the whole ladder of perfection. The beginning is faith and the end is love; and faith and love are joined in a living, undivided unity by the Living Lord Jesus Christ's presence in the heart. By strengthening faith, we further abolish the distance between ourselves and the Lord Jesus Christ. The stronger one's faith, the closer one is to Christ. Ultimately, one's heart is filled with Christ and cannot be separated from Christ, just as one's lung cannot be separated from the air. Then a man may, with tears of joy, communicate with Christ by the prayer of the heart--"Lord Jesus Christ, have mercy on me a sinner''--and the heart is imperceptibly filled with light and ardent love. In this way, love is united with faith and hope; and when they are united, the boundaries between them are lost, so that man cannot even think of determining of how far faith goes, and where hope and love begin. When the living Christ dwells in a man, then he no longer perceives faith, hope or love in himself, nor does he name them. Instead, he sees only Christ and names only Him. This is just like a fruit-grower in autumn who considers the ripe fruit on the tree, and speaks no more of blossoms and leaves but of fruit, ripe fruit.
O Lord Jesus Christ, supreme height of all our endeavors and the destination of all our travels, draw near to us and save us.
To Thee be glory and praise forever. Amen.
! SAINT GREGORY THE WONDERWORKER, BISHOP OF NEOCAESAREA
This man of God and powerful wonderworker was called a second Moses. Gregory was born of pagan, but eminent and wealthy, parents. He studied Hellenic and Egyptian philosophy and became aware of the meagerness and insufficiency of pagan philosophy. He then turned to Christian teachers, particularly Origen of Alexandria, with whom he studied for several years and from whom he received baptism. Pure in body and soul, he wanted to dedicate himself solely to Christ God, for which reason he withdrew to the wilderness, where he spent much time in rigorous asceticism. His fame spread everywhere. Bishop Phaedimus of Amasea wanted to consecrate him Bishop of Neocaesarea. The clairvoyant Gregory perceived Phaedimus's intention and hid from the bishop's emissaries in the wilderness. Finally, Phaedimus consecrated him in a strange way, and Gregory had to accept the office of bishop. The Most-holy Theotokos and St. John the Theologian appeared to him in a vision, and St. John, at the command of the Theotokos, gave him the Symbol of Faith that is known by Gregory's name. Who can enumerate all the miracles of this second Moses? He had power over evil spirits, and over mountains and waters, healed every pain and infirmity, could become invisible to his persecutors, and clairvoyantly perceived distant events and men's thoughts. He ended his earthly life in the year 270 A.D., in great old age. When he arrived in Neocaesarea as bishop, he found only seventeen Christians in that pagan city. When he departed this life, he left the city Christian, with only seventeen pagans, and received the wreath of glory from his Lord in the Heavenly Kingdom.
! THE VENERABLE NIKON OF RADONEZH
Nikon was a disciple of St. Sergius of Radonezh, and his successor as abbot. When barbarians attacked Russia, Nikon prayed to God to remove this misfortune from the Russian people. Then St. Sergius appeared to him with St. Peter and St. Alexis (the reposed Metropolitans of Moscow) and told him not to grieve, for the assault was by God's permission and was for their good, but would pass and peace would reign once more. Nikon renovated the Monastery of the Holy Trinity and served as an example to many of asceticism. He entered into rest on November 17, 1426 A.D.
! THE VENERABLE GENNADIUS OF VATOPEDI
Gennadius was a monk of Vatopedi on Mount Athos, and had the obedience of being steward. During his time as steward an empty barrel was miraculously filled with oil. This miracle is ascribed to the Most-holy Theotokos, to whom the monastery is dedicated, and especially to her icon, which was nearby.
! HYMN OF PRAISE
! SAINT GREGORY THE WONDERWORKER, BISHOP OF NEOCAESAREA
St. Gregory, holy and glorious,
A shining light of the Church and an Orthodox hero,
Raised himself up to God by a very narrow path:
Through suffering and tears, he attained holiness.
He saved himself, and helped many.
By his exemplary life, words and miracles,
He helped the unbelievers to belief,
And believers to be pure and true to the Faith.
The heavens were open to him,
And he clearly penetrated the secrets of men.
He received mystical teachings from heaven;
As the heart of that teaching, he taught the Holy Trinity--
The Divine Trinity, one in Essence,
And Christ, the life-giving food and drink.
Just as pure dewdrops are full of sunlight,
Pure hearts are the dwelling place of the heavens.
With God's help, holy Gregory
Overcame the moonless night of idolatry,
And baptized pagans by the thousands;
Then he departed in peace, to stand with his King!
Holy Gregory, implore God
That the Orthodox Church overcome the adversary!
! REFLECTION
Let the following examples from the Life of St. Gregory show how God guards and saves the righteous from assaults. While he was still at the school of philosophy in Alexandria, St. Gregory preserved the purity of his soul and his body, as he preserved it to the end of his life. In this, he was an exception among the dissolute youth of that time. This evoked envy and hatred among his companions. In order to debase Gregory, they found a harlot to help them carry out an evil plan. Once, when Gregory was standing in the square with eminent teachers and philosophers, the foul woman approached him and loudly demanded that Gregory pay her the remainder due for impure relations with her. Some of the people present were scandalized, while others were angry at this shameless woman and began to chase her away; but she shouted even louder, demanding money. The innocent Gregory blushed, as any decent man would before such coarse slander, but he displayed neither anger nor hatred, and asked a friend to give her the amount that she sought so she would leave. The friend heeded Gregory, and gave her the money she wanted. But at that moment God let an evil spirit enter the woman and she fell to the ground and began writhing and convulsing, gnashing her teeth, and foaming at the mouth. Seeing this, everyone was terrified. But St. Gregory, innocent as a lamb, prayed to God for her, and the woman was healed and arose. Thus, instead of humiliation, Gregory acquired even greater glory.
Another example: When a bitter persecution of Christians took place, St. Gregory counseled Christians to hide, and he and his deacon hid on a hill. But the imperial soldiers caught sight of them and pursued them. When they were almost upon them, Gregory prayed to God for help, and God rendered them invisible to their pursuers. The soldiers searched for them in vain, and finally left without them.
! CONTEMPLATION
Contemplate the creation of the world (Genesis 1):
# How God created the greater and lesser lights on the fourth day;
# How He created the sun to shine during the day, and the moon and the stars to shine at night.
! HOMILY
! on the breadth, length, depth and height
That ye … may be able to comprehend with all the saints what is the breadth and length and depth and height (Ephesians 3:17-18).
Behold the fruits of faith and love! Behold the royal gifts that Christ the King confers when He dwells in a man's heart: the understanding of salvific mysteries and the understanding of all that is important to a man's life. This understanding is not personal or exceptional, and it is not individual or novel. It is in accordance with the understanding of the saints--for who are the saints, if not those that are rich in faith and love? They were given the understanding of the mysteries of God because of their faith and love. Therefore, test your understanding against their understanding, and if you see a difference, know that it is you who are not in the right. If, however, your understanding is in accordance with theirs, you have attained the measure of their faith and love, and that means that Christ dwells in your heart.
If that is so, then you will comprehend the breadth of God's love, by which He embraced both Jews and pagans in the plan of salvation, and the length of God's providence by which, from time immemorial, He prepared and developed the plan of salvation through the Law, the Prophets and many miracles. You will also comprehend the depth of the humility of Christ, by which He personally descended into hades to save the souls of the righteous, and the height of the glory of Christ, which He received as a man after the completion of His saving work on earth. Breadth and length and depth and height stand like Christ's Cross: embracing all, explaining all, inviting all, showing mercy to all, and exalting all.
O Lord Jesus Christ, our gracious Lord, have mercy on us and save us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR PLATO
Plato was from the town of Ancyra in Galatia. He was a Christian by birth and upbringing. While in his youth, he showed great perfection in every virtue. Plato did not conceal his faith in Christ the Lord, but preached it openly, denouncing idolaters because of their worshiping lifeless objects in place of the Living Creator. For this, he was brought to trial before Governor Agrippinus, and was interrogated and harshly tortured by him. When the governor counseled him to avoid death and save his life by worshiping the idols, Plato said: "There are two deaths, the one temporal and the other eternal; so also are there two lives, one of short duration and the other without end." Then Agrippinus subjected him to even harsher tortures. Among other tortures, red-hot cannon balls were set on the saint's naked body; then they cut strips from his skin. "Torture me more harshly," the martyr cried out to the torturers, "so that your inhumanity and my endurance may be seen more clearly." When the torturer reminded the martyr that his namesake, Plato the philosopher, was a pagan, the martyr replied: "I am not like Plato, nor is Plato like me except in name. I learn and teach the wisdom of Christ, but Plato was a teacher of wisdom that is foolishness to God." After that, Plato was thrown into prison, where he remained for eighteen days without food and water. When the guards were amazed that Plato was able to live in hunger for so long, he told them: "You are satisfied by meat, but I, by holy prayers. Wine gladdens you, but Christ the True Vine gladdens me." Plato was beheaded in about the year 266 A.D. and received his wreath of eternal glory.
! THE HOLY MARTYRS ROMANUS AND BARULAS
St. Romanus was a deacon of the church in Caesarea and zealously preached the Gospel in Antioch. One day, there was an idolatrous feast. The Eparch of Antioch, Asclypiades, went to enter a pagan temple to offer sacrifices, but Romanus stood in the way and said: "You sin, O Governor, when you go to the idols. The idols are not gods--Christ is the only true God." The enraged eparch subjected Romanus to tortures and had him flogged and scraped without mercy. During this, St. Romanus saw a child by the name of Barulas, and said to Asclypiades: "Even this small child has more understanding than you, old man, for he knows the true God and you do not." The eparch questioned Barulas about his faith, and he confessed Christ the Lord as the One True God, contrary to false idolatry. Asclypiades commanded that young Barulas be beheaded, and St. Romanus be strangled in prison. Thus, both of these martyrs inherited the Kingdom of Christ in the year 303 A.D.
! HYMN OF PRAISE
!
! THE HOLY MARTYRS ROMANUS AND BARULAS
Barulas beheld the tortures of St. Romanus,
And Romanus beheld Barulas, sad and tear-stained.
Barulas had a child's innocent soul;
Barulas had a heart purer than a lily.
And the wicked eparch asked Barulas:
"Come, my child, without bribery, speak the truth:
Is Christ better, or our gods?"
"Christ is far better than your idols!"
"Had I known, O Child, I would not have asked you!
How is Christ better? Come, tell me."
"Christ is the Creator of the world,
Idols are fancies of the demon's kingdom."
The governor, now furious, beat the child.
But this was pleasant to the child, and he spoke louder:
"O people, abandon the cursed demons,
Christ alone is God; He enlightens men."
Barulas's mother stood by, and encouraged her son:
"Become worthy, O Son, of the rank of martyrdom."
As a lamb beneath the sword, Barulas bent his neck,
And glorified Christ, himself and his mother.
! REFLECTION
//But whosoever shall smite thee on thy right cheek, turn to him the other also// (Matthew 5:39), commanded the Lord. This is the shortest and clearest teaching on humility. The evil demons fear nothing so much as a humble man fulfilling the Lord's commandments. There was a rich nobleman in Alexandria who had a young daughter into whom an evil spirit had entered, and the daughter had gone insane. Someone told the despairing father that none could heal his daughter except the monks who lived in the wilderness and came to Alexandria from time to time to sell baskets, their handiwork; but none of the monks would enter the rich nobleman's house if he told them why he was inviting them. It would be better for him to purchase baskets from the monks, then ask them to come to his house for payment. Then, when they entered the house, he could implore them to pray to God for all the members of the household, and thus obtain God's help to cure the maiden. The father obeyed and went to the marketplace on a certain day and met one of St. Macarius's disciples as he was selling baskets. The man agreed to buy the baskets, and invited the monk to his home to pay him. When the monk entered the home, the possessed daughter leaped at the monk and vigorously struck him on one cheek with her hand. The monk silently turned the other cheek. The evil spirit cried out in anguish and departed from the girl, and she became completely calm and rational. When the monk returned to the wilderness, he told the elders what had happened and they all glorified God, that He had given so much power to those who fulfill His commandments.
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 1):
# How, on the fifth day, God created the living things that live in the waters and the fowls of the air;
# How God blessed them and said: //Be fruitful and multiply//.
! HOMILY
! on love that surpasses knowledge
… to know the love of Christ, which passeth knowledge (Ephesians 3:19).
The love that surpasses knowledge, that exceeds our understanding, is the love of Christ. No one can have even an inkling of the quality or the greatness of this love until Christ enters into him. Can anyone who has never tasted honey have any idea of its taste? Only when Christ enters into the heart of man by faith, does man know the inexpressible taste of the love of Christ--its sweet and intoxicating fragrance and incomparable comprehensiveness. Just as a man who has Christ in his heart touches the breadth, length, depth and height of the knowledge of divine wisdom, so this man with Christ in his heart also touches the limitless open seas of the divine love of Christ. O my brethren, how feeble are words when one needs to speak of the love of Christ--words are never weaker than in this situation. Indeed, what can one say before such astounding proofs of His love? He created us out of love, He was incarnate out of love, and out of love He accepted mockery and death for our sake. He opened the heavens for us out of love, and He revealed to us the immortal glory prepared for us! Even all this is only a part of the inexhaustible wealth, glory, beauty and life-creating sustenance that is the love of Christ. Oh, if only we too would be made worthy by faith, so that the Lord Jesus would enter our hearts, and that we would taste of His ineffable love!
O Lord Jesus Christ, our Life, our Wisdom and our Love, cleanse us and enter into us.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET OBADIAH
Obadiah was born in the village of Betharam in the region of Shechem. He lived at the court of King Ahab, but when the king turned away from true worship and bowed down to idols, Obadiah did not follow the king, but continued to serve the one, true God. When the evil Queen Jezebel, in her hatred of Elias, raised a persecution against all the prophets of God, Obadiah gathered a hundred of them, hid them in two caves, and fed them to the end of the persecution (I Kings 18:4). A contemporary of the great Prophet Elias, Obadiah revered him greatly and served him in all things, as his follower and disciple. He lived nine hundred years before Christ and entered peacefully into rest.
! THE HOLY MARTYR BARLAAM
Barlaam was born in Antioch. Because of his faith in Christ the Lord, the impious judge tortured him harshly. Finally, the judge decided to mock him by forcing him to offer sacrifice to the idols. For this he took him to the pagan temple and set a burning coal on his palm and incense on the coal. The judge thought that the pain would cause the martyr to shake the coal and incense off his hand before the idols, and thus involuntarily cense them. However, the soldier of Christ heroically held the burning coal on his palm with no thought of casting it before the idols, until his fingers were burned through and fell off and his palm was completely burnt. St. Basil the Great said: "He had a right hand more powerful than fire: although the coal burned his hand, his hand still held the fire as if it were ash." Chrysostom writes: "The angels looked from the heights. The archangels beheld--the scene was majestic, in truth transcending human nature. Behold, who would not wish to see a man who made such an ascetic endeavor, yet did not feel that which is characteristic of men to feel; a man who was himself both the altar of oblation and the sacrifice and the priest?" When his hand burned off, elder Barlaam's whole body fell to the ground dead and his soul went to the eternal rest of our Lord the Savior. This glorious, heroic elder suffered in the year 304 A.D.
! THE VENERABLE BARLAAM AND IOASAPH THE HEIR
Barlaam and Ioasaph were Indian ascetics. Ioasaph was son and heir to King Abenner. By God's providence, elder Barlaam visited him, taught him the Christian Faith and baptized him. After that, the elder withdrew to a mountain to live a life of asceticism, but Ioasaph remained to struggle with many temptations in the world, and by God's grace, to overcome them. Ioasaph finally succeeded in bringing his father to Christ. After he was baptized, King Abenner lived four years in deep repentance--for he had committed grave sins in persecuting Christians--and then ended his earthly existence and went to the better life. The young Ioasaph turned over the rule of the kingdom to his friend Barachias, and entered the wilderness to live a life of asceticism for the sake of Christ. His one desire on earth was to see his spiritual father, elder Barlaam, once again. The merciful God fulfilled his desire, and one day Ioasaph stood before Barlaam's cave and cried out: "Bless me, father!" Elder Barlaam labored in asceticism in the wilderness for seventy years and lived one hundred years in all. St. Ioasaph himself left his kingdom at the age of twenty-five, and went into the wilderness where he lived for thirty-five years. They both had great love for the Lord Jesus, brought many to the true Faith and entered into the eternal joy of their Lord.
! THE HOLY MARTYR HELIODORUS
Heliodorus was from the town of Maggido in Pamphylia and suffered for the Christian Faith in the time of Emperor Aurelian. During his harsh tortures, he heard a voice from heaven: "Be not afraid, I am with thee!" Thrown into a glowing-hot brazen ox, he fervently prayed to God and God saved him. All at once, the glowing ox cooled, and Heliodorus emerged alive. The judge cried out to him that he had performed some magic. To this, the martyr replied: "My magic is Christ!" He was beheaded and went to the Lord.
! HYMN OF PRAISE
! THE VENERABLE BARLAAM AND IOASAPH THE HEIR
When Ioasaph witnessed illness, old age and death,
He was sincerely ashamed of this life.
"Behold, even I can be ill like that,
And old age can make me stooped like this,
And death may come when I least expect it!
In the suffering of others I bitterly suffer.
Is there anyone living who knows the secret of the mystery
And can reveal a better life?"
Then, from the dense mountain, Barlaam descended,
And spoke truth to the young heir.
And the elder told him of the One God--
Of the Father Who reigns with the Spirit and the Son--
Of the creation of the world, and Paradise, most beautiful;
Of the first Adam, in the effulgence of Paradise;
Of cursed sin that brought us death;
Of Christ Who bore the heavy Cross for us;
Of life eternal, better than this;
Of the infinite glory of the Kingdom of Christ.
When Ioasaph had heard the all-wise Barlaam,
A bright day dawned for him, and the darkness of night passed away.
! REFLECTION
A tale of the Elder Barlaam to Ioasaph: A man was fleeing from a terrifying unicorn. Fleeing thus, he fell into a pit, but grabbed hold of a tree. Just when he thought that he was out of danger, he looked down below the tree and saw two mice, one black and one white, gnawing alternately but continuously at the roots of the tree, so as to gnaw through and bring the tree crashing down. Looking down even further, he saw a huge, terrifying serpent which, with its jaws wide open, was waiting to devour the man when the tree would fall down. He then saw four smaller poisonous snakes around his feet. Looking upward, the man saw a little bit of honey on a branch, and forgetting all the danger that surrounded him, extended his hand to reach that little bit of sweetness in the tree. The interpretation is this: The unicorn represents death, which from Adam to now pursues every man to kill him; the pit filled with all sorts of dangers is this world; the tree is the path of our life; the white and black mice are days and nights, that continue one after the other to shorten our life; the huge and horrible snake is hell; the four poisonous snakes are the four elements from which the body of man is composed; the little bit of honey on the branch of the tree is the little sweetness that this life offers to man. Oh, if only men would not be captivated by that inconsequential sweetness, forgetting the terrible dangers that surround them and draw them down to eternal ruin!
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 1):
# How on the sixth day God created the cattle and the small creatures and the wild beasts after their own kind;
# How God saw that it was good.
! HOMILY
! on glorifying God because of Christ the Lord
Unto Him be glory in the Church by Christ Jesus throughout all ages, world without end. Amen. (Ephesians 3:21).
Glory be to God! Glory be to God in the Church! Glory be to Him because of Christ Jesus! Glory be to Him throughout all generations! Glory be to Him unto ages of ages! No one befits being glorified as does God, nor does anyone glorify God as does the Church of God. Christ is the revealer of God: hence, all the glory given to God must go through Christ the Lord. The Church will endure beyond all races and generations to the end of time; the Church is the most pure body of Christ, filled with might, wisdom and miracle-working; and hence the glory of God is proclaimed from the Church: from the holy place to the Holy One, from purity to the Pure One. Glorification from the Church is most pleasing to God also, because there are many souls and voices in the Church, but they are all of one accord and of one voice. Therefore, let no one separate himself from the common glorification of God, and let no one even think that his own glorification of God in isolation and separation is better than the glorification of God in the unity and fullness of all the faithful. It is not true that one member is lost in the multitude, that his voice is not heard before God. Does not the hand do its work only when it is inseparably bound to the body? And so it is with each member of the body, just as it is with each of the faithful. When he prays in and with the Church (and even if he is in the desert he can pray in and with the Church), not separating himself from the Church, he is better heard and seen by God. His soul finds a much repeated echo in the souls of the other faithful, and so he is greatly distinguished and recognized in his prayer within the unity of the body of the Church rather than outside of it.
O Lord Jesus, only from Thee, in Thee, and through Thee can we glorify God.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS ACYNDINUS, PEGASIUS, ANEMPODISTUS, APHTHONIUS, ELPIDEPHORUS AND OTHERS WITH THEM
They were all Christians from Persia and suffered during the reign of King Sapor in the year 355 A.D. The first three were servants at the court of this same king but secretly served Christ their Lord. When they were accused and brought to trial before the king, he asked them where they came from. To this they replied: "Our fatherland and our life is the Most-holy Trinity, one in Essence and undivided, the Father, the Son and the Holy Spirit, One God." The king subjected them to cruel tortures but they endured all heroically, with psalmody and prayer on their lips. During the time of their torture and imprisonment angels of God appeared to them many times, and one time the Lord Christ Himself appeared to them as a man "with a face radiant as the sun." When one of the torturers, Aphthonius, beheld a miracle, when boiling lead did no harm to the martyrs, he believed in Christ and cried out: "Great is the Christian God!" For this, he was immediately beheaded, and many others saw and believed. Then the king ordered that Acyndinus, Pegasius and Anempodistus be sewn into animal skins and cast into the sea. But St. Aphthonius appeared from the other world with three shining angels, and led the holy martyrs to dry land and set them free. Elpidephorus was one of the king's nobles. When he revealed that he was a Christian and denounced the king for his slaughter of innocent Christians, the king condemned him to death and Elpidephorus was beheaded along with seven thousand other Christians. Then those first three martyrs [Acyndinus, Pegasius and Anempodistus] were finally thrown into a burning furnace along with twenty-eight soldiers and the king's mother, since they also believed in Christ--and thus, in the flames, they gave up their righteous souls into the hands of the Lord.
! THE VENERABLE MARCIAN OF CYRUS
Marcian was from the town of Cyrus in Syria. He was distinguished by his noble ancestry as well as by his physical beauty. He left all for the sake of Christ and withdrew into the wilderness of Halkis to live as a hermit. He was a contemporary of Patriarch Flavian of Antioch and the Emperors Constantius and Valens. A heavenly light shone in his cell at night by which he read the Holy Scriptures, and he never had need of any other light. He was a great miracle-worker both during his life and after death. Before his death, he ordered his disciple Eusebius to conceal his body and bury it secretly because of his many admirers. He entered into rest in the Lord in 387 A.D.
! THE HIEROMARTYR VICTORINUS, BISHOP OF PATAV
Many maintain that he was a Slovene by ancestry. Blessed Jerome points him out as a learned and devout man. He knew Greek better than Latin. He wrote the interpretations of several books of the New and Old Testaments. He suffered for the Christian Faith in about the year 303 A.D.
! HYMN OF PRAISE
! THE HOLY MARTYRS ACYNDINUS, PEGASIUS,
ANEMPODISTUS, APHTHONIUS AND ELIPIDEPHORUS
The martyr Acyndinus and with him Pegasius,
Courageous Anempodistus and with him Aphthonius,
And the gentle Elipidephorus, a royal dignitary:
All--sacrificial lambs, snow-white lambs.
They showed themselves servants of the Most-holy Trinity,
And declared Christ to Sapor, face to face.
For them, martyrdom was a celebration.
Christ was dearer to them than youth and health;
Christ was dearer to them than royal delights;
Christ was dearer to them than royal honors.
Whatever the world gave them, they gave away for Christ;
They fell as noble sacrifices for Christ;
They fell in disgrace and rose in radiance;
They fell on earth and rose in Paradise.
For the Church on earth, they shed their blood;
In the heavenly Church they completed the edifice of their souls.
Filled with love for the Christian race,
They now pray to the risen Christ
That He preserve the Church on earth from misfortune,
And lead it to the final victory.
! REFLECTION
How will one who transgresses love toward his parents raise himself toward love for his enemies? Love for one's parents--this is the main and fundamental school of love. Without this school, one can go no further. The Serbian King Dragutin rose up against his father with an army in order to sit on his father's throne. But it so happened that he later broke his leg, and this awakened in him pangs of conscience which did not leave him in peace until his death. Dragutin withdrew from the throne and relinquished his authority to his younger brother Milutin, and began to widely distribute alms, build churches, and perform other good works. In addition to this, he lived a strict life of asceticism in secret. He girded himself with a belt of reeds around his naked body, dressed in coarse sackcloth, and prayed to God at night in a secretly dug grave. This penitent king did all this only that God would forgive him the sin of lack of love toward his parents, and God forgave him. Many holy martyrs joyfully received their executioners who were seeking them, and treated them hospitably in their homes while they themselves prepared for death. To entertain one's mortal enemies--is this not an expression of great love toward one's enemies? When King Sapor harshly tortured Acyndinus, Pegasius and others with them, he suddenly went mad, became dumb and unable to speak, and began to claw his face with great fury. Seeing his tormentor in such despair, St. Acyndinus wept and prayed to God for the king and said, "In the name of Jesus Christ the Lord, speak!" and the king's tongue was loosed and he began to speak. Here is an example of true love for one's enemies!
! CONTEMPLATION
Contemplate the wondrous power of the apostles' words (Acts 16):
# How a certain slave girl with an unclean spirit of divination cried out after Paul and Silas;
# How Paul turned and said to the spirit, //I command thee in the name of Jesus Christ to come out of her;//
# How the unclean spirit at that same hour came out of the slave girl.
! HOMILY
! on the will of God that all Christians should be holy
According as He hath chosen us in Him before the foundation of the world, that we should be holy and without blame before Him in love (Ephesians 1:4).
Only the Church teaches and demonstrates that first there was a plan for the world and then the world was created. That plan was in the wisdom and will and power of God. And we Christians, as the Church of God, are in this plan. According to this plan, God chose us //before the foundation of the world//for holiness and righteousness and love. God chose us beforehand and adopted us through Him--through Whom? Through the Lord Jesus Christ. For all that we are to God, we are to Him through Jesus Christ. Apart from Jesus Christ man has no other bond, no other relationship, no other kinship with God, and therefore our choosing and adoption was through our Lord Jesus Christ. He chose us, His Holy Church, //according to the good pleasure of His will// (Ephesians 1:5), as He had once chosen Israel from among all the nations on earth. Let no one say that this choosing of God destroys man's free will, so that neither does a Christian have merit because he is a Christian, nor is a pagan condemned because he is a pagan. No, this is a totally erroneous interpretation. For at one time God also chose Israel and some in Israel perished while some were saved. He also chose His Holy Church, calling all nations and peoples to it. But the salvation of those among the chosen does not depend on God's choice alone, but also on man's will and effort.
O eternal God, our Creator, Who chose us for salvation before Thou hadst even created us, have mercy on us and save us.
To Thee be glory and praise forever. Amen.
! THE VENERABLE GREGORY OF DECAPOLIS
Gregory was born in Isaurian Decapolis of prominent and devout parents, Sergius and Mary. After he had completed his schooling, his parents desired that he marry, but he fled to the wilderness and was tonsured a monk. He lived in various places: Byzantium, Rome and on Mount Olympus. Wherever he was, he amazed men by his asceticism and miracles. At times a heavenly light illumined him and angels of God appeared to him. He gazed upon the beauty of the angels and listened to their sweet chanting. He lived a long and God-pleasing life and died peacefully in the ninth century in Constantinople, his soul taking up its abode in the joy of his Lord.
! SAINT PROCLUS, PATRIARCH OF CONSTANTINOPLE
Proclus was a disciple of St. John Chrysostom. In the year 426 A.D. he was consecrated Bishop of Cyzicus, and in 435 A.D. was chosen Patriarch of Constantinople. He governed the Church of God as a prudent hierarch. During his tenure, two significant events occurred. The first was the translation of the relics of St. John Chrysostom from Comana to Constantinople, at the desire of both the emperor and the patriarch. Emperor Theodosius the Younger was then reigning with his sister, Pulcheria. The second event was the great earthquake in Constantinople and the surrounding countryside. Many of the largest and most beautiful buildings were destroyed by this terrible earthquake. Then the patriarch, with the emperor, many of the clergy, nobles and people, came out in a procession of supplication. As they were praying to God, a child was miraculously lifted high in the air, until he was out of sight. Then he returned and was lowered gently to the ground. Asked where he had been, the child replied that he had been lifted up to heaven among the angels and that he had heard the angels sing:"Holy God, Holy Mighty, Holy Immortal, have mercy on us!" Upon hearing this, all the people in the procession began to sing it and the earthquake ceased immediately. From that time on, this beautiful hymn was adopted by the Church. The child soon reposed, and was interred in the Church of St. Irene. In all, St. Proclus served as a hierarch for twenty years and reposed peacefully in the Lord in the year 446 A.D.
! THE HOLY MARTYRS EUSTATHIUS, THESPESIUS AND ANATOLIUS
Eustathius, Thespesius and Anatolius were blood brothers from Nicomedia. Their parents, Philotheus and Eusebia, were pagans who received the true Faith from St. Anthimus, Bishop of Nicomedia, as did their sons. Philotheus was ordained a presbyter. When he and his wife reposed, a terrible persecution of Christians was perpetrated under the evil Emperor Maximian, and Philotheus's three sons were brought to trial. Accused, interrogated and tortured in various ways, they were finally condemned to death. Angels appeared to them many times in prison and gave them manna to eat, filling their young hearts with strength, courage and endurance. When they were led to the place of execution, two friends, Palladius and Acacius, approached them and spoke with them. While they were still speaking, the holy martyrs gave up their souls to God. The soldiers then severed their lifeless heads and took them to show to the judge. They suffered for Christ the Lord in about the year 313 A.D., and took up their habitation in the Immortal Kingdom of Christ.
! SAINT ISAAC, ARCHBISHOP OF ARMENIA
Isaac was born in Constantinople when his father was an envoy of the Armenian king to the Byzantine court. Isaac was the tenth Archbishop of Armenia, and in that calling, governed the Church for fifty years. His episcopacy was distinguished, among other things, by the translation of the Holy Scriptures into the Armenian language. He was told in a vision that the Armenians would eventually fall away from the pure Faith of Orthodoxy. This eminent hierarch entered peacefully into rest in the year 440 A.D. and reposed in the Lord.
! THE THREE HOLY VIRGINS
All three were Persians. At the time of King Sapor, these three virgins were persecuted as Christians, and were finally cut to pieces with knives. Three fig trees grew out of their graves that healed all manner of pains and illnesses.
! HYMN OF PRAISE
!
! SAINT PROCLUS, PATRIARCH OF CONSTANTINOPLE
Glorious disciple of a glorious teacher,
O most-wise Proclus, servant of the Savior,
You strengthened the Faith and destroyed heresy,
For which the Holy Church praises you,
And the Church magnifies its giant,
Who, by glorifying God, glorified himself.
As a skilled helmsman, you guided the Church,
Beheld miracles and glorified God.
Clairvoyant of spirit, with a mind filled with grace,
You resonated with the Spirit like a finely tuned string.
Taught by the Spirit, you instructed the emperor
To transport the relics of the golden-mouthed Patriarch,
And with the emperor and the people you openly beheld
Glorious miracles manifest from the relics.
Now, in Paradise eternal, pray for us,
That the faithful endure in the Faith to the end!
! REFLECTION
No mortal has interpreted the Epistles of the Apostle Paul with greater love and depth than St. John Chrysostom. Had St. Paul himself interpreted them, he could not have interpreted them better. Behold, history tells us that it was Paul himself who interpreted them through the mind and the pen of Chrysostom. When St. Proclus was a novice under Chrysostom, during the time that he was patriarch, it was his duty to announce visitors. A certain nobleman was slandered before Emperor Arcadius and the emperor had expelled him from the court. This nobleman came to implore Chrysostom to intercede with the emperor on his behalf. Proclus went to announce him to the patriarch but, looking through the partly opened door, saw a man bent over the patriarch, whispering something in his ear while the patriarch wrote. This continued until dawn. Meanwhile, Proclus told the nobleman to come back the next evening, while he himself remained in amazement, wondering who the man with the patriarch was, and how he managed to enter the patriarch's chamber unannounced. The second night the same thing happened again, and Proclus was in still greater amazement. The third night the same thing happened again, and Proclus was in the greatest amazement. When Chrysostom asked him if the nobleman had come by, he replied that he had already been waiting for three nights, but that he couldn't announce him because of the elderly, balding stranger who had been whispering in the patriarch's ear for three nights. The astonished Chrysostom said that he did not remember anyone entering to see him during the previous three nights. He asked his novice what the stranger looked like, and Proclus pointed to the icon of the Holy Apostle Paul, saying that the man was like him. Therefore, it was the Apostle Paul himself who was directing the mind and pen of his greatest interpreter.
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 1):
# How the Holy Trinity took counsel together about the creation of man;
# How God created man in His own image.
! HOMILY
! on behavior in accordance with one's calling
… that ye walk worthy of the vocation wherewith ye are called, with all lowliness and meekness, with longsuffering (Ephesians 4:1-2).
Be not proud, be not angry, be not faint-hearted; for these are unworthy of a Christian calling. This calling is so elevated and wonderful that it is difficult for a man to safeguard himself from pride; yet it is difficult to keep oneself above faint-heartedness when dangers and losses occur. Against these three unhealthy states, the Apostle emphasizes three healthy states: against pride, lowliness; against anger, meekness; against faint-heartedness, longsuffering. It must be said that these three virtues--lowliness, meekness and longsuffering--do not express in full measure the loftiness of the Christian calling. But then, nothing in this world can fully express the height of the Christian calling. The preciousness and richness of this calling cannot be seen here on earth: it is like a closed chest that a man carries through this world, but only opens it and avails himself of its riches in the other world. Only someone who could raise himself to the highest heavens and see Christ the Lord in glory with the angels and the saints could assess the loftiness of the Christian calling; for there is the victorious assembly of all God's chosen ones from earth who were made worthy of this exceedingly high honor.
O Lord Jesus Christ our God, Thy name is the name most dear to us.
To Thee be glory and praise forever. Amen.
! THE ENTRY INTO THE TEMPLE OF THE MOST-HOLY THEOTOKOS
When the Most-holy Virgin Mary reached the age of three, her holy parents Joachim and Anna took her from Nazareth to Jerusalem to dedicate her to the service of God according to their earlier promise. It was a three-day journey from Nazareth to Jerusalem but, traveling to do a God-pleasing work, this journey was not difficult for them. Many kinsmen of Joachim and Anna gathered in Jerusalem to take part in this event, at which the invisible angels of God were also present. Leading the procession into the Temple were virgins with lighted tapers in their hands, then the Most-holy Virgin, led on one side by her father and on the other side by her mother. The virgin was clad in vesture of royal magnificence and adornments as was befitting the "King's daughter, the Bride of God" (Psalm 45:13-15). Following them were many kinsmen and friends, all with lighted tapers. Fifteen steps led up to the Temple. Joachim and Anna lifted the Virgin onto the first step, then she ran quickly to the top herself, where she was met by the High Priest Zacharias, who was to be the father of St. John the Forerunner. Taking her by the hand, he led her not only into the Temple, but into the "Holy of Holies," the holiest of holy places, into which no one but the high priest ever entered, and only once each year, at that. St. Theophylact of Ohrid says that Zacharias "was outside himself and possessed by God" when he led the Virgin into the holiest place in the Temple, beyond the second curtain--otherwise, his action could not be explained. Mary's parents then offered sacrifice to God according to the Law, received the priest's blessing and returned home. The Most-holy Virgin remained in the Temple and dwelt there for nine full years. While her parents were alive, they visited her often, especially Righteous Anna. When God called her parents from this world, the Most-holy Virgin was left an orphan and did not wish to leave the Temple until death or to enter into marriage. As that would have been against the Law and custom of Israel, she was given to St. Joseph, her kinsman in Nazareth, after reaching the age of twelve. Under the acceptable role of one betrothed, she could live in virginity and thus fulfill her desire and formally satisfy the Law, for it was then unknown in Israel for maidens to vow virginity to the end of their lives. The Most-holy Virgin Mary was the first of such life-vowed virgins, of the thousands and thousands of virgin men and women who would follow her in the Church of Christ.
! HYMN OF PRAISE
!
! SAINTS JOACHIM AND ANNA
The parents of the Holy Virgin
Lead her to the holy Temple,
And according to their promise
They give her to the Lord.
They lead the Temple to the Temple,
While angels chant,
And chant with joy
To the young Virgin in purest attire.
The virgins accompany our Virgin,
With hymns and tapers;
Zacharias leads her
To the Holy of Holies;
And into the Holy Place he takes her,
Where the awesome mystery is hidden.
Where the Ark of the Covenant is,
Where the golden lampstand is,
Where the staff and the manna are,
Into the guarding place of all mysteries;
There the pure Virgin is led--
The Mystical Ark of the Living Christ.
! REFLECTION
Submit yourself to the will of God and do not pry too closely into God's judgments, for you can lose your mind. The judgments of God are innumerable and unfathomable. A monk in the wilderness, imagining that he had attained perfection, prayed to God that He would reveal to him His various judgments in the lives of men. God put the thought in his mind to go to a distant place to inquire of a spiritual elder concerning this. However, while the monk was on his way, an angel of God in the form of an ordinary man joined him, saying that he too wanted to go to that elder. Thus traveling together, they came upon the house of a God-fearing man, who treated them well, giving them to eat from a silver platter. When they had eaten, the angel took the platter and threw it into the sea. The monk found this both amazing and unjust, but he remained silent. The second day they came upon the house of another hospitable man who cordially received and treated them as kinsmen. Before leaving, that man brought out his only son for the travelers to bless. The angel of God then took the child by the throat and strangled him. The monk was greatly angered and asked the angel who he was, and why he had committed such misdeeds. The angel meekly replied to him: "The first man was pleasing to God in all things and had nothing in his house that was attained by injustice except that silver platter. By God's judgment, I threw that stolen platter away, so that the man would be righteous before God in all things. The other man was pleasing to God and had nothing in his house that would bring down the wrath of God except his son, who--had he matured--would have become a great criminal and a demonic vessel. Therefore, by God's judgment, I strangled that child in time to save his soul, for the sake of his father's goodness, and to save the father from many miseries. Behold, such are the mysteries and the unfathomable judgments of God. And you, elder, should return to your cell and not strive vainly by inquiring into that which is in the authority of the One God."
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 2):
# How God created man from the dust of the earth;
# How He breathed the spirit of life into his nostrils;
# How man became a living soul.
! HOMILY
! on the faithful as one body and one spirit
…There is one body and one spirit (Ephesians 4:4).
The Holy Apostle counsels the faithful to strive to be //one body and one spirit//. By //one body//is understood "one Faith," without divisions, without heresies and without self-will: the whole Church is //one body// of which Christ is the Head. By //one spirit// is understood "love," the ardent love of all the faithful for Christ, from which proceeds mutual love. The many become as one; many men become as one man. This is the miracle of the Christian Faith and Christian love. There is no power in the world which can be a stronger bond among men: not the same blood, or the same language, or the same hearth, or the same parents, or any type of common material interests. None of these is even nearly as powerful a bond as Christian faith and love. By this powerful, irresistible bond, all the members of the Church are bound to each other. The Church of God stands as one man, in time and in eternity--//one body and one spirit//. There is nothing more contradictory to this wondrous unity than the pride of individual men. Pride distorts faith, cools love, creates heresies, divides the Church, and sacrifices the good of the whole for individual satisfaction. Pride, in essence, is the absence of both faith and love. Brethren, may God save us from pride, the primal infirmity of the human race, that we may always be //one body and one spirit// in our Lord Jesus Christ.
! To Thee, O Lord Jesus; to Thee, the Head of the Church, be glory and praise forever. Amen.
! THE HOLY MARTYR CECILIA
Cecilia was born in Rome of wealthy and eminent parents. She had great faith in Christ the Lord and a great zeal for the Faith. Vowing life-long virginity to God, St. Cecilia wore a coarse hair shirt beneath the costly raiment that her parents gave her. When her parents coerced her into marriage with Valerian, a pagan, Cecilia counseled her bridegroom on their wedding night to go to Bishop Urban to be baptized, and then live in chastity. Accepting the Christian Faith, Valerian also converted his brother Tiburtius. Soon after, both brothers were condemned to death for their faith. But their faithfulness did not falter, even in the face of death. Led to the place of execution, these wonderful brothers also succeeded in converting the captain of the guard, Maximus, to the Faith. Then all three suffered together for Christ the Lord. St. Cecilia buried their bodies together. Cecilia was then brought to trial, for she tirelessly won pagans over to the Christian Faith. In only one evening, she won over four hundred souls. When the judge asked her from whence such boldness came, she answered: "From a pure conscience and undoubting faith." After cruel torture, Cecilia was condemned to beheading. The executioner struck her three times on the neck with the sword, but he was unable to kill her. She was only wounded, and blood flowed from her wounds, which the faithful collected in handkerchiefs, sponges and bowls for the sake of healing. Three days after this, the martyr and virgin of Christ gave her soul to her Lord, with Whom she eternally rejoices. St. Cecilia suffered with the others in about the year 230 A.D. Her relics lie in Rome, in the church dedicated to her. In the Western Church, St. Cecilia is regarded as the patroness of church singing and music.
! SAINT CALLISTUS, PATRIARCH OF CONSTANTINOPLE
Callistus is called "Xanthopoulos" after the cell of that name on Mount Athos, where he lived for a long time in asceticism with his companion, Ignatius. With this same Ignatius, St. Callistus wrote in one hundred chapters of his personal experience of a life of stillness. This work occupies a very prominent place in ascetical literature. Callistus was greatly influenced by his teacher, St. Gregory of Sinai, and wrote his Life. Having become Patriarch of Constantinople, St. Callistus became ill and reposed while on a journey to Serbia. Before he undertook his journey this was prophesied to him by St. Maximus of Kapsokalyvia of the Holy Mountain.
! THE HOLY MARTYR MENIGNUS
Menignus was born on the Hellespont. He worked as a linen-bleacher, for which he was called "the Fuller." At the time of Emperor Decius, he tore up the imperial decree declaring a persecution of Christians. For this, he was thrown into prison, where the Lord Himself appeared to him and encouraged him, saying: "Be not afraid, I am with thee." At that moment his chains melted like wax, the prison opened of itself, and he went out. He was arrested again and tried. They tortured him inhumanly, severing his fingers and toes and beheading him. At night, his severed head glowed like a lamp.
! THE HOLY RIGHTEOUS MICHAEL THE SOLDIER
Michael was a Bulgarian by birth. With his companions, he fought in the Greek army against the Hagarenes and Ethiopians, where he displayed marvelous fearlessness. He killed a terrible serpent and freed a maiden. Soon afterward, this righteous man took up his abode in eternal life. He lived and reposed in the ninth century. He was first buried somewhere in Thrace, but Emperor Kalo-John translated his relics to Trnovo in 1206 A.D.
! THE HOLY APOSTLES PHILEMON AND ARCHIPPUS, AND THE HOLY MARTYR APPHIA (See February 19)
! HYMN OF PRAISE
! THE HOLY MARTYR CECILIA
Cecilia--strong in faith, rich in faith--
Her faith is more beautiful than the stars, more precious than gold.
She nailed herself to the Lord, as to the Cross,
And sacrificed youth, joy, marriage and honor for Christ!
The cruel demon could steal nothing from her;
And when only her body remained, she gave it to Christ.
For the love of Christ, she gave the whole world--
Even two worlds: her body and her pure soul.
Thus does the flame of faith burn, and the flame of love,
And by that flame, Cecilia glorified herself.
! REFLECTION
Every effort of learning is in vain without the effort of attaining purity of faith and life. The heavenly world is revealed not to the learned but to the pure. When St. Cecilia was led to the bridal chamber with her bridegroom Valerian on the first night, she said him: "I want to tell you a mystery: standing here is an angel of God, the guardian of my virginity, whom you do not see. He stands ready to protect me, his handmaid, from assault. If you only touch me, he will kill you." Valerian begged Cecilia to show him the angel, so that he could see it, too. The virgin replied: "You are a man who knows not the true God. You cannot see the angel of God until you cleanse yourself of the foulness of your unbelief." When Valerian was baptized, he saw the angel in great light and ineffable beauty. So, too, when Valerian's brother Tiburtius changed his life from impurity to purity in baptism, he saw holy angels and spoke with them. Maximus their fellow sufferer as well, when the two brothers were beheaded, vowed with a great oath before the executioners and the people, saying: "I see angels of God shining like the sun, taking the souls of these martyrs from their bodies like beautiful virgins from the bridal chamber, and leading them to heaven with great glory." But that which he saw, none of the impure unbelievers were able to see.
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 2):
# How God planted a paradisal garden in Eden and placed man there;
# How God made trees in Paradise, beautiful to look at and good for food;
# How God brought all the animals before man and he named them.
! HOMILY
! on that which constitutes the unity of the faithful
… One Lord, one Faith, one baptism; one God and Father of all (Ephesians 4:5-6).
Here is the all-important and extremely obvious reason for all Christians to keep the unity of the Spirit in the bond of peace (Ephesians 4:3) and be one body and one spirit (Ephesians 4:4). For the One Lord Jesus Christ is our Creator, Redeemer and Resurrector. There are not two true Christs, that there should be division among us. One and the same blood was shed upon the Cross for us all, just as one and the same mouth prayed for us all in Gethsemane. We have one Faith in the Holy Trinity, undivided and life-creating--the Father, Son and Holy Spirit, one in Essence and three in Persons--the Unbegotten Father, the Begotten Son and the Spirit proceeding from the Father. We have one Baptism in the name of the Father, the Son and the Holy Spirit. This Baptism is by threefold immersion in water, for death to sin and the devil, and for the resurrection and life in Christ the Lord. One God and Father of all--the Father of the Lord Jesus Christ, the Only-begotten Son of God, Who through Christ and because of Christ adopts us and gives us the right to say to Him, Our Father.
Do you see, my brethren, how strong are the bonds that unite us? Not even the stars themselves are bound by stronger bonds, nor the water to the earth, nor fire to the air. Do you see the overwhelming reasons that we have for unity? Everything else that, from the left hand, would urge us to division is inconsequential compared to these reasons, like a grain of sand compared to the high mountains. The devil cannot destroy our unity if we do not help him. The devil can never conquer us if we do not surrender ourselves to him.
O Lord Jesus, sweet and gracious, how firmly Thou hast bound us for eternal good! Keep us, we pray, in this bond.
To Thee be glory and praise forever. Amen.
! SAINT AMPHILOCHIUS, BISHOP OF ICONIUM
Amphilochius was a fellow countryman, companion and friend of St. Basil the Great and other great saints of the fourth century. Amphilochius left the uproar of the world early in life and withdrew to a cave where, as a hermit, he lived in asceticism for forty years. It then happened that the episcopal throne in Iconium was vacated, and Amphilochius, in a wondrous manner, was chosen and consecrated Bishop of Iconium. He was a splendid shepherd and a great defender of the purity of the Orthodox Faith. He took part in the Second Ecumenical Council in 381 A.D. He fought zealously against the impious Macedonius, the Arians and the Eunomians. He personally begged Theodosius the Great to expel all the Arians from every city in the empire, but the emperor did not heed him. A few days later, Amphilochius came before the emperor again. When the bishop was led into the reception chamber, the emperor was sitting on his throne, and on his right sat his son Arcadius, whom Theodosius had taken as his co-emperor. Entering the chamber, St. Amphilochius bowed to Emperor Theodosius but paid no attention to Arcadius, the emperor's son, as if he were not there. Greatly enraged at this, Emperor Theodosius ordered that Amphilochius be immediately expelled from the court. The saint then said to the emperor: "Do you see, O Emperor, how you do not tolerate disrespect to your son? So too, God the Father does not tolerate disrespect to His Son, and is disgusted with the corruptness of those who blaspheme Him and is angered at all those adherents of that cursed (Arian) heresy." Hearing this, the emperor then understood why Amphilochius had not given honor to his son, and was amazed at his wisdom and daring. Among many other works, St. Amphilochius wrote several books on the Faith. He entered into rest in great old age in the year 395 A.D. and took up his habitation in eternal life.
! SAINT GREGORY, BISHOP OF AGRIGENTUM
Gregory was born of devout parents, Chariton and Theodota in Sicily near the town of Agrigentum, where he was later bishop,. His entire life was imbued with God's wonderful miracles. In a miraculous manner, he went to Jerusalem; in a miraculous manner, he was chosen as bishop; and in a miraculous manner, he was saved from slander. He himself was a great miracle-worker, for he was a great God-pleaser, a great spiritual father and an ascetic. He participated at the Fifth Ecumenical Council in Constantinople in 553 A.D. After difficult trials he reposed peacefully near the end of the sixth century or the beginning of the seventh.
! SAINT ALEXANDER NEVSKY
Alexander was the son of Prince Yaroslav. From childhood, his heart was directed to God. He defeated the Swedes on the river Neva on July 15, 1240 A.D., for which he received the appellation "Nevsky" ["of the Neva"]. On that occasion, Saints Boris and Gleb appeared to one of Alexander's commanders and promised their help to the great prince, who was their kinsman. Once, among the Golden Horde of the Tartars, he refused to bow down to idols or to pass through fire. Because of his wisdom, physical strength and beauty, even the Tartar Khan respected him. He built many churches and performed countless works of mercy. He entered into rest on November 14, 1263 A.D. at the age of forty-three. On this day, November 23, the translation of his relics to the town of Vladimir is commemorated.
! SAINT MITROPHAN, BISHOP OF VORONEZH
Mitrophan was a glorious Russian hierarch, ascetic and patriot. He was a friend, and later a critic, of Peter the Great. He entered into rest on November 23, 1703 A.D. His wonderworking relics were uncovered in the year 1832 A.D.
! HYMN OF PRAISE
! SAINT ALEXANDER NEVSKY
A knight of Christ, St. Alexander,
A prince of the people and servant of the Lord--
Ruler on earth and slave of the Almighty--
This was the life of Nevsky.
On the outside opulence, on the inside weeping;
On the outside struggle, on the inside serenity;
On the outside illusion, on the inside truth.
Christ was the prize of this hero,
Both in war and deceptive peace.
In torment, Christ was his joy,
In suffering, Christ was his assurance,
In victory, Christ was the victor,
And in death, Christ was his Resurrector!
To him, in both worlds, all was Christ!
He was the end; He was the living goal.
The pious prince was an exemplar to his people,
Of how one should serve the Lord.
O holy Prince, help us also,
By your brilliant power, by your holy prayers!
! REFLECTION
God permits misfortune to befall the righteous, that He might glorify them more greatly. The overcoming of misfortune reveals both the glory of God and the glory of the righteous. St. Gregory of Agrigentum was, in all things, righteous and pleasing to God. But God permitted misfortune to befall him, similar to that misfortune that once overtook St. Athanasius and St. Macarius. Two priests, Sabinus and Crescens, for whom Gregory had done much good, could not at all tolerate Gregory's virtuousness. For such is the nature of vice, that it cannot tolerate virtue. Consequently, Sabinus and Crescens found a notorious prostitute and bribed her to malign Gregory by saying that he had had immoral relations with her. So it was that when Gregory was in church, the woman crept into his bedroom, and just as Gregory came out of church with the people, she emerged from his room. The two priests began to revile Gregory as a libertine. However, Gregory was composed and prepared for every suffering. They confined him in prison and then transferred him to Rome. The pope believed the slanderers and kept Gregory in prison for two and a half years, without a trial or a verdict. A council was then convened to try Gregory's case, but God judged before man could judge. The woman went insane and was brought mad before the council. She was unable to answer any questions. Gregory, the miracle-worker, prayed to God for her and she was healed, for the evil spirit came out of her. Then, through her tears, she confessed that she had been bribed to malign the man of God, and that immediately after she had committed the slander, the evil spirit had entered her and held her in its power. Sabinus and Crescens, along with the other maligners--more than a hundred in number--found their faces suddenly turned as black as coal, and they were punished with exile. St. Gregory was returned to his diocese and was received with great exultation by his people.
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 2):
# How God gave the first people all the plants and all the fruitful trees for food;
# How He forbade them to eat of the tree of the knowledge of good and evil, lest they die.
! HOMILY
! on grace and gifts
But unto every one of us is given grace according to the measure of the gift of Christ (Ephesians 4:7).
Here is the beginning of distinctions among Christians. At first, the Apostle enumerated that which unites us, that is, //one Lord, one Faith, one baptism, one God and Father of all// (Ephesians 4:5-6). Nevertheless, here he emphasizes that which makes us unwillingly different. The measure of the gift of Christ makes us different, the measure according to which the grace of the Holy Spirit is given. Christ is the Head of the great body that is called the Church. He creates that body and, individually, every member of that body; He is the Builder and He is the only One who knows the plan of that building. He does not allow one member in this building to be disproportionally great or small. He gives the proper measure to everything and everyone. Thus, He gives one five talents, another two, and another one. He measures, and the Holy Spirit pours out His grace accordingly. No one should be angry or envious. No one should be angry, for if he has received less, he will have less to answer for. No one should be envious, for if someone has received more, it is not his, but God's. If he has much, much will be asked of him, as it is said in the divine parable of the talents.
O my brethren, let every one of us be conscious of the measure of our gift and our responsibility. Let us respect our gift and the gift of our neighbor, for all gifts are from God and are God's.
! O Lord Jesus, the great Giver of diverse gifts, to Thee be glory and praise forever. Amen.
! THE HOLY GREAT-MARTYR CATHERINE
Catherine was the daughter of King Constus. After the death of her father, she lived with her mother in Alexandria. Her mother was secretly a Christian who, through her spiritual father, brought Catherine to the Christian Faith. In a vision, St. Catherine received a ring from the Lord Jesus Himself as a sign of her betrothal to Him. This ring remains on her finger even today. Catherine was greatly gifted by God and was well educated in Greek philosophy, medicine, rhetoric and logic. In addition to that, she was of unusual physical beauty. When the iniquitous Emperor Maxentius offered sacrifices to the idols and ordered others to do the same, Catherine boldly confronted the emperor and denounced his idolatrous errors. The emperor, seeing that she was greater than he in wisdom and knowledge, summoned fifty of his wisest men to debate with her on matters of faith and to put her to shame. Catherine outwitted and shamed them. In a rage, the emperor ordered all fifty of those men burned. By St. Catherine's prayers, all fifty confessed the name of Christ and declared themselves Christians before their execution. After Catherine had been put in prison, she converted the emperor's commander, Porphyrius, and two hundred soldiers to the true Faith, as well as Empress Augusta-Vasilissa herself. They all suffered for Christ. During the torture of St. Catherine, an angel of God came to her and destroyed the wheel on which the holy virgin was being tortured. Afterward, the Lord Jesus Christ Himself appeared to her and comforted her. After many tortures, Catherine was beheaded at the age of eighteen, on November 24, 310 A.D. Milk, instead of blood, flowed from her body. Her miracle-working relics repose on Mount Sinai.
! THE HOLY GREAT-MARTYR MERCURIUS
When Emperor Decius once waged war against the barbarians, there was in his army the commander of an Armenian regiment called the Martenesians. This commander was named Mercurius. In battle, an angel of the Lord appeared to Mercurius, placed a sword in his hand, and assured him of victory over his enemies. Indeed, Mercurius displayed wonderful courage, mowing down the enemy like grass. Following this glorious victory Emperor Decius made him chief commander of his army, but envious men reported Mercurius to the emperor for being a Christian, a fact which he did not hide but openly acknowledged before the emperor. Mercurius was tortured harshly and at length; he was cut into strips with knives and burned with fire. An angel of God appeared to him in prison and healed him. Finally, the emperor proclaimed that General Mercurius be beheaded in Cappadocia. When they beheaded him, his body became as white as snow and emitted a most wonderful incense-like fragrance. His miracle-working relics healed many of the sick. This most wonderful soldier of Christ suffered for the Faith sometime between the years 251 and 259 A.D. and took up his habitation in the Kingdom of his King and God.
! THE HOLY VIRGIN MASTRIDIA
Mastridia lived in Alexandria and led a solitary life of prayer and handiwork. A young man, burning with bodily passion toward her, constantly harassed her. Not wanting to sin before God, and since she could not easily be rid of this unrestrained youth, St. Mastridia once asked him what attracted him most to her. He replied: "Your eyes!" Mastridia then took the needle with which she was sewing and put out her eyes. Thus, Mastridia preserved her peace and the young man's soul. The young man repented deeply, and became a monk.//)
--------------------
//) This Mastridia apparently is not the same as the one who is commemorated on February 7. That Mastridia was from Jerusalem, while this one is from Alexandria. The former fled from scandal to the wilderness, while the latter put out her eyes.
! HYMN OF PRAISE
! THE HOLY GREAT-MARTYR CATHERINE
The wise Catherine, an earthly princess,
Became a martyr for Christ the Savior.
Foolish Maxentius offered her life:
If she would consent to become his wife!
The holy Catherine, pure as gold,
Replied to the emperor thus:
"My betrothed is the Risen Christ,
And I desire not the love of a corrupt man.
You seek my body: the rotten seeks corruption,
Even as the incorrupt spirit seeks immortality.
The physical covering must wither away,
The true man takes care for his immortal soul.
Do what you wish, and torture me--
Burn me in the fire, turn me on a wheel;
I cannot renounce my own soul,
Nor worship any but Christ as God.
Remember, O Emperor, soon you will die,
And worms will erupt from your corpse--
Worms will glorify you, worms will eat you,
A curse will accompany you, and a curse will meet you:
For you dare wage war against Christ, Who is mightier than death.
You stand under the Rock, and He will crush you."
Holy Catherine, Christ's virgin,
You despised the throne for eternal truth's sake;
And thus now reign in the Kingdom without end,
And sing with the angels, in the midst of sweet Paradise.
! REFLECTION
A tale of Elder Barlaam to Ioasaph: The citizens in a certain town had a custom of choosing as king a stranger who did not know their laws and customs. After they had crowned him king, they clothed him in beautiful robes, fed him abundantly and surrounded him with every luxury. However, as soon as one year had elapsed, they deposed their king, stripped him of all his goods and his clothes, and drove him completely naked to a distant island, where he had neither bread nor roof nor companions, and where he would die in misery and humiliation. The citizens of this town would then choose another king, also a stranger and also for one year; then a third, then a fourth, then a fifth and so forth. But it once happened that they chose a very wise and cautious man. He learned from his servants what had happened to the kings of this town after their year. Therefore, over the course of the whole year he zealously gathered food and goods and daily sent them to that island. When the year had run out and when he was stripped of his clothing and cast onto the island, he found himself amidst an enormous quantity of food, silver, gold and precious stones, and continued to live there even better than he lived as king in that town. The interpretation is this: The town represents the world; the citizens represent the evil spirits; the kings are men, either foolish or wise. The foolish men think only of the pleasures of this life, as if it were eternal; but in the end, death cuts everything off and they, naked of all good works, go to hell. The wise, however, perform many good works, and send these good works ahead of them to the other world. At their repose, the wise kings--the good men--depart to that world where their accumulated riches await them, and where they reign in greater eternal glory and beauty than they reigned here on earth.
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 2):
# How God brought all animals, birds and beasts before Adam, to see how he would name them;
# How Adam gave a name to every animal and every bird and every beast.
! HOMILY
! on Him Who descended and ascended
He that descended is the same also that ascended up far above all heavens, that He might fill all things (Ephesians 4:10).
In His love for man, the Lord Jesus Christ lowered Himself so low that He could go no lower; and then raised Himself so high that, in truth, He could go no higher. He descended //into the lower parts of the earth//(Ephesians 4:9): into hades itself, where He freed the forefathers, prophets and righteous ones, and led them into the Kingdom of Heaven. Completing His work both on earth and in hades, He ascended //far above all heavens//. The same One Who ascended is the very same One Who descended without any change, except that He descended without a body, and ascended with a body. Therefore, there are not both a Son of God and a Son of Man as heretics have said, but Christ is both the Son of God and the Son of Man--one and the same Person--one and the same God-man, our Savior Jesus Christ. As He is the same yesterday, today and tomorrow, so He is the same in the depths and in the heights: on earth, in hades, and in the heavens. He abased Himself lower than all men, and raised Himself above all the angelic powers, to show by example the truthfulness of His words: //And whosoever shall exalt himself shall be abased; and he that shall humble himself shall be exalted// (Matthew 23:12). If we are not humbled by virtues, then sin will humble us. Virtue leads to voluntary and temporary abasement, but sin leads to irreversible and eternal abasement.
O Lord Jesus, Who fills all by Thy power, fill us with the spirit of true humility.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR CLEMENT, BISHOP OF ROME
Clement was born in Rome of royal lineage and was a contemporary of the holy apostles. His mother and two brothers, traveling on the sea, were carried by a storm to different places. His father then went to find his wife and two sons and he, too, became lost. Clement, being twenty-four years old, then set out for the east to seek his parents and brothers. In Alexandria, he made the acquaintance of the Apostle Barnabas and, afterward, joined the Apostle Peter whom his two brothers, Faustinus and Faustinian, were already following. By God's providence, the Apostle Peter came upon Clement's mother as an aged beggar woman, and then found his father as well. Thus, the whole family was united, and all returned to Rome as Christians. Clement did not separate himself from the great apostle, who appointed him as bishop before his death. After Peter's martyrdom, Linus was Bishop of Rome, then Cletus--both of them for a short time--and then Clement. Clement governed the Church of God with flaming zeal, and from day to day brought a great number of unbelievers to the Christian Faith. In addition, he ordered seven scribes to write the lives of the Christian martyrs who were suffering at that time for their Lord. The Emperor Trajan banished him to Cherson, where Clement found about two thousand exiled Christians. All were occupied with the difficult job of hewing stones in a waterless land. The Christians received Clement with great joy and he was a living source of comfort to them. By his prayer, he brought forth water from the ground and converted so many of the unbelieving natives to Christianity that, in one year, seventy-five churches were built there. To prevent his spreading the Christian Faith even more, the authorities condemned Clement to death, and drowned him in the sea with a stone around his neck in the year 101 A.D. His miracle-working relics were removed from the sea only in the time of Saints Cyril and Methodius.
! THE HIEROMARTYR PETER, ARCHBISHOP OF ALEXANDRIA
Peter was a disciple and successor of St. Theonas, Archbishop of Alexandria, and was for a time a teacher at Origen's famous school of philosophy. He ascended the archiepiscopal throne in the year 299 A.D., and died a martyr's death in 311 A.D., beside the grave of the Holy Apostle Mark. He governed the Church in a most difficult era, when assaults were being made against the faithful by unbelievers from without, and by heretics from within. During his time, 670 Christians suffered in Alexandria. Often, whole families were led to the scaffold and executed. At the same time, the ungodly Arius was confusing the faithful with his false teaching. St. Peter cut him off from the Church and anathematized him, both in this world and in the next. The Lord Himself visited this great and wonderful saint in prison.
! THE VENERABLE PAPHNUTIUS
Paphnutius never drank wine. Once, bandits seized him, and their leader forced him to drink a cup of wine. Seeing Paphnutius's kind nature, the chief of the bandits repented, and abandoned his brigandage.
! HYMN OF PRAISE
! THE HIEROMARTYR CLEMENT, BISHOP OF ROME
The aristocrat Clement, of noble birth,
Became a zealous servant of the Living Lord.
Scorning the vanity of opulent Rome,
He elevated his spirit above all illusion.
Spiritual kinship with Peter bound him,
And loosened his fleshly kinship to the emperor.
He shone in Rome as a radiant star,
Dispelling dense darkness with the Honorable Cross;
He adorned and strengthened the Apostolic Church,
And embittered the weak powers of the demons.
A tempest arose from demonic powers
Seeking to slay the saint of God.
His body they killed; his soul then fled to Paradise.
At the bottom of the waters of the sea, his holy body remained.
After eight centuries solid iron would have wasted away,
But not the body of this knight of Christ.
He gloriously manifested many miracles,
And through Christ God Clement was glorified.
O holy Clement, help even us
By your prayers before the throne of God.
! REFLECTION
It is said of St. Peter of Alexandria that he never climbed the steps and sat on the patriarchal throne in church, but rather stood or sat before the steps of the throne. When the faithful complained that their hierarch did not sit in his place, he replied: "Whenever I approach the throne, I see a heavenly light and power upon it, and that is why I do not dare climb and sit on it." Beside this vision, St. Peter had another, yet more wondrous vision. While he was in prison, the impious heretic Arius hypocritically pretended that he had repented of his heresy, and sent word to the captive Peter that he had renounced his heresy, with an appeal to Peter to receive him into the Church again. Arius did this only because he thought that Peter would be martyred, and he could then acquire the patriarchal throne and disseminate and strengthen his heresy. Before he gave any reply, Peter prayed to God in the prison. During prayer, a mystical light illumined the prison, and the Lord Jesus appeared to him as a twelve-year-old boy, shining brighter than the sun, so that it was not possible to look at Him directly. The Lord was clothed in a white tunic, rent down the front from top to bottom. He clutched the garment around Himself with His hands, as though to hide His nakedness. At this, St. Peter was in great fear and horror. He cried out: "Who, O Savior, has torn Thy garment?" The Lord replied: "The madman Arius. He tore it, for he alienated My people from Me, whom I acquired by My Blood. Be careful not to receive him in communion with the Church, for he has cunning and diabolical thoughts against Me and My people." At this, St. Peter sent word to his priests, Achilles and Alexander, that he could not receive Arius's petition, for it was false and cunning; and the saint pronounced a curse on Arius in both worlds. He also prophesied that Achilles, and then Alexander, would succeed him as patriarch, and so it was.
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 2):
# How God caused a deep sleep to fall on Adam and took one of his ribs;
# How the Lord God made the woman Eve from Adam's rib and brought her to Adam;
# How this is the foundation and reason for the mysterious attraction and unity of husband and wife.
! HOMILY
! on the apportionment of functions and callings
And He gave some, apostles; and some, prophets; and some, evangelists; and some, pastors and teachers (Ephesians 4:11).
As the various organs in a man's body have different functions but all work in harmony for the good of the entire body, so the Lord instituted various organs with different functions in the Church, which is His Body. In the first place came the apostles, to whom was given not just one honor, but rather all honors; not one function, but rather all functions; not just one gift, but rather all the gifts of grace. The apostles were simultaneously apostles, prophets, evangelists, pastors and teachers. The apostolic calling is not given anymore. Of the Great Apostles, there were twelve, the thirteenth being the Apostle Paul; and of the Lesser Apostles, there were seventy. The prophets are those who received the gift of prophecy from the Holy Spirit. Here, it is not the Old Testament prophets that are being discussed, but rather the New Testament prophets (Acts 11:27, 21:10, 13:1). The prophets were, and still are, prophets regardless of their class and position. The evangelists were firstly those who wrote the Gospels, and then missionaries who spread Christ's teaching among the unbelievers and, finally, the interpreters of Holy Scripture who in their writings presented the Christian truth for each and all. Pastors and teachers--these are actually one and the same calling, for it is difficult to imagine a pastor who is not a teacher at the same time. The pastors are limited to a certain place and a certain number of faithful whom they lead to salvation, and they govern the Church of God. So, the Lord ordained all of this through His holy apostles. Blessed is he who knows his function and gift received from the Spirit, and who serves according to his designation to the end. Just as the Holy Spirit now apportions His gifts, so the Lord, in His time, will apportion rewards.
O Lord, Holy Spirit, true God, help us to use Thy gifts to the end of our lives in humility, for the well-being of Christ's Church and for our eternal salvation.
To Thee be glory and praise forever. Amen.
! THE VENERABLE ALYPIUS THE STYLITE
Alypius was born in Hadrianopolis, a city in Paphlagonia. From childhood, he was dedicated to the service of God. He served as a deacon with Bishop Theodore in the church in that city. But, desirous of a life of solitude, prayer and meditation, Alypius withdrew to a Greek cemetery outside the city. This was a cemetery from which people fled in terror, because of frequent demonic visions seen there. Alypius set up a cross in the cemetery and built a church in honor of St. Euphemia, who had appeared to him in a dream. Beside the church, he built a tall pillar, climbed on top of it, and spent fifty-three years there in fasting and prayer. Neither the mockery of men nor the evil of the demons was able to drive him away or cause him to waver in his intention. Alypius especially endured countless assaults from demons. Not only did the demons try to terrorize him with apparitions, but stoned him as well, and gave him no peace, day or night, for a long time. The courageous Alypius protected himself from the power of the demons by the sign of the Cross and the name of Jesus. Finally the demons were defeated and fled from him. Men began to revere him and come to him for prayer, consolation, instruction and healing. Two monasteries were built beside his pillar, one on one side for men and one on the other for women. His mother and sister lived in the women's monastery. St. Alypius guided the monks and nuns from his pillar, by example and words. He shone like the sun in the heavens for everyone, showing them the way to salvation. This God-pleaser had so much grace that he was often illuminated in heavenly light, and a pillar of this light extended to the heavens above him. St. Alypius was a wonderful and mighty miracle-worker in life, and also after his repose. He lived for one hundred years and entered into rest in the year 640 A.D., during the reign of Emperor Heraclius. His head is preserved in the Monastery of Koutloumousiou on the Holy Mountain.
! THE VENERABLE JAMES THE SOLITARY
James was from Syria. He was a disciple of St. Maron (February 14) and a contemporary of St. Simeon the Stylite. He lived a life of asceticism under the open sky and ate soaked lentils. He performed great miracles, even raising the dead in the name of Christ. Emperor Leo asked him for his thoughts on the Council of Chalcedon [451]. He entered peacefully into rest in the year 457 A.D.
! THE VENERABLE STYLIANUS
Stylianus was from Paphlagonia and a fellow countryman and contemporary of St. Alypius. He had a great love for the Lord Jesus, and because of this love gave himself up to great ascetic struggle. He renounced everything in order to have an undivided love for his Lord. Before his repose, angels came to take his soul, and his face shone like the sun. Stylianus was a great miracle-worker before and after his death. He especially helps sick children and childless couples.
! THE VENERABLE NICON, THE PREACHER OF REPENTANCE
Nicon was born in Armenia. Awakened by the words of the Lord, //Every one that hath forsaken … father or mother … shall receive an hundredfold, and shall inherit everlasting life// (Matthew 19:29), Nicon indeed forsook all for the sake of Christ, and went to a monastery, where he was tonsured a monk. When he was perfected in all virtues, he left the monastery and went to preach the Gospel among the people. He ceaselessly cried out, "Repent!" for which he was also called the "the Preacher of Repentance." As a preacher, he visited all of Anatolia and the Peloponnese. He worked miracles by prayer in the name of Christ and peacefully went to his beloved Lord. He reposed in Sparta in the year 998 A.D.
! SAINT INNOCENT OF IRKUTSK, THE WONDERWORKER
He reposed in the year 1731 A.D., and his miracle-working relics were uncovered in 1804 A.D.
! HYMN OF PRAISE
!
! THE VENERABLE ALYPIUS THE STYLITE
Loosed of all things, loosed from the world:
From life's concerns and from the oppression of the passions.
Complete devotion to prayer and divine contemplation
Brought glory to St. Alypius.
On a pillar tall, he raised himself:
The farther from earth, the closer to God!
Complete devotion to prayer and divine contemplation
Brought glory to St. Alypius.
Let thunders resound, they will not strike,
The Lord directs and moves the lightning.
Utter devotion to prayer and divine contemplation
Brought glory to St. Alypius.
In prayer, he shone as the bright sun,
And his name, through the centuries, distinctly remains.
His meditations on God have made him immortal:
Wondrous Alypius the God-pleaser.
Now in the heavens a great pillar shines,
Which is the radiant soul of St. Alypius.
And now he is wholly devoted to prayer for us--
Alypius the Stylite, both yesterday and today.
Even now, evil spirits flee him,
And we rejoice in St. Alypius.
! REFLECTION
Many learned pagans entered the Church of Christ and were baptized precisely because the Church preached immortal life as a proven fact and not as a speculation of human reason. St. Clement of Rome had studied all of Greek philosophy, yet his soul remained unsatisfied and empty. As a young man of twenty-four, he desired to know with all his soul if there were another, better life than this. Philosophy gave him only the thoughts of various men, but no real proof. He mourned for his lost parents and brothers and was tormented constantly by not knowing if he would be able to see them in some other life. The All-seeing God directed his footsteps and he met a man who spoke to him of Christians, and of their belief in life beyond the grave. This so stirred the young Clement that he immediately moved from Rome to Judea so that there, in the cradle of the Christian Faith itself, he might come to uncontestable knowledge regarding life beyond the grave. When he heard the preaching of the Apostle Peter, based entirely on Christ's Resurrection from the dead, Clement despised the conjectures of philosophy and sincerely adopted the Christian Faith. He was baptized, and dedicated himself totally to the service of the Church of God. As it was then, so it is today--he who has a strong faith in the resurrected Christ, and a clear knowledge of life beyond death and judgment, easily decides to pay the price for entry into that life; that is, the fulfilling of all God's commandments.
! CONTEMPLATION
Contemplate the wondrous creation of the world (Genesis 2):
# How the Lord God created man, and woman from man;
# How Adam and Eve were naked and were not ashamed, for they did not yet know sin.
! HOMILY
! on the purpose of the apportionment of gifts, ministries and callings
… For the perfecting of the saints, for the work of the ministry, for the edifying of the body of Christ (Ephesians 4:12).
This is why the Holy Spirit apportioned the gifts, and made some apostles, others prophets, others evangelists, and others pastors and teachers: that //the saints//, the faithful Christians, become perfected. As in a household, honor and service are apportioned, and there is honor and service appropriate to parents, honor and service appropriate to adult sons and daughters, and honor and service appropriate to young children and servants--yet all serve together for the benefit of one another; so it is in God's house, the Holy Church: with every honor is a corresponding service, and the services of each are beneficial to all. Thus //the body of Christ,// God's Holy Church, is gradually and wisely built. Each of the faithful, assisted by the others, grows and develops as a member of this body; grows and develops in holiness and purity, and in a corresponding measure and proportion to the whole great body. The whole body, from the beginning to the end of time--especially from the Incarnation of God the Word on earth until the Dread Judgment--is the Holy Church of God. The body is worthy of immortality, the building is worthy of God. The eye of man cannot see it from end to end, nor can the mind of man comprehend it. The building is of chosen materials: living stones, eyes and hearts, without roughness or ugliness, without corruption or change. Everything is in its place, everything is most beautiful in its entirety and in its parts. Here, brethren, is the goal of our journey! Here is the meaning of our burning in the furnace of suffering! Here is our life, better than all our plans and lovelier than all our desires.
O Lord Jesus, our man-loving Lord, do not cast us away as inferior material, but polish us and build us into Thine immortal body.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR JAMES THE PERSIAN
James was born of Christian parents in the Persian city of Elapa (or Vilat), brought up in the Christian Faith and married to a Christian woman. The Persian King Yezdegeherd took a liking to James for his talents and skillfulness, and made him a noble at his court. Flattered by the king, James was deluded and began offering sacrifices to the idols that the king worshiped. His mother and wife learned of this, and wrote him a letter of reproach in which they grieved over him as an apostate and one who was spiritually dead. Yet, at the end of the letter, they begged him to repent and return to Christ. Moved by this letter, James repented bitterly, and courageously confessed his faith in Christ the Lord to the king. Angered, the king condemned him to death by a special torture: his entire body was to be cut up, piece by piece, until he breathed his last. The executioners fulfilled this command of the wicked king to the letter, and cut off James's fingers, then his toes, his legs and arms, his shoulders, and finally his head. During every cutting, the repentant martyr gave thanks to God. A sweet-smelling fragrance, as of a cypress, emanated from the wounds. Thus, this wonderful man repented of his sin and presented his soul to Christ his God in the Kingdom of Heaven. James suffered in about the year 400 A.D. His head is to be found in Rome and a part of his relics in Portugal, where he is commemorated on May 22.
! THE SEVENTEEN VENERABLE MARTYRS OF INDIA
They were Christian monks who suffered at the hands of the Indian King Abenner. Enraged at Elder Barlaam because he baptized his son, Ioasaph, King Abenner sent men in pursuit of him. The pursuers did not capture Barlaam, but captured seventeen other monks and brought them to the king. The king condemned them to death and his men plucked out their eyes, severed their tongues, broke their arms and legs, and then beheaded them. Even so, the Christian Faith in the Kingdom of India was strengthened all the more by the blood of these knights of Christ.
! THE VENERABLE ROMANUS THE WONDERWORKER
Romanus lived a life of asceticism in the vicinity of Antioch. He never kindled a fire or lit a candle in his cell. He reposed peacefully, and was a miracle-worker both during his life and after his death. He intercedes for barren women when they offer prayer to him.
! THE VENERABLE PINUPHRIUS
Pinuphrius was a contemporary of St. John Cassian (February 29) and a great Egyptian ascetic. He lived in the fourth century and carried out his life of asceticism in various places, always fleeing the praise of men. He had many disciples, who strove to imitate the lofty example of their teacher.
! THE VENERABLE NATHANIEL
Nathaniel was a Nitrian monk. He prayed to God both day and night, and was enlightened by the contemplation of divine matters. He neither left his cell nor even crossed the threshold for a full thirty-eight years. He entered into rest in the Lord in the second half of the sixth century.
! HYMN OF PRAISE
! THE HOLY MARTYR JAMES THE PERSIAN
The Creator does not lose repentant souls:
He loves a true penitent the most.
James denied Christ the Living God
For the sake of the godless emperor, his flatterer.
His mother reproached him as did his wife:
"All the riches of the earth are as transient as foam."
James repented, and bitterly repented,
Then openly spoke about what he had kept secret:
"A Christian I was, and again I am a Christian:
Foolish and weak are your idols!"
This James said, as he stood before the emperor;
This he said openly and remained true to it.
The emperor took all his imperial gifts from him,
And clothed the wondrous James with torture.
James was reddened with wounds and blood,
And like eagles on a carcass, men attacked him!
They dismembered the body of Christ's hero,
And cut St. James into bits.
Now James prays before God in Paradise
That all Christians overcome all attacks.
! REFLECTION
When the executioners severed the thumb of St. James's right hand, he said: "Even a vine is pruned in this manner, so that in time a young branch may grow." At the severing of his second finger, he said: "Receive also, O Lord, the second branch of Thy sowing." At the severing of his third finger, he said: "I bless the Father, the Son and the Holy Spirit." At the severing of his fourth finger, he said: "O Thou who acceptest the praise of the four beasts [symbols of the four evangelists], accept the suffering of the fourth finger." At the severing of the fifth finger, he said: "May my rejoicing be fulfilled as that of the five wise virgins at the wedding feast." During the severing of the sixth finger, he said: "Thanks be to Thee, O Lord, Who at the sixth hour stretched out Thy most pure arms on the Cross, that Thou hast made me worthy to offer Thee my sixth finger." At the severing of the seventh finger, he said: "Like David who praised Thee seven times daily, I praise Thee through the seventh finger severed for Thy sake." At the severing of the eighth finger, he said: "On the eighth day Thou Thyself, O Lord, wast circumcised." At the severing of the ninth finger, he said: "At the ninth hour, Thou didst commend Thy spirit into the hands of Thy Father, O my Christ, and I offer Thee thanks during the suffering of my ninth finger." At the severing of the tenth finger, he said: "On a ten-stringed harp I sing to Thee, O God, and thank Thee that Thou hast made me worthy to endure the severing of the ten fingers of my two hands, for the Ten Commandments written on two tablets." Oh, what wonderful faith and love! Oh, the noble soul of this knight of Christ!
! CONTEMPLATION
Contemplate the wonderful Paradise of God (Genesis 2):
# How most beautiful was Paradise, both within and without;
# How all living things in Paradise were unconditionally submissive to man and man to God;
# How most beautiful were the first man and woman in Paradise, conscious of God's presence and of God's authority.
! HOMILY
! on the perfect man
… Till we all come in the unity of the Faith, and of the knowledge of the Son of God, unto a perfect man, unto the measure of the stature of the fulness of Christ (Ephesians 4:13).
The unity of the Faith, brethren, and the knowledge of the Son of God, the Lord Jesus Christ the Savior, unites two men into one man, a thousand people into one man, and many millions of people into one man. The unity of Faith in Christ the Lord, and the true Orthodox knowledge of Christ the Lord, unites men more strongly than blood, more strongly than language, more strongly than all external circumstances and material bonds. When many souls think as one and the same, will as one and the same, and desire as one and the same, then these many souls are as one soul, one great and mighty soul. Physical differences in this case mean little, and are hardly to be taken into consideration. Thus, the same souls are built up into //a perfect man, unto the measure of the stature of the fulness of Christ.//The parts of the perfect whole are themselves perfect. Every Christian soul is a part of the //perfect man//. Christ is the Perfect Man of Whom the Church is the Mystical Body. He fills everyone who believes in Him with Himself, according to the //measure of the stature// of each. He is the fullness beyond all fullness, the living fount that flows and fills every worthy space. Inasmuch as a man empties himself of everything that is not of Christ, Christ will enter into him and fill him accordingly.
O my brethren, deep humility is needed in addition to strong faith, so that the Living Water may be poured into us. Even in nature, we see that water easily irrigates the lowlands. So, the more lowly our humiliation is before the Lord Jesus, the more willingly He pours Himself into us, irrigates us with His life-giving Self, and fills us as His vessel with the fullness of His immortality.
O Lord Jesus, Thou fullness of life, wisdom, beauty and sweetness, help us to humble ourselves before Thy Divine Majesty, that we may be made worthy of Thy visitation.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MARTYR STEPHEN THE NEW
As at one time Hannah, the mother of Samuel, prayed to God to give her a son, so did Anna, the mother of Stephen. Praying thus in the Church of Blachernae before the icon of the Most-holy Theotokos, a light sleep overcame her, and she saw the Most-holy Virgin as radiant as the sun, and heard a voice from the icon: "Woman, depart in peace. In accordance with your prayer, you have a son in your womb." Anna indeed conceived and gave birth to a son, the holy Stephen. At sixteen, Stephen received the monastic tonsure on Mount Auxentius near Constantinople, from the elder John who also taught him divine wisdom and asceticism. When John entered into rest in the Lord, Stephen remained on the mountain in a life of strict asceticism, taking upon himself labor upon labor. His holiness attracted many disciples to him. When Emperor Constantine Copronymus was persecuting icons more ferociously than his foul father, Leo the Isaurian, Stephen showed himself a zealous defender of the veneration of holy icons. The demented emperor accepted various obscene slanders against Stephen and personally plotted intrigues to break Stephen and get him out of the way. Stephen was banished to the island of Proconnesus, then taken to Constantinople, chained and cast into prison, where he was met by 342 monks, brought from all over and imprisoned for their veneration of the icons. There, in prison, they carried out the whole church typicon as in a monastery. Then the wicked emperor condemned Stephen to death. The saint foresaw his death forty days in advance, and asked forgiveness of the brethren. The emperor's servants dragged him from prison and, beating and pulling him, dragged him through the streets of Constantinople calling upon all those loyal to the emperor to stone this "enemy of the emperor." One of the heretics struck the saint on the head with a piece of wood, and the saint gave up his soul. As St. Stephen the Protomartyr suffered at the hands of the Jews, so this Stephen suffered at the hands of the iconoclastic heretics. This glorious soldier of Christ suffered in the year 767 A.D. at the age of fifty-three, and was crowned with unfading glory.
! THE NEW MARTYR CHRISTOS
Christos was an Albanian Christian living in Constantinople and a gardener by trade. As he was selling his vegetables one day, he offended a Turk, who then slandered him before a judge, saying that Christos had promised to become a Moslem and then recanted. After interrogation, he was chained and cast into prison. In prison, someone offered him food, which Christos refused, saying: "It is better that I appear before my Christ hungry." After that, he pulled out some money he had concealed under his belt and gave it to one of his fellow prisoners, requesting that the money be used for several Liturgies to be celebrated for his soul. He was beheaded by the Turks in the year 1748 A.D., and was glorified forever in the Kingdom of Christ God.
! THE VENERABLE ANNA
Anna was a woman of noble birth who, after her husband's death, was tonsured into monasticism by St. Stephen the New. Emperor Constantine Copronymus urged her to say that she had engaged in illicit physical relations with St. Stephen, in order to humiliate him before the people. However, this holy woman refused to join in the emperor's intrigue against the saint, whom she venerated as her spiritual father. For that, she was whipped and then cast into prison, where she gave up her holy soul to God.
! THE HOLY AND DEVOUT EMPEROR MAURICE
Maurice was murdered with his six sons by Emperor Phocas in the year 602 A.D. (see "Reflection'' below).
! HYMN OF PRAISE
! TH! E! VENERABLE MARTYR STEPHEN THE NEW
Of the same name as the first Stephen,
Stephen the New gave his life in battle, too.
The proud heretical emperor, coarse power incarnate,
Was armed to the teeth with earthly weapons.
Stephen's weapon was power not of a physical source,
A spiritual weapon, heavenly truth.
The emperor had soldiers, defenders of falsehood,
While Stephen was set at ease by the invisible God.
Serene as heaven, Stephen awaited torture,
Death and eternal life beyond this age.
While in his rage, the emperor roared
And signed the order for death and torment for the righteous man.
Stephen was not dismayed, though beaten and pressed,
Bound as he was by spirit and prayer to the heavens.
The emperor, stronger than the saint's body, crushed his body;
Yet the saint was stronger in spirit, and finished in victory.
O Saint Stephen, spiritual knight,
Help us avoid the nets of the devil,
And to venerate the holy icons with honor,
And that we might always follow your wondrous example.
! REFLECTION
Reading the examples of perseverance in the Faith and generosity of the saints of God, we also become persevering in the Faith and generous. When Copronymus's men urged St. Stephen to reject the veneration of icons to please the iconoclastic emperor, Stephen extended his hand, clenched his fist and said: "If I had in myself only a fist full of blood, I would shed it for the icon of Christ."
Emperor Maurice had six sons of which the sixth and youngest was not yet weaned. For this youngest son, the emperor kept a special wet-nurse at court who fed it. A terrible fate came upon Emperor Maurice: Phocas ousted him from the throne and condemned him to death together with all of his six sons. Before Maurice's eyes, his sons were slain, one after the other. When the wet-nurse had to hand over the emperor's sixth son to be slain, she genuinely felt sorrow over the fate of the unfortunate emperor and his children, and in a moment, decided to save the life of at least one of the emperor's sons. So, when they sought the emperor's son from her breast, she gave them her own young son and he was beheaded. Finally, the Emperor Maurice was beheaded. The emperor's youngest son grew up believing his wet-nurse to be his mother. However, when the wet-nurse revealed the secret to him, he became very serious, then resolutely left the world and withdrew to Mount Sinai, where he was tonsured a monk and dedicated himself to God. He did this to requite that innocent young child who was put to death in his place.
! CONTEMPLATION
Contemplate God's wonderful Paradise (Genesis 2):
# How it was a kingdom of innocence, purity and righteousness;
# How there was not a trace of sickness or death, for there was not even a thought of sin.
! HOMILY
! on how the faithful must grow
But speaking the truth in love, may grow up into Him in all things, which is the Head, even Christ (Ephesians 4:15).
Brethren, here is all that is asked of us on this earthly journey: that we hold to the truth and that we live in love. Truth is revealed by Christ the Lord, and the example of love is given in Christ the Lord. Neither can one come to the truth apart from Christ the Lord nor find an example of true love apart from Him. Seeing this only true path to light and salvation in the confusion of many false paths, the Apostle Paul reminds us beforehand: //That we henceforth be no more children, tossed to and fro, and carried about with every wind of doctrine// (Ephesians 4:14). Only God can reveal the truth; only God can show true love. One man can know more than another man, but only God can reveal the truth. Thoughts come to man like the wind, and illusions can seem to be truth to him. Deluded by his own thoughts, one man deludes another; deceived by illusions, one man then deceives another; but truth is in God and of God. Brethren, Christ is our whole truth and our whole love. When we think of Christ, we think of truth; when we act according to Christ, we act correctly; when we love Christ, we love Love itself. By Christ we live, by Christ we grow, by Christ we become immortal and are glorified. He is our Head--not merely the titular head of a group, but the actual head of a living body, of which we are members. Adhering to truth and love, we are made worthy to dwell eternally in this Body of Christ.
O Lord Christ, our most wonderful truth and our endearing love, enter into us and receive us into Thyself.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR PARAMON AND 370 OTHERS WITH HIM
In Asian Bithynia, Governor Aquilinus fiercely persecuted Christians. Once, he captured 370 Christians, brought them with him, and bound them at a place where there was an idolatrous temple of the god Poseidon. Here, the wicked governor tried to force them to worship and offer sacrifice to the idol. Even though the governor threatened death for anyone who did not obey his order, not a single Christian submitted. Just then, a respected man by the name of Paramon passed along the road beside the temple. He stopped beside the masses of shackled people and learned what was happening. Then he cried out: "Oh, how many innocent righteous ones does this foul governor desire to slaughter, because they will not worship his dead and mute idols?" Paramon then continued on his way, and the infuriated governor sent his servants to slay him. The servants caught up to Paramon, seized him and pierced his tongue with a thorn, then stripped him naked and stabbed his entire body. Holy Paramon, with prayer in his heart, gave up his soul to God. After that, the 370 martyrs, great as sons of God and innocent as lambs, were beheaded and thus entered into the Immortal Kingdom of Christ the Lord. They suffered in the year 250 A.D.
! THE VENERABLE ACACIUS OF SINAI
In his famous book, //The Ladder,// St. John Climacus relates the life of this saint. The young Acacius was a novice under an evil elder in the monastery on Sinai. The irascible elder daily reproached and insulted Acacius and often beat, tormented and maltreated him in every possible way. However, Acacius did not complain but endured this all patiently, with the assurance that it was beneficial for his salvation. Whenever anyone asked him how he was doing, he replied: "Well, as before the Lord God!" After nine years of obedience and torment, Acacius died. The elder buried him and then expressed sorrow to another elder saying: "Acacius, my disciple died." "I do not believe it," replied the holy elder, "Acacius did not die." Then both of them went to the grave of the dead man and that holy elder cried out: "Brother Acacius, did you die?" Acacius, obedient even after death replied: "Father, I have not died, for it is impossible for an obedient one to die." Then, the evil elder repented and shut himself in a cell near Acacius's grave where, in repentance and prayer, he spent the remainder of his life.
! THE HOLY MARTYR DIONYSIUS, BISHOP OF CORINTH
He was an eminent pastor and teacher. He was beheaded for Christ in the year 182 A.D.
! SAINT TIRIDATES, KING OF ARMENIA
Tiridates was a contemporary of Diocletian. At first, he furiously persecuted Christians, but God's punishment befell him and he went insane and became like a beast, as had happened to King Nebuchadnezzar. Tiridates was miraculously healed of his insanity by St. Gregory of Armenia (September 30). From then until his death, Tiridates spent his life in repentance and devotion. He died peacefully in the fourth century.
! THE HOLY MARTYR APOLLONIUS
Apollonius was a Roman senator. Accused because of his faith in Christ, he confessed it before the entire senate, for which he was beheaded with the sword in Rome in the year 186 A.D.
! HYMN OF PRAISE
!
! THE VENERABLE ACACIUS OF SINAI
The elder summoned his novice:
"Brother Acacius, where are you?"
The elder called once more:
"Acacius, are you dead?"
"No, Father, I am not dead,"
The monk humbly replied,
"For him who faithfully obeys,
There is no death."
The irascible elder was amazed,
Amazed, and began to weep.
The elder bitterly wept,
And repented of his wickedness.
Why does the cruel elder repent?
Truly, he has a reason.
Into the wilderness, the sinner went
To atone for his evil.
Acacius, the wondrous monk,
By obedience, saved his soul;
And his soul now rejoices,
And his name is glorified.
! REFLECTION
God's punishment often befalls sinners immediately after the sin, that the sinners may fear and the righteous be encouraged. However, sometimes it falls much later, suddenly and unexpectedly, that sinners may know that God forgets nothing. Dathan and Abiram were swallowed up by the earth immediately after their sin, but King Balthazzar saw the hand that wrote his death sentence when he felt most fortunate at a banquet among his friends and admirers.
A gravely ill soldier was brought to St. Stephen the New to be healed by him through prayer. Stephen told him to venerate the icons of Christ and the Holy Theotokos. The solider did this and was immediately restored to health, and this miracle was spoken of everywhere. Hearing of this, the iconoclastic Emperor Constantine Copronymus summoned this soldier and questioned him. When the soldier confessed that he received healing from the holy icons, the emperor reproached him with fury for venerating them. The frightened soldier repudiated the veneration of icons before the emperor and grew ashamed of his faith in them. When the soldier left the court and mounted his horse, the horse went wild under him, threw him off and trampled him with its hooves until he gave up his soul. Behold: a punishment immediately following sin.
King Tiridates, a persecutor of Christians, threw St. Gregory into a pit and killed thirty-seven holy nuns, but no punishment befell him. Later, when the king and his companions went hunting for pleasure, he and his entourage were seized by sudden madness. The reason for his madness and the means to restore him were revealed to his pious sister in a dream. St. Gregory was taken out of the pit, and by his prayers King Tiridates became healthy, repented and was baptized.
Punishment sometimes quickly follows sin as the day follows the night, yet sometimes slowly, as year follows year. But it never fails to come, except where repentance takes the place of punishment.
! CONTEMPLATION
Contemplate God's wonderful Paradise (Genesis 2):
# How God adorned Paradise with every kind of tree pleasant to the sight and good for food;
# How God planted the Tree of Life in the midst of Paradise;
# How God only forbade Adam to eat of the Tree of the Knowledge of Good and Evil.
! HOMILY
! on the Church's compact structure, similar to a body
From whom the whole body fitly joined together and compacted by that which every joint supplieth, according to the effectual working in the measure of every part (Ephesians 4:16).
This word, brethren, is on the spiritual body, God's holy Church. From Him, that is, from Christ, //the whole body is fitly joined together and compacted//. The most wise Apostle cannot find a better comparison for the Church than the human body. What the head is to the human body, so is Christ the Lord to the body of the Church. From the head, the nerves spread through all parts of the body, and through the nerves, all the parts of the body perceive, feel and move; and their life lies in this perception, feeling and movement. It can be said that the head, through the brain and the nerves, is present in every part of the body. If the head is cut off, every part of the body becomes dead in an instant. Christ is present in every part of the Church, in every faithful member of it. Through Him, each of the faithful perceives the spiritual kingdom, feels love and moves aright toward God. From Him, every member receives strength //according to the effectual working in the measure,// that is, according to function and gift. The Lord gives this strength directly, by contact, by touch, by His personal presence. Love is a wonderful bond that binds Christ to the faithful, the faithful to Christ and the faithful to one another. Brethren, what happens to one part of the body when it is torn away from the nerves that link it to the head? It becomes inactive, insensitive and motionless: dead. This also happens with every member of the Church who leaves the structure of the Church, and thus severs his tie with the Head of the Church. Brethren, may God preserve us from this calamity!
O Lord Jesus, the Source of life and love, do not allow any dark power, within us or without us, to separate us from Thee and Thy Body, Thy Holy Church that Thou hast purchased with Thy precious blood.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR ACEPSIMAS, BISHOP OF NAESON, AND OTHERS WITH HIM
The eighty-year-old Acepsimas, filled with every Christian virtue, was sitting one day in his home with guests. Just then a child, filled with the Spirit of God, ran up to the aged bishop, kissed him on the head and said: "Blessed is this head, for it will receive suffering for Christ." This prophecy was soon fulfilled. King Sapor raised a bitter persecution of Christians throughout Persia, and St. Acepsimas was apprehended. He was brought before a prince who was also a pagan priest. As the bishop was arrested and bound, a member of his household asked him what should be done with his home if he were martyred. The saint replied: "It is no longer my home. I am going to a home on high and will not return." After prolonged interrogation he was thrown into prison. The following day Joseph, a seventy-year-old presbyter, and Aithalas, a deacon, were also imprisoned. After three years of imprisonment and many tortures, Acepsimas was beheaded. Joseph and Aithalas were buried up to their waists in the ground, and the soulless pagans forced Christians to stone them. That night, by God's providence, Joseph's body disappeared, and a myrtle tree grew over Aithalas's body that healed every kind of disease and pain of men. This tree stood for five years before the wicked and envious pagans cut it down. These soldiers of Christ suffered in Persia in the fourth century, during the time of the pagan King Sapor.
! THE HOLY GREAT-MARTYR GEORGE
On this day we commemorate the translation of the relics of St. George, from Nicomedia, where he suffered at the time of Emperor Diocletian, to the city of Lydda in Palestine. The suffering of this wonderful saint is described on April 23. Anticipating his martyrdom, St. George begged his servant to take his relics to Palestine, where his mother had been born, and where he had distributed his large estate to the poor. The servant did so. During the reign of Emperor Constantine, pious Christians built a beautiful church to St. George in Lydda and, upon the consecration of that church, the relics of the saint were interred there. Innumerable miracles have occurred from these miracle-working relics of St. George, the great-martyr of Christ.
! THE VENERABLE ELIAS THE EGYPTIAN
Elias labored in asceticism near Antinoe, the principle city of the Thebaid. For seventy years, he lived among the arid and inaccessible rocks of the desert. He ate only bread and dates and, in his youth, fasted for weeks at a time. He healed all manner of pains and ailments of the people. He eventually became very shaky in his old age, and entered into the joy of his Lord at the age of 110. Elias said: "Guard your mind from evil thoughts concerning your neighbors, knowing that the demons put them there, aiming to blind you to your own sins and prevent you from directing yourself toward God."
! HYMN OF PRAISE
!
! THE HOLY GREAT-MARTYR GEORGE
O George the martyr,
O George the victor:
Through suffering, you conquered,
And through death you have been glorified.
You held all things to be of less value
Than truth, O George.
You gave up earthly power and honor,
And stood beside the Living Christ.
O George the martyr,
O George the victor:
Pierced and broken with horrible tortures,
You were sustained by God's hand.
All your pains were as nothing--
By the power of God's mighty hand.
We all bow down before you
And glorify your name.
O Martyr George,
O Victor George:
Have mercy on us now,
By your prayers, protect us
Before the throne of Christ God,
Our Almighty Savior;
And pray that we not fear torture,
And that, by patience, we conquer!
! REFLECTION
Among the countless miracles of St. George, this one is recorded: On the island of Mytilene there was a church dedicated to St. George the Great-martyr and Trophy-bearer. All the inhabitants of the island would come to this church on the annual feast of their patron saint. Knowing of this, the Saracens of Crete once attacked this island on its feast day, pillaged the island, and enslaved its inhabitants, taking many of them back to Crete. Among the enslaved was a handsome young man, whom the pirates gave to their prince. The prince made him his servant. The young man's parents were overwhelmed with great sorrow for their son. After a year had passed and St. George's day came again, the grieving parents, following the ancient custom, prepared a table and entertained many guests. Remembering her son, the poor mother went to the icon of the saint, fell to the ground and began to pray that he somehow deliver her son from slavery. The mother then returned to her guests at the table. The host raised a glass and drank a toast to the honor of St. George. Just then their son appeared among them, holding a decanter of wine in his hand. In amazement and fear, they asked him how he had managed to come to them. He replied that as he was about to serve his master wine in Crete, a knight on horseback appeared before him, pulled him up onto the horse and carried him instantly to his parents' home. All were amazed, and glorified God and His wonderful saint, George the Commander and Victory-bearer.
! CONTEMPLATION
Contemplate the wondrous deliverance of Paul and Silas from prison (Acts 16):
# How these holy apostles were cast into the inner prison and their feet were placed in stocks;
# How they were at prayer, praising God at midnight;
# How the earth quaked, the chains fell off those who were bound, and the doors of the prison were opened.
! HOMILY
! on Christ as the Head of all the saints
That … He might gather together in one all things in Christ, both which are in heaven, and which are on earth (Ephesians 1:10).
Sin causes panic and confusion. A man drowning in sin and vice is like a chicken with its head cut off which, dying, thrashes about convulsively and rushes to and fro. Before Christ's Incarnation, the whole pagan world was a confused, headless body, dying in convulsions. Christ joined the severed head with the benighted trunk and brought the body of the human race back to life. He is the Head of the heavenly host, and He has always been. And, as the Creating Word of God, He was from the beginning the Head of everything created in the visible world, especially the human race. But sin, like a sword, separated the sinful trunk of Adam from his Head. However, the Lord reconciled heaven and earth in His Incarnation, bringing heaven to earth, and raising earth to heaven, and establishing all of it under His mind, under His headship. Through Christ we are reconciled with the Holy Trinity and the angels of God, with one another, and with the created nature around us. The lost Head has been found and all has been harmoniously arranged beneath it. The Apostle says: //We have the mind of Christ// (I Corinthians 2:16). As the head is to the physical man, so the mind is to the spiritual inner man. Therefore, if we are Christ's, we must think and judge in all things according to our Head, Jesus Christ, and Him alone. Thinking and judging by Him, we will perceive ourselves as organs of one body that includes other men and the angels: one body, whose Head is Christ. Hence, our love for God is enkindled, and our faith strengthened, and our hope enlightened. Only a sleeping body feels no link with its head. Let us awaken, my brethren, let us awaken while we have time.
O Lord Jesus Christ, our All-wise Head, unite us with Thyself.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE ANDREW THE FIRST-CALLED
Andrew, the son of Jonah and brother of Peter, was born in Bethsaida and was a fisherman by trade. At first he was a disciple of St. John the Baptist, but when St. John pointed to the Lord Jesus, saying, Behold the Lamb of God! (John 1:36), Andrew left his first teacher and followed Christ. Then, Andrew brought his brother Peter to the Lord. Following the descent of the Holy Spirit, it fell by lot to the first apostle of Christ, St. Andrew, to preach the Gospel in Byzantium and Thrace, then in the lands along the Danube and in Russia around the Black Sea, and finally in Epirus, Greece and the Peloponnese, where he suffered. In Byzantium, he appointed St. Stachys as its first bishop; in Kiev, he planted a Cross on a high place and prophesied a bright Christian future for the Russian people; throughout Thrace, Epirus, Greece and the Peloponnese, he converted multitudes of people to the Faith and ordained bishops and priests for them. In the city of Patras, he performed many miracles in the name of Christ, and won many over to the Lord. Among the new faithful were the brother and wife of the Proconsul Aegeates. Angered at this, Aegeates subjected St. Andrew to torture and then crucified him. While the apostle of Christ was still alive on the cross, he gave beneficial instructions to the Christians who had gathered around. The people wanted to take him down from the cross but he refused to let them. Then the apostle prayed to God and an extraordinary light encompassed him. This brilliant illumination lasted for half an hour, and when it disappeared, the apostle gave up his holy soul to God. Thus, the First-called Apostle, the first of the Twelve Great Apostles to know the Lord and follow Him, finished his earthly course. St. Andrew suffered for his Lord in the year 62 A.D. His relics were taken to Constantinople; his head was later taken to Rome, and one hand was taken to Moscow.
! SAINT FRUMENTIUS THE ENLIGHTENER OF ABYSSINIA
In the time of Emperor Constantine the Great, a learned man from Tyre by the name of Meropius traveled to India. He took with him two young Christians, the brothers Edesius and Frumentius. On the journey, their boat was shipwrecked in a storm off the coast of Abyssinia, and the wild Abyssinians killed everyone on the boat except these two brothers. They lived in Abyssinia for several years, and managed to enter into service in the imperial court of the Abyssinian king. Frumentius began to preach the Christian Faith, initially very cautiously, and was convinced that this land would be fruitful for such preaching. The two brothers then took ship: Edesius to Tyre, to his parents, and Frumentius to Alexandria, to Patriarch Athanasius the Great. Frumentius explained the situation in Abyssinia to the Patriarch, and sought pastors for those newly converted to the Faith. St. Athanasius consecrated Frumentius to the episcopacy. St. Frumentius returned to Abyssinia where, by his zeal and his miracles, he converted all of Abyssinia to the Christian Faith in his own lifetime. This great shepherd of the flock of Christ, the enlightener of Abyssinia, reposed peacefully in the year 370 A.D. and went to live in the Kingdom of his Lord.
! HYMN OF PRAISE
! THE HOLY APOSTLE ANDREW THE FIRST-CALLED
St. Andrew, by the Spirit enlightened,
And the First-called Apostle of Christ,
Proclaimed the Lord day after day,
And baptized the people with the Cross.
Like a gardener in his own garden,
Through village and town he walked,
And skillfully grafted wild trees,
Watering them with Living Water,
Until he came to the end of his days,
And saw the Cross awaiting him.
Joyful Andrew said to the Cross:
"Greetings, O Cross! God sanctified thee,
Christ sanctified thee with His body.
O Cross, be thou my resting place.
From the dust of the earth, take me;
To God in the highest, raise me up,
And let Christ take me from thee--
The very Christ Who, because of me, was crucified on thee."
Disciple of the holy Baptist,
And apostle of Christ the Savior
O Andrew, first-called star,
By your prayers, help us.
! REFLECTION
St. John Chrysostom says: "All is given to the Apostles." That is, all gifts, all power, all the fullness of grace which God gives to the faithful. We see this in the life of the great apostle, St. Andrew the First-called: He was an apostle, evangelist, prophet, pastor and teacher (Ephesians 4:11). As an evangelist, he carried the good news of the Gospel to the four corners of the earth; as a prophet, he prophesied the baptism of the Russian people and the greatness of Kiev as a city and a Christian center; as a pastor, he established and organized many churches; as a teacher, he tirelessly taught people right up to and during his crucifixion, when he taught from the cross until his last breath. In addition to this, he was a martyr, which is also according to the gift of the Holy Spirit, and is not given to everyone. And so we see in this apostle, as in the others, the fullness of the grace of the Spirit of God. And every great work that a follower of Christ performs must be ascribed to that grace. St. Frumentius testifies this to us. When he returned from Alexandria to Abyssinia as a consecrated bishop, he began to perform the greatest miracles, thus converting great masses of people to the Faith. Then the amazed king asked him: "So many years have you lived among us and never have we seen you perform such miracles. How is it that you do so now?" To this, the Blessed Frumentius replied to the emperor: "This is not my work, but the work of the grace of the priesthood." The saint then explained to the king how he had forsaken parents and marriage and the whole world for the sake of Christ, and how he had--by the laying on of hands by St. Athanasius--received the grace of the priesthood: miracle-working grace.
! CONTEMPLATION
Contemplate the spiritual fall of Adam and Eve (Genesis 3):
# How the serpent provoked greed and pride in Eve;
# How the greedy and proud woman transgressed God's command and ate of the Tree of Knowledge;
# How Eve sinned, not in the midst of poverty or need, but in an abundance of all things.
! HOMILY
! on the ignorance and hardheartedness of the pagans
The gentiles walk in the vanity of their mind, having the understanding darkened, being alienated from the life of God through the ignorance that is in them, because of the hardness of their heart (Ephesians 4:17-18).
What is vanity, my brethren? All that is seen outside God, cut off from God and done without the fear of God. What is vanity of the mind, my brethren? To live and interpret life, not by God's law but rather by one's own passing thoughts and desires. Whence, my brethren, does this evil come to men? From hardness of heart and from inner ignorance. What does hardness of heart mean, brethren? It means a heart empty of love for God and fear of God, and filled with lustfulness and fear of everything for the body's sake. Brethren, what is born of hardness of heart? Ignorance--complete ignorance of divine things, divine ways and divine laws; a heart completely dulled to spiritual life and spiritual thought. What is the final consequence, brethren, of hardness of heart and ignorance of divine truth? A darkened understanding and alienation from the Living God. Darkened understanding occurs when the mind of man becomes as darkened as the body, and the light that is in man becomes darkness. Oh, such a darkness! A darkened understanding is a darkened mind. A darkened mind knows the meaning of nothing, or denies the meaning of everything. In such a condition, a man is alienated from the life of God, and he withers and dies like a body part cut off from the body. Such are the pagans, such are the godless, and such are those of little faith or false Christians. But even dry wood, when it is watered with the life-creating water of Christ, comes to life and bursts forth in greenery. Even the dried-up pagan world was raised up and brought to life by Christ the Lord. How much more so would it be for repentant Christian sinners!
Let us look at ourselves, my brethren. Let us do so every day. Let us ask ourselves every day whether we have become darkened and alienated from the life of God because of our vanity. Soon there will be death, the end and judgment. The dry wood will be cast into the unquenchable fire.
O Lord Jesus, our Mind and our Life, help us to think with Thee, and to live with Thee.
To Thee be glory and praise forever. Amen.
! THE VENERABLE IOANNICIUS THE GREAT
The great spiritual light Ioannicius was born in the village of Marycata in the province of Bithynia, of his father Myritricius and his mother Anastasia. As a youth, he was a shepherd. While tending his sheep, he would often retreat into solitude and remain in prayer the whole day, encircling his flock with the sign of the Cross so that the flock would not stray and scatter. Later, he was taken into the army and displayed marvelous courage, particularly in the wars with the Bulgarians. Following his military service, Ioannicius withdrew to Mount Olympus in Asia Minor, where he was tonsured a monk and dedicated himself completely to asceticism until his repose in great old age. He lived in asceticism for over fifty years in various places, and received from God a truly abundant gift of wonderworking. He healed all sicknesses and pains, drove out demons, and tamed wild beasts. He especially had power over snakes, could cross over water as on dry land, could be invisible to men when he so desired, and could foretell future events. He was distinguished by overwhelming humility and meekness. His outward appearance was that of a giant--massive and powerful. He took an active part in the destiny of God's Church. During the iconoclast controversy, he was deceived at first, but later tore himself away from the iconoclast viewpoint and became an ardent champion of the veneration of icons. He had a great friendship with Patriarch Methodius of Constantinople. Ioannicius lived for ninety-four years and entered peacefully into rest in the Lord in the year 846 A.D. He was a great miracle-worker both during his life and after his death.
! THE HIEROMARTYRS NICANDER, BISHOP OF MYRA, AND HERMAS THE PRESBYTER
Nicander and Hermas were both ordained by Apostle Titus. They were both distinguished by their great zeal for the Faith and their great labors in winning pagans for Christ the Lord. Because of this, they were accused before a certain judge, Libanus, who subjected them to bitter tortures. They were stoned and dragged over stones; they were imprisoned, suffered hunger and endured many other tortures that no mortal man could endure without God's special help. The Lord appeared to them in various ways, and when they were thrown into a fiery furnace, the Lord sent His angel to cool the flames for them. Finally, they were buried alive by their cruel torturers. But in vain do men kill those whom the Lord gives life, and in vain do men dishonor those whom the Lord glorifies.
! HYMN OF PRAISE
! THE VENERABLE IOANNICIUS THE GREAT
Ioannicius served the people,
The people and the prince, with great zeal,
And then withdrew from all and everything
To serve the glory of the Heavenly King.
Ioannicius was a great soldier
For the holy Faith and for pure justice;
With tears and labors for half a century
He prayed and prayed to Christ.
Glorious Ioannicius was a rich man,
Rich and more than abundant with the power of heaven,
Leading the struggle, and chanting Psalms,
Against every dark and deceitful power.
The wondrous saint, Ioannicius,
Worked many wonderful miracles
In the name of Christ and by the power of the Cross,
Mightily destroying the demons' schemes.
O Saint of God, Ioannicius,
You found mercy in the Lord Jesus Christ:
Beg mercy also for us sinners,
And from the Holy Spirit, holy grace.
! REFLECTION
Mercy is the fruit of faith. Where there is true faith, there also is true mercy. St. Ioannicius was walking past a monastery one day. Among the many nuns, there were a mother and daughter. Evil spirits continually assaulted the young daughter with bodily temptations, and inflamed the passion of lust in her to such a degree that she wanted to leave the convent to marry. In vain did her mother counsel her to stay. Her daughter would not even hear of it. When the mother saw St. Ioannicius, she begged him to counsel her daughter to remain in the monastery and not expose her soul to perdition in the world. Ioannicius summoned the maiden and said: "Daughter, place your hand on my shoulder!" She did so. Then the compassionate saint prayed to God with a fervent heart that He deliver her from temptation, and that her bodily lust be transferred to him. Thus, it happened. The maiden was completely calmed and remained in the monastery, and the saint of God went on his way. But as he went, the passion of lust was inflamed in him, and his blood began to boil as though on fire. He desired to die rather than to give the passion its way and, seeing a large poisonous snake, ran to it so as to be bitten and to die. But the snake would not bite him. He provoked it to make it bite him, but as soon as he touched it the snake died. At that moment the flame of lust disappeared from Ioannicius.
! CONTEMPLATION
Contemplate the Lord's coming to Paul in a vision at night (Acts 18):
# How the Lord came to Paul at Corinth, in a nighttime vision;
# How He told him to fear not and to preach, for He said: //I have much people in this city;//
# How Paul obeyed and remained there for a year and a half.
! HOMILY
! on the heirs of the Kingdom through Christ the Lord
In whom also we have obtained an inheritance (Ephesians 1:11).
All is from the Lord Jesus Christ, all is through the Lord Jesus Christ, and all is of the Lord Jesus Christ. Without Him, we have no proper ties or normal relationships with God, with men or with other created beings. He is our head and our mind, and through Him //we have obtained an inheritance//. What do we inherit? The Kingdom of God. Why are Christians often called heirs in the New Testament? Inheritance is always associated with someone's passing from this earth. One must die for his heir to inherit. Christians even become heirs while still in this life, for the old man in them dies and the new man comes in his place as heir. The one who outlives the other is the one who inherits. When the body dies, the soul outlives it; the soul therefore inherits all that a man has gathered while in the body, be it good works for salvation or evil works for condemnation. Through the Lord Jesus Christ the inheritance that the Lord Himself rejoiced in is opened to us: the Immortal Kingdom of God. We inherit that Kingdom when we leave the earthly kingdom--when we die to this earth, we will inherit heaven; when we break off the alliance with Satan, we will become fellow heirs in Christ. O my brethren, just think what a rich inheritance awaits us! But let us not sell it cheaply, as Esau sold his birthright!
O Lord Jesus Christ, our God and our Savior, have mercy on us to the end, and save us.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MARTYRS GALACTION AND EPISTEME
Both Galaction and Episteme were born in the city of Edessa, in Phoenicia. Galaction's mother was barren until she was baptized. After her baptism, she converted her husband [Cleitophon] to the true Faith, baptized her son Galaction, and raised him in the Christian Faith. When Galaction was old enough to marry, his good mother, Leucippa, entered into rest, and his father betrothed him to a pagan-born maiden named Episteme. By no means did Galaction want to enter into marriage, and convinced Episteme to be baptized, then to be tonsured a nun at the same time that he became a monk. Both of them withdrew to Mount Publion--Galaction to a monastery and Episteme to a convent. They proved to be shining lights in their monasteries. They were first in labor, first in prayer, first in humility and obedience, and first in love. They neither left their monasteries nor did they see one another until just before their death. A fierce persecution began and both of them were brought before the tribunal. When the pagans mercilessly whipped Galaction, Episteme wept. Then they whipped her. After that, they cut off their hands, their feet and then their heads. Their friend Eutolius took their bodies and honorably buried them. Eutolius had been a slave of Episteme's parents, and then a monk with Galaction. He also wrote the life of these wonderful martyrs of Christ who suffered and received their wreaths in heaven in the year 253 A.D.
! THE HOLY APOSTLES PATROBAS, HERMES, LINUS, GAIUS AND PHILOLOGUS
They were of the Seventy. Patrobas was Bishop of Neapolis, Hermes of Philipopolis (Romans 16:14), Linus of Rome (II Timothy 4:21), Gaius of Ephesus (Roman 16:23), and Philologus of Synope (Romans 16:15). All of them fulfilled the Law of Christ with love and took up their abode in the Kingdom of Christ.
! SAINT JONAH, ARCHBISHOP OF NOVGOROD
Jonah was born in Novgorod and was orphaned early. A certain God-fearing widow took him and educated him. Seeing him as a child, Michael, the fool-for-Christ of Klops said to him prophetically: "Ivanushka, study diligently, for you will become archbishop in Novgorod the Great." And indeed, following the death of Archbishop Euthymius, Jonah was chosen and consecrated in his place. Jonah was devout and merciful to a rare degree for a mortal man. He built churches and monasteries and cared for his flock as a true good shepherd. He was offered the throne of Moscow as Metropolitan but declined, excusing himself because of his age. He entered into rest peacefully on November 5, 1570 A.D., and settled in the joyful heavenly habitations. One hundred years following his death there was a great fire in Novgorod. The relics of this saint did not burn in the furious flames, but on the contrary, from then on manifested healing power and emitted a wonderful fragrance.
! HYMN OF PRAISE
!
! THE VENERABLE MARTYRS GALACTION AND EPISTEME
Galaction, and Episteme with him,
Abandoned the world of passing smoke,
Crucified the passions of the body,
And ascended to heaven in spirit.
Their hearts remembered Christ with every beat,
And were crucified with love for Him.
Then the tormentors arrived.
Galaction went to his torture,
And Episteme hurried after:
"Slower, Brother," she said, "do not hurry!
I was baptized by your hand,
Now take me with you to torture!
Even though I am unworthy, Brother,
I am willing to die for my Christ."
Galaction, and Episteme with him,
Proclaimed Christ to the unbelievers,
And in bitter tortures they breathed their last.
They gave their souls to Christ:
Now they live with angels in Paradise--
Galaction and Episteme.
! REFLECTION
Physical love, in comparison to spiritual love, is less than a shadow is to solid substance. Brotherhood and sisterhood of the blood and body is nothing compared to the brotherhood and sisterhood of the spirit. Galaction's father betrothed him to the maiden Episteme. Galaction baptized Episteme and, after that, both received the monastic tonsure. Their physical love was replaced by spiritual love, a love as strong as death. So great was Galaction's spiritual love for Episteme that he never desired to see her with his physical eyes. Neither physical contact nor closeness are necessary for spiritual love. So great was Episteme's spiritual love for Galaction that when she heard that he had been taken for torture she ran after him, begging him not to reject her, but to receive her as a fellow sufferer, as he was her spiritual father and brother. When the merciless torturers flogged holy Galaction's naked body, holy Episteme wept. However, when the torturers cut off their hands and feet for Christ, both rejoiced and glorified God. So great was the power of their love for our Lord Jesus Christ, and so great was the spiritual love with which they loved each other. Truly, physical love is like a colorful butterfly that quickly passes, but spiritual love is enduring.
! CONTEMPLATION
Contemplate the wondrous action of the Holy Spirit upon the baptized (Acts 19):
# How Paul, coming to Ephesus, saw men baptized with the baptism of John to repentance;
# How he placed his hands on them and the Holy Spirit descended upon them;
# How they were filled with power, and spoke in tongues and prophesied.
! HOMILY
! on the elevation of man through the Risen Christ
… Far above all principality, and power, and might, and dominion, and every name that is named, not only in this world, but also in that which is to come and hath put all things under His feet (Ephesians 1:21-22).
Behold, the heights to which God exalts the being of man! Here, Christ's Divine Nature is not the subject, but rather His human nature. This is not about the eternal Word of God, but rather about the man Jesus, whom God raised from the dead and exalted--not only above this whole visible and mortal world, but also above the invisible and immortal, far above all the orders of angels and the heavenly powers; far above all the known and unknown wondrous hierarchies of heaven; far above every created being, known and unknown; and far above every name in the material and the spiritual worlds. My brethren, do you see how our All-glorious Creator fulfilled the promise He gave to Adam when he banished him from Paradise, and repeated more clearly to Abraham, and repeated still more clearly through the prophets and David? Do you see how the Lord of Sabaoth began to glorify the human race by glorifying the man Jesus, the Son of God, in Whom was incarnate the divinity of God? As the first in glory, God first glorified Him, and then, in order, all those who are numbered with Him, and who by the grace of the Holy Spirit are named and written in the Book of Life for eternal glory. It is not without cause that the Church sings to the Mother of God: "More honorable than the Cherubim and beyond compare more glorious than the Seraphim." Where the Risen Lord is exalted, His Most-holy Mother is also exalted, as are also His holy apostles, in accordance with His words to His heavenly Father: //Father, I will that they also, whom thou hast given Me, be with Me where I am// (John 17:24).
Such is the boundless consequence of God's descent to earth. Such are the ineffable fruits of His sufferings.
O Lord Jesus Christ our Savior, equal only to Thy Father and the Holy Spirit; help us to extricate ourselves from the depth of putrid sin and sensual foolishness before the end.
To Thee be glory and praise forever. Amen.
! SAINT PAUL THE CONFESSOR, PATRIARCH OF CONSTANTINOPLE
When Blessed Patriarch Alexander lay on his deathbed, the sorrowing faithful asked him who he would have follow him as the chief shepherd of the spiritual flock of Christ. He said: "If you desire a shepherd who will teach you and who will shine with virtues, choose Paul; but if you only want a suitable man, externally adorned, choose Macedonius." The people chose Paul. Unfortunately, this was not accepted by the Arian heretics, nor was it accepted by Emperor Constantius, who was then in Antioch. Paul was soon deposed, and fled to Rome with St. Athanasius the Great. In Rome, Pope Julian and Emperor Constans received them warmly and upheld them in their Orthodox Faith. Emperor Constans and Pope Julian saw to it that Paul was returned to his throne, but when Emperor Constans died the Arians raised their heads again, and Patriarch Paul was banished to Cucusus in Armenia. Once, as Paul was celebrating the Divine Liturgy in exile, he was attacked by the Arians and strangled with his omophorion, in the year 351 A.D. In 381 A.D., during the reign of Emperor Theodosius, Paul's relics were transferred to Constantinople, and in the year 1236 A.D. they were translated to Venice, where they still repose. His beloved priests and notaries, Marcian and Martyrius (October 25), suffered soon after their patriarch.
! THE VENERABLE BARLAAM OF KHUTYN, THE MIRACLE-WORKER
Barlaam was born and raised as a Christian in Novgorod the Great. After the death of his parents, he was tonsured a monk and devoted himself to a life of strict asceticism. He founded a monastery on the bank of the Volkhov River, at a place where a heavenly light appeared to him. Barlaam was a great miracle-worker both during his life and after his death: he saw into the secrets of men's hearts, expelled unclean spirits and healed all sicknesses. After his repose, a servant of Prince Vasili Vasilievich became gravely ill and begged to be taken to the saint's grave. He further instructed them that, if he should die on the way, they should carry his dead body to the saint. And thus it happened--he died on the way and they carried him dead to the monastery, where he returned to life, stood up and prostrated before the grave of the saint. In the year 1471 A.D., Tsar Ivan the Terrible ordered that the saint's grave be dug up. As soon as they began to dig, a flame sprang from the grave and flared up along the walls of the church. The Tsar was so frightened that he ran out of the church and, in his haste, forgot his staff, which is still preserved beside the grave of the saint. The commemoration of this miracle is celebrated on the Friday after the Sunday of All Saints.
! COMMEMORATION OF THE FALLING OF ASH FROM THE SKY
This took place in Constantinople in the year 472 A.D.//) during the reign of Emperor Leo the Great and Patriarch Gennadius. (See "Reflection" below.)
--------------------
//) According to the Greek Synaxarion, this incident occurred in 475 A.D. and not in 472 A.D.
! HYMN OF PRAISE
! THE LORD'S MERCY AND GOODNESS
Our Lord is mercy and true goodness,
Yet He allows man to suffer for his sin:
Floods, sickness, earthquakes, droughts,
Horror and pains for body and soul.
He who does not see the Father when He offers gifts
Will see Him at the Judgment as the Righteous Judge.
The awesome Judge has many servants,
And employs them all for man's salvation--
The earth's thorns; serpents and beasts;
And floods, lightning, thunder from the sky;
And evil winds of illness; the sun, heat and darkness;
And the field, which gives either wheat or empty straw.
As many gifts await the faithful,
So many scourges are woven for the evil.
Adam's fields are watered with gentle dew,
But Sodom and Gomorrah are mowed with a flaming sword.
Above other created things, God loves man:
Therefore He forgives much; therefore He waits long.
But, when God's patience exceeds all bounds,
Then fire, not dew, does the work.
! REFLECTION
If God can bring forth water from a rock as a comfort to men, He is also able to send down fire from the heavens as a punishment. The fate of Sodom and Gomorrah is a classic example of God's punishment upon incorrigible sinners. That God can repeat this punishment was demonstrated over Constantinople in the year 472 A.D., during the time of Emperor Leo the Great and Patriarch Gennadius. At noon on November 6 of that year, the sky became overcast with thick, dark clouds, causing darkness on the land. These clouds turned red as fire, then became dark, and alternated their appearance continuously. This phenomenon over Constantinople lasted for a full forty days. The frightened people turned to repentance and prayer. With the emperor and patriarch, they walked in procession through the streets from church to church and prayed to God with tears and lamentation. On the final day hot black ash fell like rain from evening until midnight, then stopped. The following day dawned clear and bright, but the sooty ash lay on the ground to a depth of nine inches. With great effort, the people cleaned their houses and streets of this sooty ash, but the crops in the field were utterly destroyed. All who had understanding, understood that this was God's punishment, and that it was God's gentle punishment because the people hastened to repent before Him. Had it not been for this profound repentance for their great and accumulated sins, who knows what would have happened to Constantinople in those days? But the timely repentance of sinners, and the prayers of the Most-holy Theotokos, as well as the prayers of the countless saints and martyrs of Constantinople, greatly lessened the punishment.
! CONTEMPLATION
Contemplate the wondrous power of healing that proceeded from the Apostle Paul (Acts 19):
# How the people took his aprons and handkerchiefs and placed them on the sick;
# How all the sick were healed, and evil spirits fled from them;
# How the words of the Savior came true, that he who believes in Him will perform greater miracles than He.
! HOMILY
! on the Head of the Church and the Body of Christ
And gave Him to be the head over all things to the Church, which is His body (Ephesians 1:22-23).
Headless humanity is given a head in the Lord Jesus, risen from the dead. The body separated from the head is grafted to its head, part by part, member by member. Not all men are the body--only those who believe in the Lord Jesus Christ. All are called, but only those who respond are received under the Head. The ones who respond comprise the Body that is called the Church, whose Head is the Lord. But, as the risen and glorified man, Jesus is exalted within the Holy Trinity, above all and everything on earth and in heaven, so also will His Church, His Body, be exalted to its Head, above all and everything. The whole Church, together with its Head, will stand at the right hand of the Holy Trinity--for where the head is, there also is the body. The redeemed and repentant sinners, the erstwhile adversaries of God--wandering astray like the Prodigal Son and headless as a dead body, but now adopted through Christ and for Christ, and clothed in the beauty of divine life and splendor--will be exalted to such heights, greatness and glory. For it is a great thing, brethren: the Incarnation of the Son of God on earth, His suffering on the Cross and His death for our sake. His visit to earth brought about a great change in the destiny of men, and in the meaning of all things. He changed all things and made all things new. Therefore, brethren, let us not live and conduct ourselves as the old man, but rather as the new man; let us not live according to sin, but according to righteousness; let us not act according to the flesh, but according to the spirit. May we be made worthy of those heights, of the greatness and glory to which we are called by our Head.
O Lord Jesus, the Holy Head of the Holy Church, make us worthy to be members forever of Thy Most-pure Body.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR HIERON AND HIS COMPANIONS
Hieron was born in Tyana in Cappadocia of a good and devout mother, Stratonika, who was blind. Hieron was a very zealous Christian and served his blind mother with great filial love. For two reasons he did not wish to join the army, and he resisted and drove off those who had been sent to take him. Hieron was loath to leave his helpless mother, and it was grievous for him even to consider that, as a soldier, he would be compelled to offer sacrifices to idols. Finally, Hieron was arrested along with other Christians, and they were all taken before the eparch of the town of Melitene. While they were still on the road, a man clad in a brilliant white garment appeared to Hieron one night and said: "Behold, Hieron, I proclaim salvation to you: you shall not wage war for an earthly king, but for the Heavenly King you will complete your struggle, and you shall soon come to Him to receive honor and glory." At this, Hieron's heart was filled with inexpressible joy. In Melitene they were all thrown into prison and Hieron, with great zeal, strengthened all the prisoners in the Faith, urging that not even one of them fall away, but that all willingly offer their bodies to torture and death for Christ. All but one confessed their faith in the Lord Jesus Christ. The exception was Hieron's kinsman Victor, who fell away from the Faith. The tormentors cut one of Hieron's hands off, then flogged and tortured him in various ways until they beheaded him and the others. Going to the place of execution, these thirty-three martyrs chanted the Psalm: //Blessed are the undefiled in the way, who walk in the law of the Lord// (Psalms 118:1). Here we will name the honorable martyrs whose names are written with his in the Book of Life: Hesychius, Nicander, Athanasius, Mamas, Barachius, Callinicus, Theogenes, Nikon, Longinus, Theodore, Valerius, Xanthius, Theodulus, Callimachus, Eugenius, Theodochus, Ostrichius, Epiphanius, Maximian, Ducitius, Claudian, Theophilus, Gigantius, Dorotheus, Theodotus, Castrichius, Anicletus, Themilius, Eutychius, Hilarion, Diodotus and Amonitus. A man named Chrysanthus purchased Hieron's severed head and honorably buried it, later building a church over it in the saint's name. The martyr's severed hand was brought to his blind mother. St. Hieron, with his companions, suffered in the year 298 A.D. and entered the glory of Christ.
! THE HOLY MARTYR THESSALONICA WITH AUCTUS AND TAURION
This maiden was the daughter of a pagan priest, Cleon, a rich and arrogant man. Because of her faith in Christ, her father drove her from the house and city. Two honorable citizens, Auctus and Taurion, reproached Cleon for his inhuman treatment of his daughter, and he in turn denounced them as Christians. They were bitterly tortured and beheaded for Christ. Thessalonica was then tortured and slain as well. They suffered in the Macedonian city of Amphipolis near present day Kavala. Thus, these martyrs were made worthy of the Immortal Kingdom by their honorable suffering.
! THE VENERABLE LAZARUS OF GALESIUS
A pillar of light appeared above the house where he was born. Lazarus left his village of Magnesia and went to Jerusalem on a pilgrimage to the holy places. There, he was tonsured a monk in the Monastery of St. Sava the Sanctified. After ten years, he settled on Mount Galesius and lived a life of asceticism on a pillar as a stylite. Lazarus was a miracle-worker both during his life and after death. Emperor Constantine Monomachus had great respect for him. Attaining old age, St. Lazarus entered into eternity toward the end of the eleventh century.
! HYMN OF PRAISE
!
! THE HOLY MARTYR HIERON AND HIS COMPANIONS
Prisons are peculiar palaces!
In prison, St. Hieron spoke:
"O my brethren, thirty companions,
Hold to God's word,
To God's word and His law.
Behold, from time immemorial, the serpent has risen up,
Seeking to ensnare you with a glance,
So that, one by one, you would follow it to hell.
Do not succumb, brethren, true believers,
Oh, hearken to humble Hieron!
Whatever the serpent promises you
Is as fleeting as the green grass.
Courageously endure your sufferings:
Do not trade the eternal for the temporal;
Today or tomorrow, death will arrive,
Then all must go to the judgment of God.
Blessed is he who is not ashamed
When he sees his Judge before him.
Even more so is he who can show the Judge
The blood he has shed for Him,
And the wounds he bears for His name.
Such a one will reign eternally with Him."
! REFLECTION
There are decisive moments in life upon which a man's eternal life or eternal death depend. We do not know when this decisive moment will come for us--perhaps today--and because of this we must be unceasingly vigilant. Victor, a kinsman of St. Hieron, was arrested with him. On the day before their torture, Victor, in terror of the impending tortures, went to the prison warden and begged him to take his name off the list of the condemned and release him, promising to give him his land. The warden removed his name and released him. However, upon returning home, Victor died of natural causes in the same moment that St. Hieron and his companions died in torments for Christ. Thus Victor vainly missed the decisive moment: he lost his land, his friends and both his earthly and heavenly life. In that same decisive moment, Hieron gained all. No one vied for Victor's body, while many vied for Hieron's body. When Christians sought the head of Hieron from the eparch, he asked as much gold for it as it weighed. Chrysanthus, a wealthy and devout man, paid that much gold for the martyr's honorable head. Anthony and Matronian hid one of St. Hieron's severed hands and brought it to Hieron's mother, the blind Stratonika. She took her son's hand and wept bitterly: "O my beloved son, I gave birth to you whole, and now I have only one part of you!"
! CONTEMPLATION
Contemplate the malignant power of an evil spirit over those who serve him (Acts 19):
# How seven Jews tried to imitate Paul in driving out spirits from possessed people, attempting this for their own gain;
# How the evil spirit answered them, //Jesus I know, and Paul I know; but who are ye?//
# How the man with the evil spirit leaped on them and overwhelmed them.
! HOMILY
! on the dark paths of mankind before and apart from Christ
… in time past ye walked according to the course of this world, according to the prince of the power of the air, the spirit that now worketh in the children of disobedience (Ephesians 2:2).
This is all one and the same path--the path to destruction. //According to the course of this world//means inclination toward sinfulness; //according to the prince of the power of the air// means according to the will of those chiefs of the demons who inhabit the air; //in the spirit that now worketh in the children of disobedience// means that in the same way that the opponents and adversaries of God now live, all men lived before the advent of Christ, including those to whom the Apostle writes the epistle. What is this //power of the air//, brethren? This is the order of evil spirits who exist in constant movement in the air. They make the air lethal and they impede the souls of the departed as they make their way to heaven. They deceive the spirit of man to work every evil; they tempt it with every sin. Yet, they do not command the spirit to sin, for they lack the power to do that; they can only tempt and corrupt. They acted more strongly and directly on the pagans than on the Israelites. They fell upon the pagans as a swarm of flies on a carcass, but the Israelites they watched from a distance, corrupting and tempting them more subtlely. They stood at a distance from Israel because of the name of God, which was preserved and spoken among the Israelites. The Lord Jesus Christ scattered them all and plucked out their poisonous stings, so that they remained only as empty phantoms, as miserable, inconstant shadows that vanish instantly at the mention of the name of Christ or at the tracing of the sign of Christ's Cross.
O Lord Jesus, our Commander and Deliverer, help us to live in Thy freedom.
To Thee be glory and praise forever. Amen.
! THE HOLY ARCHANGEL MICHAEL AND ALL THE BODILESS POWERS OF HEAVEN
The angels of God were celebrated by men from earliest times but this celebration was often turned into the divinization of angels (II Kings 23:5). The heretics wove all sorts of fables concerning the angels. Some of them looked upon angels as gods; others, although they did not consider them gods, called them the creators of the whole visible world. The local Council of Laodicea (four or five years before the First Ecumenical Council) rejected the worship of angels as gods and established the proper veneration of angels in its Thirty-fifth Canon. In the fourth century, during the time of Sylvester, Pope of Rome, and Alexander, Patriarch of Alexandria, the present Feast of Archangel Michael and all the other heavenly powers was instituted for celebration in the month of November. Why precisely in November? Because November is the ninth month after March, and March is considered to be the month in which the world was created. Also, as the ninth month after March, November was chosen for the nine orders of angels who were created first. St. Dionysius the Areopagite, a disciple of the Apostle Paul (who was taken up into the third heaven), described these nine orders of angels in his book, //On the Celestial Hierarchies//, as follows: six-winged Seraphim, many-eyed Cherubim, God-bearing Thrones, Dominions, Powers, Virtues, Principalities, Archangels, and Angels. The leader of all the angelic hosts is the Archangel Michael. When Satan, Lucifer, fell away from God and drew a part of the angels with him to destruction, then Michael stood up and cried out before the faithful angels: "Let us attend! Let us stand aright! Let us stand with fear!" and all of the faithful angelic heavenly hosts cried out: "Holy! Holy! Holy! Lord God of Sabaoth! Heaven and earth are full of Thy glory!" Concerning the Archangel Michael, see Joshua 5:13-15 and Jude 1:9. Among the angels there reign perfect oneness of mind, oneness of soul, and love. The lower orders also show complete obedience to the higher orders, and all of them together to the holy will of God. Every nation has its guardian angel, as does every Christian. We must always remember that whatever we do, in open or in secret, we do in the presence of our guardian angel. On the day of the Dread Judgment, the multitude of the hosts of the holy angels of heaven will gather around the throne of Christ, and the deeds, words, and thoughts of every man will be revealed before all. May God have mercy on us and save us by the prayers of the Archangel Michael and all the bodiless heavenly powers. Amen.
! HYMN OF PRAISE
!
! THE HOLY ARCHANGEL MICHAEL AND ALL THE BODILESS POWERS OF HEAVEN
Heavenly Commanders,
Who watch over us with great care,
Cover us with your wings,
And shield us with your power.
Armed with the power of God,
Crowned by His glory,
You wield flaming swords,
To cut the demons down.
Swift, swift as rays of light
You soar on the clouds--
The clouds of the air--
Where you do battle for God.
Without fatigue and without sleep
You hover ceaselessly
Over men and created things,
And over countless worlds.
Behold, yours are mighty armies,
Legions virtuous,
And gentle battalions of angels:
And, according to the Creator, our brothers.
Commanders of the might of heaven,
Lead us where we need to go--
To the throne of the Most High
Who created us from nothing.
! REFLECTION
Holy Scripture clearly and irrefutably witnesses that angels ceaselessly communicate with this world. The Holy Scripture and Holy Tradition of the Orthodox Church teaches us the names of the seven leaders of the angelic powers: Michael, Gabriel, Raphael, Uriel, Salathiel, Jegudiel, and Barachiel (an eighth, Jeremiel, is sometimes included).
"Michael" in the Hebrew language means "Who is like unto God?" or "Who is equal to God?" St. Michael has been depicted from earliest Christian times as a commander, who holds in his right hand a spear with which he attacks Lucifer, Satan, and in his left hand a green palm branch. At the top of the spear there is a linen ribbon with a red cross. The Archangel Michael is especially considered to be the Guardian of the Orthodox Faith and a fighter against heresies.
"Gabriel" means "Man of God" or "Might of God." He is the herald of the mysteries of God, especially the Incarnation of God and all other mysteries related to it. He is depicted as follows: In his right hand, he holds a lantern with a lighted taper inside, and in his left hand, a mirror of green jasper. The mirror signifies the wisdom of God as a hidden mystery.
"Raphael" means "God's healing" or "God the Healer." (Tobit 3:17, 12:15). Raphael is depicted leading Tobit (who is carrying a fish caught in the Tigris) with his right hand, and holding a physician's alabaster jar in his left hand.
"Uriel" means "Fire of God," or "Light of God" (II Esdras 4:1, 5:20). He is depicted holding a sword against the Persians in his right hand, and a fiery flame in his left.
"Salathiel" means "Intercessor of God" (III Esdras 5:16). He is depicted with his face and eyes lowered, holding his hands on his bosom in prayer.
"Jegudiel" means "Glorifier of God." He is depicted bearing a golden wreath in his right hand and a triple-thonged whip in his left hand.
"Barachiel" means "Blessing of God." He is depicted holding a white rose in his hand against his breast.
"Jeremiel" means "God's exaltation." He is venerated as an inspirer and awakener of exalted thoughts that raise a man toward God (III Ezra 4:36).
! CONTEMPLATION
Contemplate the Apostle Paul's miraculous resurrecting of Eutychus (Acts 20):
# How Paul preached in a house at Troas by night;
# How the young man Eutychus drifted into a deep sleep, and fell from a third-story window to his death;
# How Paul came down, embraced him and restored him to life.
! HOMILY
! on how Christ brings to life men who are dead in sin
Even when we were dead in sins, [God] hath quickened us together with Christ (Ephesians 2:5).
God first brought Christ to life: He first raised Him as a man from the grave. And Christ is our Head. Thus, in order to resurrect the whole generation of the faithful, it was necessary to resurrect the Head first. When the Head resurrected, then the resurrection of the whole body, with all its members, was assured. Therefore, the Apostle Paul speaks of our resurrection and glorification as a completed thing. So it is that God resurrected us also with Christ: //And hath raised us up together, and made us sit together in heavenly places in Christ Jesus// (Ephesians 2:6). God resurrected us--together with Christ as man--who once were dead in sins, slain by our sins. He not only makes us worthy of resurrection with the Lord Jesus Christ, but He also puts us on the same level with the resurrected Christ in the heights of heaven, above the whole realm of incorporeal spirits. Brethren, God did not come to earth for the sake of some petty, inconsequential thing, but for something completely unique, something greater than great. When an earthly king visits a place in his country, the benefit of his visit is felt long after. The Lord, the King, visited mankind on the earth and the benefit of that visit will be felt to the end of time. That visit means life instead of death for us, glory instead of shame, closeness to God instead of estrangement, and blessing instead of a curse. In other words, that visit means our resurrection from the dead, and our eternal reign in the heavens with Christ.
O Lord, thanks be to Thee; O Lord, glory be to Thee.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS ONESIPHORUS AND PORPHYRIUS
These two wonderful men were martyred for the name of Christ during the reign of Emperor Diocletian. They were severely beaten, then burned on an iron grid, then tied to horses' tails and dragged over rocks and thorns. They were thus torn to pieces and gave up their holy souls to God. Their relics are buried in Pentapolis.
! THE VENERABLE JOHN THE DWARF [KOLOBOS]
John is numbered among the greatest of the Egyptian ascetics. "Kolobos" means "dwarf," for he was of little stature. He came to Scetis with his brother Daniel and, with the greatest zeal, devoted himself to such asceticism that Daniel had to urge him to moderation. John was a disciple of St. Pambo, and was later the teacher of St. Arsenius the Great. His fellow disciple under St. Pambo was St. Paisius the Great. Once, when he and Paisius were discussing what kind of asceticism to undertake, an angel of God appeared to them and commanded John to stay where he was and instruct others, and Paisius to enter the wilderness and live as a hermit. In order to test John's obedience, St. Pambo ordered him to water a dry stick planted in the ground until it turned green. Without hesitation or doubt, John watered this stick daily for three whole years until by the power of God, it grew green sprouts and brought forth fruit. Pambo then gathered the fruit from this tree, brought it to church and distributed it among the brethren saying: "Draw near and taste of the fruit of obedience!" John the Dwarf had many disciples. Some of his wise sayings have been preserved. He entered into rest peacefully and took up his habitation in the joy of his Lord.
! THE VENERABLE MATRONA OF CONSTANTINOPLE
Matrona was from Perga in Pamphylia. Matrona's marriage to Dometian, a nobleman of Constantinople, soon became unbearable to her. Disguised in men's clothing, she fled and adopted the name Babylas, then entered the Monastery of St. Bassian in Constantinople. Because her husband searched for her constantly, she was forced to move repeatedly. Altogether, she moved to Emesa, Sinai, Jerusalem and Beirut, and finally returned to Constantinople. Matrona was tonsured a nun at age twenty-five, and lived the ascetic life for seventy-five years. In all she lived a hundred years, and died peacefully in the year 492 A.D. as abbess of a monastery in Constantinople, taking up her abode in the joy of her Lord.
! THE VENERABLE EUTHYMIUS OF DOCHIARIOU AND HIS DISCIPLE NEOPHYTUS
Euthymius and Neophytus were Serbs by birth and kinsmen of high-ranking aristocrats in Byzantium. Euthymius was a companion of St. Athanasius and the steward of his Lavra, after which he founded the Monastery of Dochiariou. He entered peacefully into rest in the year 990 A.D. His nephew Neophytus succeeded him as abbot of Dochiariou, increased the brotherhood and built a large church. He entered into rest at the beginning of the eleventh century.
! SAINT SIMEON METAPHRASTES [THE TRANSLATOR]
Simeon was a gifted Constantinopolitan. He had both a secular and spiritual education. He attained the rank of imperial logothete [chancellor] and was first among the nobles at the imperial court, yet he lived a pure and blameless life as a true ascetic. He distinguished himself by great military bravery and statesmanly wisdom. For these qualities, Emperor Leo the Wise greatly respected him and sent him to Crete to negotiate a peace with the Arabs who then occupied the island. Successfully completing his mission, he returned to Constantinople and soon thereafter withdrew from the world and worldly affairs. He wrote many lives of saints, compiling 122 new biographies and correcting 539 biographies. He entered into rest in about the year 960 A.D., and a fragrant and healing myrrh flowed from his relics.
! THE VENERABLE THEOCTISTA OF PAROS
Theoctista was born on the island of Lesbos and was tonsured a nun at the age of seventeen. The savage Saracens attacked the island and enslaved all who fell into their hands, including Theoctista and her sister. When the Saracens brought the slaves to the marketplace on the island of Paros, Theoctista escaped from the crowd and hid in an abandoned church in the middle of the island, where she lived a life of asceticism for thirty-five years. She entered into rest in the year 881 A.D.
! HYMN OF PRAISE
! SAINT SIMEON METAPHRASTES
St. Simeon was called Metaphrastes--
He dedicated his God-given talent to the Church.
He loved the saints, the friends of God,
And wondrously described their struggles:
Struggles in spirit, struggles in the flesh,
Struggles in thought, and struggles in deeds.
He was a true friend to the friends of God,
Who are dearest to God of all the men in the world.
He loved those whom God loves,
And through them he deepened his love for God.
Simeon shone with love for God,
And wrote his Lives like a brilliant tapestry,
For new generations in the four corners of the world,
To nourish their souls with true spiritual integrity,
By having vivid examples of saintly nobility,
By which to follow in the footsteps of patristic teachings.
Wondrous is our God in His saints;
Wondrous is the Lord, the Creator of angels.
! REFLECTION
After a long separation from his companion Paisius, John the Dwarf visited him. Each asked the other what virtue he had attained in the time they were apart. Paisius said: "The sun has never seen me eat." John the Dwarf said: "And it has never seen me angry." Instructing the brethren in Scetis, John used this story of a repentant human soul: "In one town there lived a beautiful woman, a harlot who had many lovers. A certain prince told her that he would take her as his wife if she promised that she would live honorably and faithfully in marriage. She promised this and the prince took her to his court and married her. However, her former lovers decided to turn her back to her former ways, and reclaim her for themselves. They dared not face the prince, so they went around the back of the palace and began to whistle. The woman heard the whistling, recognized it, and quickly stopped her ears. She hid in an inner chamber of the palace and locked the door behind her. Thus, she was delivered from new temptations." St. John explained this story in the following manner: "The harlot is the soul; her lovers are the passions; the prince is Christ; the inner chamber is the heavenly habitation; and the lovers who whistle and entice are the demons. If the soul would constantly turn from its passions and flee to God, then the passions and the demons would be frightened and flee from it."
! CONTEMPLATION
Contemplate the appearance to Paul of an angel in a tempest at night (Acts 27):
# How an angel of God appeared to Paul by night and told him to fear not, for he would be saved, and all those with him;
# How Paul related this to the men on the boat, greatly encouraging them.
! HOMILY
! on saving grace
By grace ye are saved (Ephesians 2:5, 8).
Who can comprehend and acknowledge that we are saved by grace--that we are saved by God's grace, and not by our merits and works? Who can comprehend and acknowledge that? Only he who has comprehended and seen the bottomless pit of death and corruption in which man is engulfed by sin, and has also comprehended and seen the height of honor and glory to which man is raised in the Heavenly Kingdom, in the realm of immortality, in the house of the Living God--only such a one can comprehend and acknowledge that we are saved by grace. A child was traveling by night. He stumbled and fell into hole after hole and pit after pit, until he finally fell into a very deep pit from which he could in no way escape by his own power. When the child gave himself over to the hands of fate and thought his end was near, there was suddenly someone standing over the pit, lowering a rope to him and telling him to grab the rope and hold firmly to it. This was the king's son, who then took the child home, bathed him, clothed him and brought him to his court and set him beside himself. Was this child saved by his own deed? By no means. All he did was to grab the end of the rope, and hold on. By what, then, was the child saved? By the mercy of the king's son. In God's relationship with men, this mercy is called grace. //By grace ye are saved.// The Apostle Paul repeats these words twice in a short span, that the faithful might recognize and remember them.
Brethren, let us comprehend and remember that we are saved through grace by the Lord Jesus Christ. We were in the jaws of death, but have been given life in the courts of our God.
O Lord Jesus Christ our Savior, by Thee are we saved.
To Thee be glory and praise forever. Amen.
! THE PROTECTION OF THE MOST-HOLY THEOTOKOS
From time immemorial, the Church has celebrated the Most-holy Theotokos as the patroness and protectress of the Christian people, who, by her intercessory prayers, implores God's mercy for us sinners. The help of the Most-holy Mother of God has been clearly shown numerous times, to individuals and to nations, in peace and in war, in monastic deserts and in densely populated cities. The event that the Church commemorates and celebrates today confirms the Theotokos' consistent protection of Christian people. On October 1, 911 A.D., during the reign of Emperor Leo the Wise, there was an All-night Vigil in the Blachernae Church of the Mother of God in Constantinople. The church was full of people. St. Andrew the Fool-for-Christ was standing in the rear of the church with his disciple Epiphanius. At four o'clock in the morning, the Most-holy Theotokos appeared above the people, holding her omophorion outstretched as a protective covering for the faithful. She was clothed in gold-encrusted purple, and shone with an ineffable radiance, surrounded by apostles, saints, martyrs and virgins. St. Andrew said to Blessed Epiphanius: "Do you see, brother, the Queen and Lady of all praying for the whole world?" Epiphanius replied: "I see, Father, and am struck with amazement!" The Feast of the Protection was instituted to commemorate this event, and to remind us that we can prayerfully receive the unceasing protection of the Most-holy Theotokos in any time of difficulty.
! THE HOLY APOSTLE ANANIAS
Ananias was one of the Seventy Apostles. He was bishop in Damascus. In accordance with God's revelation (Acts 9:10-17), he baptized Saul (the Apostle Paul). Because of his courageous preaching of the Gospel he was stoned to death in the town of Eleutheropolis. His holy relics were taken to Damascus and later to Constantinople.
! THE VENERABLE ROMANUS THE MELODIST
Romanus was born in the Syrian town of Emesa. He was, at first, a sexton in Beirut, and later served in the cathedral church in Constantinople in the time of Patriarch Euthymius (490-504 A.D.). Romanus was not well educated and was untrained in chanting, for which he was ridiculed by some of the more educated clergy. St. Romanus tearfully prayed to the Most-holy Theotokos, and she appeared to him in a dream, gave him a scroll, and told him to swallow it. The following day was the Feast of the Nativity. Romanus took his place as a chanter at the ambo, and with an angelic voice sang the hymn "Today the Virgin…." All were amazed at both the content of this hymn and at the magnificent singing of the chanter. Having received the poetic gift from the Theotokos, Romanus composed over a thousand Kontakia. Romanus entered into rest as a deacon of the Great Church, Hagia Sophia, in Constantinople. He joined the angelic choirs in the year 510 A.D.
! THE VENERABLE JOHN KOUKOUZELIS
John was a Slav from Dracha (Dyrrachium). As a young man, he was taken to the school of music in Constantinople, where he became the favorite singer at the imperial court. Fearing the flattery and praise of men, John fled to the Holy Mountain and presented himself at the Great Lavra as a simple shepherd. He lived an exceptional life of asceticism. The Most-holy Theotokos appeared to him on two occasions. He reposed in the twelfth century.
! THE VENERABLE GREGORY
Gregory was a monk of the Great Lavra on Mount Athos in the fourteenth century.
! HYMN OF PRAISE
! THE VENERABLE ROMANUS THE MELODIST
St. Romanus, in mid-service,
Appeared on the ambo
And sang a wondrous hymn
In a sweet angelic voice:
"Today, the Virgin gives birth to the Transcendent One,
And the earth offers a cave to the Unapproachable One.
Angels and Shepherds glorify Him,
And the wise men journey with the star--
For unto us the Eternal God is born
As a little Child."
Hearing this hymn,
All were filled with gladness;
And on the faces of all the people
Was great astonishment.
Glory to the Mother of God!
Who hearkens to tearful prayers,
And gloriously fulfills
The prayerful supplications of the devout!
! REFLECTION
The Most-holy Theotokos has often appeared to holy men in need: sometimes to encourage them in asceticism, or to heal them from sickness, or to reveal a certain mystery to them. Two similar, wonderful events took place in the Great Lavra on the Holy Mountain. In Great Lent, during the chanting of the Great Akathist, St. John Koukouzelis was tired and sat down, facing the icon of the Theotokos. As he sat, he fell asleep. Just then, the Holy Most-pure One appeared to him in heavenly light and said: "Rejoice, O John! Chant and do not stop chanting, and for this I will not abandon you." With this, she placed a gold coin in John's hand. When he awoke from sleep, the gold coin was still in his hand. After this, many wonderful miracles were worked from the icon of the Theotokos, as well as from the gold coin.
The second incident involved St. Gregory the monk, who, like John Koukouzelis, was a church cantor. Patriarch Kallistos had established that in the Liturgy of St. Basil the Great, "All Creation Rejoices in Thee" be sung in place of "It Is Truly Meet." His successor, Patriarch Philotheus, rescinded this, reinstating "It Is Truly Meet" because of its brevity. But then, on the eve of the Theophany, and in the presence of Patriarch Gregory of Alexandria, St. Gregory sang "All Creation Rejoices in Thee" instead. Immediately after this, the Holy Most-pure One appeared to him, and, as she had done to John Koukouzelis, placed a gold coin in his hand. She said: "I am very grateful for your singing in my honor." Because of this, it was instituted that all Liturgies of St. Basil would thereafter include "All Creation Rejoices in Thee."
! CONTEMPLATION
Contemplate the injustice of King Ahaz and God's punishments of him (II Chronicles 28):
# How, throughout his life, Ahaz did that which was evil before the Lord;
# How he set up idols in every corner of Jerusalem and throughout the entire land, and worshiped them;
# How he waged many wars and was defeated in them all; his land was laid waste; a hundred thousand of his people were slain; and just as many were taken into bondage.
! HOMILY
! on the blessed man
Blessed is the man that walketh not in the counsel of the ungodly, nor standeth in the way of sinners, nor sitteth in the seat of the scornful (Psalm 1:1).
Brethren, most blessed is he who is not so hardened by sin that he can hear and fulfill this counsel of God that has come through the prophet. The ungodly are those who, in every way, think contrary to God and His will. The sinners are those who walk the path of their own desires, and their thoughts are contrary to the will of God and His law. The scornful are those who destroy themselves and others by their evil deeds. The danger is this: first comes the ungodly counsel (either from wicked men or from sinful thoughts); then the actual committing of sin; then the unrepentant sinner becomes a scandalous example of evil to others. Therefore, blessed is the man who neither heeds the counsel of ungodly men or thoughts, but finds sufficient counsel for his salvation in the Law of God. Blessed is the man who has not even once walked //in the way of sinners//, or, if he has walked on that path, he has repented and returned to the path of life that is the Lord's. Blessed is the man who has not sat in the presence of the scorner of innocent souls who, by his seductive example, corrupts such souls. For it is said of the corrupter: //It were better for him that a millstone were hanged about his neck, and that he were drowned in the depth of the sea// (Matthew 18:6).
O my brethren, blessed be all of you, men and women, who cautiously avoid these three evils: ungodly thoughts and counsels, sinful deeds, and the corrupting of others. These three evils are like one poisonous serpent that grows from a small snake into a giant serpent.
O Blessed Lord our Creator, help us by Thy power and Thy goodness, that we may be saved from the cruel serpent that Thou, O Lord Christ, didst defeat by the weapon of Thine invincible and honorable Cross. Help us to hearken only to Thy counsel, that we may walk only on Thy path, and shine by Thine example.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS EULAMPIUS AND EULAMPIA
They were brother and sister from Nicomedia. During one of the terrible persecutions of Christians by Maximian some of the faithful fled Nicomedia and hid. The young Eulampius was sent into the city to buy bread. There he saw the imperial edict decreeing the persecution of Christians posted on a wall. He laughed at it, removed it, and tore it up. He was arrested and immediately brought before the judge. When the judge advised him to deny Christ, Eulampius counseled the judge to reject the false idols and to acknowledge Christ as the One Living God. The judge ordered that he be flogged for a long time until his blood flowed, and that he be tormented with other cruel tortures. Hearing of her brother's suffering, the virgin Eulampia came running, and she, together with her brother, suffered for Christ. She was flogged until blood flowed from her nose and mouth. After that, they were thrown into boiling pitch, and then into a red-hot furnace, but by the power of the sign of the Cross and the name of Christ, they rendered the fire harmless. Finally Eulampius was beheaded, but Eulampia died before being beheaded. Two hundred other Christians were also slain, who had come to believe in Christ upon witnessing the power and miracles of St. Eulampius and his sister. All were crowned with martyrs' wreaths, and passed over into their eternal heavenly homeland.
! THE HOLY MARTYRS OF ZOGRAPHOU
When Emperor Michael Palaeologus contracted the infamous Union of Lyons with the pope, in order to obtain help from the West against the Bulgarians and Serbs, the monks of the Holy Mountain sent a protest to the emperor against this Union, imploring him to reject it and return to Orthodoxy. The pope dispatched an army to help the emperor. The Latin army entered the Holy Mountain and committed such barbarism as the Turks had never committed in five hundred years. Having hanged the Protaton//), and having killed many monks in Vatopedi, Iveron and other monasteries, the Latins attacked Zographou. The blessed Abbot Thomas warned the brethren that whoever wished to be spared from the Latins should flee from the monastery, and that whoever desired a martyr's death should remain. And so, twenty-six men remained: the abbot, twenty-one monks, and four laymen who served as laborers for the monastery. They all closed themselves in the monastery's tower. When the Latins arrived, they set fire to the tower and these twenty-six heroes of Christ found a martyr's death in the fire. While the tower was burning, they chanted the Psalms and the Akathist to the Most-holy Mother of God. They gave their holy souls to God on October 10, 1283 A.D. In December of the same year, the dishonorable Emperor Michael died in poverty, when the Serbian King Milutin rose up against him in defense of Orthodoxy.
--------------------
//) //Protaton:// the governing council of Mount Athos.--Trans.
! THE VENERABLE THEOPHILUS THE CONFESSOR
Theophilus was a Macedonian Slav from somewhere near Strumica. He was tonsured a monk when still young, and founded his own monastery. He suffered much for the icons during the reign of Leo the Isaurian, and would have been slain on one occasion, had he not succeeded in convincing Governor Hypaticus, his judge, of the principle and need for the veneration of icons. The governor freed him. Theophilus returned to his monastery, where he reposed peacefully in the year 716 A.D., and entered into the joy of his Lord.
! THE HOLY MARTYR THEOTECNUS
He was a Roman officer in Antioch during the reign of Emperor Maximian. When the emperor urged him to sacrifice to the idols, he replied: "I believe in Christ God, and to Him will I offer myself as a sacrifice--a living sacrifice." After cruel tortures, he was drowned by being thrown into the sea with a stone around his neck. He suffered honorably for Christ and was crowned with the wreath of martyrdom.
! THE VENERABLE BASSIAN
During the reign of the right-believing Emperor Marcian, this saint came to Constantinople from Anatolia in the year 450 A.D. Great was his asceticism, and great was the wonderworking power that God bestowed upon him. Bassian had about three hundred disciples. Among them was St. Matrona. Emperor Marcian built a church in Bassian's name, which still exists today.
! HYMN OF PRAISE
!
! THE HOLY MARTYRS OF ZOGRAPHOU
Heroes of Zographou, knights of truth,
Sacrificed themselves for the Orthodox Faith,
And shamed the proud, shameless Latins,
As their souls rose up to the Kingdom of God.
The tower's flames mounted up to heaven,
As the monks in the fire sent up praise to God!
Heaven with its angels beheld that spectacle,
As the criminals crawled about like worms below the tower.
In the flames, Abbot Thomas, a true parent,
Encouraged his brethren, and began the Psalms:
He who glorifies the Lord does not fear death,
And he who dies for God will not perish.
The sacrifice is offered, and the altar of oblation remains:
The bodies were burned, the souls flew off,
And by that sacrifice, Zographou increased in glory
With magnificence eternal and true.
St. George the knight, cherishes his knights//)
As the Mother of God cherishes all heavenly citizens.
In these knights of righteousness, the Church rejoices:
They are her children, her fruitful branches.
--------------------
//) The Monastery of Zographou is dedicated to Great-martyr George.--Ed.
! REFLECTION
By God's providence, the greatest number of miracles and heavenly manifestations occur during the martyrdom of His servants. On the day that the Latins set out for the Monastery of Zographou, an old monk had an obedience in a vineyard half an hour's distance from the monastery. At the prescribed time, he read the Akathist before the icon of the Mother of God. However, when he began to pronounce the word "Rejoice!" a voice came to him from the icon: "Do thou also rejoice, O elder! Flee from here now, or misfortune will befall thee; go and tell the brethren of the monastery to lock themselves in, for the God-opposing Latins have attacked this, my chosen Mountain, and are already near." The frightened elder fell to his knees and cried out in fear: "How can I leave thee here, my Queen and Intercessor?" At this he again heard the voice: "Do not worry about me, but go quickly!" The elder went to the monastery immediately. But when he reached the monastery gates he beheld that same icon of the Mother of God. In a miraculous manner, the icon had preceded him to the monastery. The amazed elder related all that had been revealed to him to the abbot and the brethren. At that, all of them glorified God and the Mother of God.
Once, during the celebration of the Feast of the twenty-six martyrs of Zographou, on October 10, 1873 A.D., there was a great all-night vigil. It was a moonless night. In the middle of the night, while the monks were chanting and reading the lives of the holy martyrs in the church, a noise was suddenly heard, and over the church a fiery pillar appeared, extending from earth to heaven. It was so bright that things at a distance could be seen as though it were midday. This wondrous manifestation lasted for about a quarter of an hour and then disappeared.
! CONTEMPLATION
Contemplate God's miraculous appearance to the Prophet Elias (I Kings 19):
# How Elias, fatigued by the unrighteousness of the people, prayed to God to grant him death;
# How God comforted Elias by His appearing on Horeb;
# How there was a strong wind, then an earthquake, then fire, and finally a still, small voice--the voice of God.
! HOMILY
! on the sufferings of David and the prophecy of the sufferings of Christ
For many dogs have surrounded Me; the congregation of the wicked has enclosed Me. They pierced My hands and My feet (Psalm 22:16).
This is the mystical experience of the penitent David, and, at the same time, a clear prophecy of Christ's sufferings. //Yea, and all that will live godly in Christ Jesus shall suffer persecution//(II Timothy 3:12), says the Apostle Paul. When King David sinned, the devils did not appear to him nor did they disturb him; but when he began to repent and to direct his life on the path of God, then the devils surrounded him and tormented him. The words here are not about men but about demons, who sometimes attack the penitent directly, or torment him through other men. David would not have called God's people, the crown of God's creation, "dogs." Rather, he called the demons "dogs," who are perceived by righteous men as dogs, snakes, black men, lions, or in some other form. That he here means "dogs" as evil spirits can be proven by the written lives of the great ascetics, to whom the demons appeared in the form of dogs and other animals, to frighten them. We can also be convinced of this from the words of the Lord our Savior, that He spoke from the Cross: //Father, forgive them; for they know not what they do// (Luke 23:34). This means that the Jews were not doing their own will but rather someone else's: the demons' will. For //many dogs// and //the congregation of the wicked// gathered to destroy Christ the Lord. When the devil--the tempter--could not defeat the Lord on the Mount of Temptation by his false promises, he began with all his might to destroy Him through men by a dishonorable death on the Cross. Brethren, see how clear the prophecy is! //They pierced My hands and My feet.// These words could not have pertained to anyone else, in the entire history of the world, but the crucified Savior. This prophecy continues in great detail: //They divided My garments among them and for My vesture they cast lots// (Psalm 22:18). Everything happened as it was prophesied--everything! But the devil was deluded in his reckoning. He thought he could destroy the One mightier than death, by condemning Him to death. He thought to dishonor Him Who alone gives honor to all creation. By his glorious Resurrection, the Lord Jesus Christ conquered and shamed the devil and his entire pack of dogs, and gave man power and authority over them. The whole pagan world was unable to exorcize even one single demon; but we, by the name of Christ and by the power of His Cross, are able to disperse legions of demons like smoke--for, after Christ's victory, the demons became like whipped and frightened dogs.
! O Lord, Conqueror and Savior, to Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE PHILIP
Philip was born in Palestinian Caesarea. He was married and had four daughters. All four were endowed by God with the gift of prophecy, and all four were vowed virgins for the sake of Christ. When the holy apostles chose deacons, Philip was chosen with Stephen and the others. He served the needy and widows with great diligence. When the persecution of Christians began in Jerusalem, Apostle Philip found refuge in Samaria, and there preached the Gospel and gave witness by many miracles: driving out demons, healing the sick, and so forth. Seeing the miracles of the holy apostle, Simon the Magician was baptized. St. Philip also baptized the eunuch of Queen Candace. After that, an angel of God suddenly and invisibly translated him to Azotus, where he taught, preached and converted many to Christ. Philip was appointed Bishop of Tralles. He reposed peacefully in deep old age, and took up his habitation in the joy of his Lord.
! THE COMMEMORATION OF THE SEVENTH ECUMENICAL COUNCIL
The Seventh Ecumenical Council was held in 787 A.D. at Nicaea during the reign of the devout Empress Irene and her son, Constantine, in the time of Patriarch Tarasius. This Council finally confirmed the veneration of icons, justifying it by Holy Scripture, by the witness of the Holy Fathers, and by the undeniable example of miracles manifested through the holy icons. Adding to examples of miracles previously cited, Bishop Constantine of Cyprus recounted this: One day, a certain shepherd from the town of Constantia drove his flock to pasture, and there saw an icon of the Most-holy Theotokos, all decorated with flowers by the faithful. "Why render so much honor to a rock?" said the shepherd, who had obviously been brought up in iconoclasm. He struck the icon with his iron shepherd's cane, and damaged the right eye of the image of the Mother of God. As soon as he turned away, he stumbled over that same cane and gouged out his own right eye. Thus injured, he returned to the city, crying out tearfully that the punishment of the Theotokos had befallen him. This Council also decreed that the holy relics of a martyr be placed, without fail, in the Antimension.//) Three hundred and sixty-seven Fathers participated in this Council. May the Lord also have mercy on us and save us by their prayers.
--------------------
//) A cloth which is placed on the holy altar table, and upon which is celebrated the Divine LIturgy.--Trans.
! THE VENERABLE THEOPHANES THE BRANDED
Theophanes was a confessor and writer of canons. He was born in Arabia of wealthy and pious parents. With his brother Theodore (December 27), he was tonsured a monk in the Monastery of St. Sava the Sanctified. As they were very educated monks, Patriarch Thomas of Jerusalem sent them to Emperor Leo the Armenian, to justify and defend the veneration of icons. The iniquitous emperor harshly tortured these holy brothers and cast them into prison. Later, the iconoclastic Emperor Theophilus resumed their torture and commanded that words of mockery be branded on their faces, to expose them to the ridicule of the world. When the iconoclastic controversy was resolved, Theophanes was freed, and shortly thereafter was consecrated a bishop. He died peacefully in the year 847 A.D., having suffered for the holy icons for a total of twenty-five years. He wrote 145 Canons. He entered into the eternal joy of his Lord.
! SAINT NECTARIUS, PATRIARCH OF CONSTANTINOPLE
As a layman and a high-ranking court official, Nectarius was unanimously chosen as patriarch in 381 A.D., succeeding St. Gregory the Theologian. He was distinguished by profound understanding, tact and zeal for the Church. He reposed peacefully in the year 397 A.D.
! THE HOLY FEMALE MARTYRS ZINAIDA AND PHILONILLA
Zinaida and Philonilla were sisters by birth, and were born in Tarsus. They are called the kinswomen of St. Paul the Apostle. Remaining virgins, they renounced the world for the sake of Christ, and, withdrawing to a cave, lived the ascetic life. They were knowledgeable in medicine and healed many of the sick. Because of her great fasting, Philonilla especially was vouchsafed the gift of miracle-working. Certain unbelievers attacked them one night and stoned them to death.
! HYMN OF PRAISE
! ! THE VENERABLE THEOPHANES THE BRANDED
Theophanes of St. Sava's, a great ascetic,
Profound theologian and glorious hymnographer,
A sufferer for Christ, a confessor of the Faith,
An adornment of the Church, a Father of Orthodoxy:
He left his cell for the sake of obedience,
And from his silence, stepped out into the world once again,
To persuade the evil emperor of the truth;
And he witnessed that truth to the emperor.
St. Theophanes traded a quarter century for true happiness,
Though he passed this time in suffering most dire,
And in the dank prison
Wore the brand of suffering on his face.
But, inspired by the Spirit, this saint of God
Also infused these years with chants sublime,
Glorifying the Lord and the saints of God
With fervent hope, love and faith.
! REFLECTION
Just as, by God's providence, the power of miraculous healing is given to blessed water or sanctified oil, so this same power is also given to icons. St. Athanasius the Great cites one wonderful example of the miraculous power of holy icons: In the town of Beirut, there lived a Christian in a rented house. In moving out of the house, he forgot an icon of the Savior. Then a Jew moved into that house. There were many Jews in that town who were particularly embittered against the Christian Faith. Consequently, when the icon was found in the house, the Jews carried it to their gathering place and mocked it, as their ancestors had once mocked the living Savior. The Jews also did to the icon what their ancestors had done to the Savior: they pierced the hands and feet with nails, wiped vinegar on the lips of the image on the icon, and mocked the image of the Savior in every way possible. Finally, one of them took a spear and struck the divine image under the rib. But oh, the wonder--blood and water flowed from the image's wound as they had from the living body of the crucified Lord. The Jews' terror cannot be described. However, they brought a vessel to catch the blood, and brought many of the sick, blind, deaf, lame and insane to the icon. As soon as the Jews anointed the ailing with this blood, they were healed. The whole town gathered to see this miracle and all glorified Jesus Christ, the true God; and all the Jews in that town came to believe in the living and life-giving Lord Jesus Christ.
! CONTEMPLATION
Contemplate the numerous unrighteous acts of the people of Israel, and the numerous punishments that God visited upon them (II Kings 24):
# How the princes of the people often turned away from God, and did that which is evil in the sight of God;
# How God punished the people in order to correct them;
# How finally, under the evil King Jehoiachin, the Israelites were taken into the Babylonian captivity.
! HOMILY
! on the voice of the Lord upon the waters
The voice of the Lord is upon the waters (Psalm 29:3).
//The voice of the Lord//was heard over Jordan, when St. John baptized the Savior. On the Sea of Galilee, when there were storms and winds, //the voice of the Lord// was heard, and the tempest was calmed and the winds ceased. //The voice of the Lord// was heard at the marriage feast at Cana of Galilee, and the water was changed into wine. //The voice of the Lord// was heard at the Red Sea, and the sea parted and a path was opened for the people of God. //The voice of the Lord// was heard in the wilderness, and water flowed from a dry rock. Given all this, what does //the voice of the Lord is upon the waters// mean? It means that the element, water, is the work of God; and through it, God works miracles when He wills, and how He wills. No less are the other elements the work of God: fire, air and earth. And God is Lord over them all, and through them He works miracles when He wills, and how He wills.
God the Holy Spirit appeared in the form of fire at Pentecost. In the furnace at Babylon, the flames lost their power at the sound of //the voice of the Lord//, and did not harm the blessed children. Fire was sent down from heaven to consume the sacrifice of Gideon (Judges 6). Elias brought down fire from the heavens (II Kings 1:10). The bush burned and was not consumed (Exodus 3). Fire from heaven came down and consumed Elias's sacrifice to God (I Kings 18:38). A fiery pillar went before the Israelites (Exodus 13, 14). All of this was according to the word of the Lord.
The earth opened up and swallowed the unrighteous Korah, Dathan and Abiram (Numbers 16:32). The earth opened and hid Elizabeth and the infant child John from the sword of Herod. The earth quaked when the Lord breathed His last on the Cross, and the graves opened up (Matthew 27:51-52).
The Lord ascended into the heavens through the air (Luke 24:51). The holy apostles were carried through the air to Jerusalem, from various parts of the world. An angel took the Prophet Habakkuk to Babylon through the air in an instant (Bel and the Dragon 1:35). And all of this was in accord with //the voice of the Lord//: by the Lord's command. When will men be as obedient to //the voice of the Lord//as the irrational elements of nature are? Then again, "the waters" is to be interpreted as meaning "men"--men who are obedient to //the voice of the Lord//--the apostles and the saints. Like water, they covered the earth with the preaching of Christ our God. Like water, they assuaged the thirsty world with the effusion of the fountain of eternal life, and the world was restored and blossomed. Upon them, just as upon ordinary water, numerous miracles were manifested; for they were submissive to the will of God, obedient to the voice of God, just like water.
O Lord Jesus Christ, help us to be obedient to Thy voice. Help us to be ashamed before lifeless elements that obey Thee better than we do.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS TARACHUS, PROBUS AND ANDRONICUS
Tarachus was born in Syrian Claudiopolis, Probus was from Perga of Pamphylia, and Andronicus was the son of an eminent citizen of Ephesus. All three were martyred together by the Proconsul Numerian Maximus, in Emperor Diocletian's time. Tarachus was sixty-five years old when he was tortured. The proconsul asked him for his name, and he answered: "I am a Christian." The proconsul asked thrice, and received the same answer each time. These martyrs were beaten with rods, then were cast into prison bloodied and wounded. After this, they were brought out again for torture. When the proconsul advised Probus to deny Christ, promising him imperial honors and his own friendship, holy Probus replied: "Neither the emperor's honors do I desire, nor your friendship do I wish." When Andronicus was threatened with even greater bodily tortures, the young martyr of Christ replied: "My body is before you, do with it what you will." After prolonged tortures in various locales, the three holy martyrs were thrown into an arena with wild beasts. Other prisoners in the same arena were torn apart by the beasts, but they would not harm the saints; a bear and a ferocious lioness fawned around them. Seeing this, many believed in Christ the Lord and cried out against the proconsul. Crazed with anger, and more furious than the beasts, the proconsul ordered his soldiers to enter the arena and chop the soldiers of Christ into pieces with their swords. Their bodies were mingled with the dead bodies of other prisoners. Three Christians, Macarius, Felix and Berius, who were present at the slaying of the holy martyrs, came that night to remove their bodies. But as the bodies were heaped in confusion, and the night was very dark, they prayed to God to help them find the saints; and suddenly three candles were manifested over the bodies of the martyrs. Thus, they were able to remove the saints' bodies and honorably bury them.
! SAINT MARTIN OF TOURS
Martin was born of pagan parents in the Pannonian town of Sabaria in the year 316 A.D. His father was a Roman officer, and the young Martin was given over to military service against his will. By then, however, he was already a catechumen in the Christian Church. From early childhood he had loved the Church with all his heart. One winter, while traveling with his companions to the town of Amiens, he saw a beggar before the town gates, almost naked and shivering from the cold. Martin felt sorry for him, and fell behind his companions. He then removed his military cloak and cut it in two with his sword. He gave one half to the beggar and wrapped the other around himself, and left. That night, the Lord Jesus Christ appeared to him in a dream, wrapped in the other half of his cloak, and said to His angels: "Martin is only a catechumen, yet behold: he has clothed Me with his garment!" Leaving the army, Martin was immediately baptized, and then baptized his mother. He was then tonsured a monk in the diocese of St. Hilary of Poitiers and led a life of true asceticism. Martin was exceptionally humble, for which God endowed him with an abundant gift of working miracles, such that he raised the dead and drove out evil spirits. Martin was appointed Bishop of Tours against his will. After abundant labor in the vineyard of the Lord, and after a difficult struggle with pagans and Arian heretics, St. Martin gave his holy soul into the hands of his Lord in the year 397 A.D.
! THE VENERABLE COSMAS OF MAIUMA
He was born in Jerusalem. He was a friend of St. John Damascene, whose parents took him in as an orphan and raised him. As a monk, he assisted John in compiling the Octoechos, and he himself composed many canons to the saints. His canons on Lazarus Saturday, Palm Sunday and Passion Week are particularly distinguished by their beauty and profundity. He was Bishop of Maiuma, near Palestinian Gaza. He outlived St. John Damascene, and died in deep old age.
! HYMN OF PRAISE
! SAINT MARTIN, BISHOP OF TOURS
St. Martin, a child of Pannonia,
And the great illuminator of Gaul,
Despised the earthly emperor's honors,
And became a servant of the heavenly King.
The will of a powerful giant
Was in Martin's merciful heart.
Martin sprinkled himself with ashes,
And on the ashes this humble one slept,
Out of love for his God--
Crucified for sinful men.
And Martin had crucified himself to the world
Solely to reach the goal!
Martin led the battle against demons,
Yielding to none of their temptations,
And led the battle against impudent men,
Against dark, dishonorable heresies.
Martin was a knight of Orthodoxy,
And a victor, wondrous and glorious.
With the battle won, the knight rests
With the angels close to Christ the King:
And yet even now he lifts up prayers,
And comes to the aid of those in peril.
! REFLECTION
By what virtue have the saints been most exalted and glorified in the eyes of heaven and men? Primarily by their humility and service. Even before his baptism, while he was still an officer, St. Martin had a servant whom he considered more a brother than a servant. He often served this servant unashamedly; in fact, he even rejoiced in it. Again, when St. Hilary wanted to ordain him a priest, he refused this honor with tears, and begged the bishop to let him simply be a monk in some remote place. Once, St. Martin was traveling from France to Pannonia to visit his parents. While he was crossing over the Alps, murderous robbers captured him. When one of the robbers raised his sword to behead him, Martin showed no fear, and remained motionless; he did not beg for mercy but was completely at peace, as if nothing were happening. The robber, amazed at such behavior, lay aside his sword and asked Martin who he was. Martin replied that he was a Christian, and hence, he was not afraid--for he knew that God, according to His great mercy, is always close to men, especially in times of danger. The thieves were astonished at the rare virtue of this man of God, and he who had drawn his sword against Martin believed in Christ, was baptized, and later became a monk. When the episcopal throne in Tours became vacant, the people wanted Martin to be bishop, but Martin did not even want to hear of it. However, certain citizens of Tours craftily lured him from the monastery and carried him off. They came to the gate of Martin's monastery and told Martin that a sick man was out there with them, and they begged him for a blessing. When Martin came out they seized him, took him to Tours, and had him consecrated bishop. In old age, he foresaw his approaching death. He told his brethren and they began to weep copiously, begging him not to leave them. The saint, seeking to comfort them, prayed to God in their presence and said: "Lord, if I am still needed by Thy people, I do not reject the labor. Let it be according to Thy holy will."
! CONTEMPLATION
Contemplate the wondrous work of the Apostles Peter and John (Acts 3):
# How a beggar, lame from birth, asked them for alms;
# How Peter told him they had no silver or gold;
# How the apostle took him by the hand and said, //In the name of Jesus Christ, rise up and walk!// and the sick man was made whole.
! HOMILY
! on weeping in the evening and joy in the morning
Weeping may endure for a night, but joy comes in the morning (Psalm 30:5).
God rebukes, and God makes glad. Just one repentant thought eases the wrath of God; for God is not angry at men as an enemy is angry, but His anger toward men is as that of a father toward his children. His anger is momentary, and His mercy is infinite. If He rebukes you in the evening, He causes you to rejoice in the morning; men know Him best in His rebuking and in His mercy. O my brethren, if men constantly knew and recognized God as the Doer of good, they would never know Him as Rebuker and Judge. Behold, God rejoices more when we recognize Him by His mercy than by His anger. However, there are very ungrateful and thoughtless people who never remember God when He grants mercy, but remember Him only when He chastises and rebukes them through sickness, death in the family, failure and shame before men, fire, the sword, earthquake or flood, or numerous other punitive rods and sticks with which He chastens the unawakened, reminds the ungrateful, brings the errant to their senses, and reminds everyone that He is the Creator and Lord, the Giver of Gifts and the Judge.
//Weeping may endure for a night, but joy comes in the morning.// These words also mean that the night is for weeping and prayer, for repentance and divine contemplation. The night especially is for repentance, and there is no true repentance without tears. At night a man thinks without hindrance about his deeds, his words, and his thoughts, and repents for all that he has done contrary to God's law. If a man weeps in repentance at night, then he will rejoice during the day. He will rejoice as a newborn, as one bathed, as one alleviated from the burden of sin. But, if he spends the night in sin and senseless revelry, a sorrowful and tearful day will dawn for him.
O Lord Jesus Christ, our Savior and Teacher, rebuke us, but forgive us; chastise us, but save us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS CARPUS AND PAPYLUS
Carpus was Bishop of Thyateira and Papylus was a deacon. They were born in Pergamum where they finally suffered for the Christian Faith at the hands of the evil proconsul Valerius, during the reign of Decius. Valerius tied them to horses and dragged them to Sardis, where he subjected them to harsh tortures. Then an angel of God appeared to them, healed them of their wounds and encouraged them. Carpus's servant, Agathadorus, followed his master with great sorrow. Valerius then condemned him to torture as well. The saints were again tied to horses, and were dragged from Sardis to Pergamum. They tied holy Carpus to a tree and flogged him so that his body was covered with wounds, and his blood flowed like a stream, soaking the ground; but Carpus smiled in the midst of these horrible tortures. When they asked him why he was smiling, the holy martyr replied that he saw the heavens opened and the Lord seated on His throne, surrounded by Cherubim and Seraphim. As Papylus was being tortured, by prayer he healed a man blind in one eye, and many who witnessed this came to believe in Christ the Lord. Thrown to wild beasts, the martyrs remained unharmed. Then they were thrown into a fiery furnace. Agathonica, Carpus's sister, also leaped into the fire, but the fire did not consume them. Finally, they were all beheaded with the sword, in the year 251 A.D. Thus, after their righteous endeavors, they received a wreath of glory in the Kingdom of Christ.
! THE HIEROMARTYR BENJAMIN THE DEACON
This soldier of Christ was a Persian who zealously preached the Gospel and brought many pagans, both Persians and Greeks, to the Christian Faith. He suffered during the reign of the Persian King Yezdegeherd, circa 412 A.D. When he was cast into prison, one of the king's nobles defended him to the king. The king then released him, under the condition that he no longer preach Christ to the people. Benjamin boldly said: "This I can never give up. For he who hides the talent given him will be given over to great suffering," and he continued to spread the Christian Faith. The emperor had him seized, and commanded that thorns be driven under his nails, and he was further tortured until he rendered his spirit to God.
! THE HOLY GREAT-MARTYR ZLATA OF MEGLIN
Zlata was born of poor peasant parents (who also had three other daughters) in the village of Slatina, in the province of Meglin. She was a meek and devout girl, wise in the wisdom of Christ and golden, not only in name//) but also in her God-fearing heart. Once when Zlata went out to get water, some shameless Turks seized her and took her to their home. When one of them urged her to become a Moslem and be his wife, Zlata fearlessly replied: "I believe in Christ and Him alone do I know as my Bridegroom. I will never deny Him, even though you subject me to a thousand tortures and cut me into pieces." When her parents and sisters found her, her parents said to her: "O daughter, have mercy on yourself and on us, your parents and sisters; deny Christ in words only, so that we can all be happy, for Christ is merciful. He would forgive such a sin, committed due to the necessities of life." Her poor parents, sisters and relatives wept bitterly. However, the noble soul of St. Zlata resisted such diabolical snares. She answered them: "When you counsel me to deny Christ the true God, you are no longer my parents or my sisters. I have the Lord Jesus Christ as my father, the Theotokos as my mother, and the saints as my brothers and sisters." The Turks then cast her into prison for three months, flogging her every day until her blood soaked the ground. Finally, they suspended her upside down and lit a fire, to suffocate her with the smoke; but God was with Zlata, and gave her strength in suffering. At last they hanged her from a tree and cut her into small pieces. Thus, this brave virgin gave her soul up to God, and went to dwell in Paradise in the year 1796 A.D. Pieces of her relics were taken by Christians to their homes for a blessing.
--------------------
//) "Zlata" means gold.--Trans.
! HYMN OF PRAISE
!
! THE HOLY GREAT-MARTYR ZLATA OF MEGLIN
The Turks tortured St. Zlata of golden heart,
Tormented her to death for Christ the Living God.
Golden Zlata wept not, nor did she waver,
But surrendered her whole heart to the Lord of Heaven.
The tears of parents and sisters were in vain:
Zlata sought delight through sufferings, true delight--
The delight that Christ prepares for wise virgins,
The joy that the Bridegroom bestows upon faithful brides.
The cage of the body of Zlata the Golden was destroyed,
And her soul was freed from its fragile prison.
Zlata rose up to Paradise, joyful in soul,
Taking her place among the royal, holy angels.
St. Zlata, once a poor peasant girl,
Is now glorified in Paradise as a queen.
! REFLECTION
There is nothing more wretched than a man who, in the hour of misfortune, abandons hope in God and resorts to a means of salvation contrary to the Law of God. Not only does such a man not succeed in righting his outward situation, but he also loses his soul. Such was the case with Emperor Michael Palaeologus. In order to save his kingdom--threatened by the Bulgars and Serbs--he sought help from the pope, and agreed to an uncanonical union. What did he gain by this? He did not save the kingdom, but did commit numerous evil crimes. Soon after, he died miserably in a military campaign against John Ducas, Prince of Epirus. The Orthodox people were so resentful toward him that his son, Andronicus, dared not bury him publicly, but buried him at night without a funeral or prayer. He was cut off from the Orthodox Church, and he was not received by the Roman Church. Michael Palaeologus died outside the Church of God. Following Michael's death, his widow, the empress, issued the following decree: "My majesty abhors and regards as loathsome this action [the Union] that has recently occurred in the Church and created discord in it…. And, as the Holy Church of God has determined not to sanction any official commemoration of my deceased spouse, our lord and king, because of the aforementioned deed and discord, My Majesty also, submitting all things to the fear of God and obedience to the Holy Church, approve and accept this, the Church's decision, and never will I dare to perform a memorial service for my lord and spouse."
! CONTEMPLATION
Contemplate the wondrous punishment by which the Apostle Peter punished Ananias (Acts 5):
# How Ananias, and then his wife Sapphira, lied and concealed part of the money;
# How the Apostle Peter denounced them, and they fell down and died one after the other.
! HOMILY
! on the burden of sin and deliverance from sin
Blessed is he whose transgression is forgiven, whose sin is covered (Psalm 32:1).
Fear, confusion, weakness, infirmity and darkening of the mind are born of sin. By sin, a man provokes others against himself, confuses his own conscience, attracts demons to himself, and gives them weapons against himself. By sin, a man separates himself from God, estranges himself from his guardian angel, and walls himself off from the source of all good. The committing of sin signifies a declaration of war against God and all godly powers. This is more preposterous than if a withered autumn leaf were to declare war on the wind. And, indeed, the most preposterous thing of all occurs: a man declares war on God! This declaration alone guarantees ruin and destruction for a man if he does not quickly come to himself, repent and flee to God for mercy.
The great King David was well aware of the terrible predicament of the sinner, and he himself experienced it. He felt inexpressible fear, confusion, weakness and loneliness; he felt the arrows of men and the arrows of demons. But, realizing his horrible situation, David acknowledged his sin, prostrated himself in ashes before God, soaked the ground with tears of repentance and words of anguish that burned like fire, and prayed to the merciful God to forgive him. And, when all was forgiven him, he felt inexpressible blessedness. This blessedness of the forgiven soul he could not express in words. He could only declare, confirm and assure us of the condition of sinfulness and the condition of forgiveness from God, based on his direct experience of both conditions: //Blessed is he whose transgression is forgiven, whose sin is covered//(Psalm 32:1). What is this blessing? Freedom, courage, indescribable joy, power, strength, clarity of thought, peace of conscience, hope in God, hymnody to God, love for one's neighbors, and meaning to one's life! In other words: light, joy and strength are the blessing. This is the blessing that one who is forgiven of sin feels here on earth. If this is so, then what is the blessing that awaits him in heaven, that //eye hath not seen, nor ear heard, neither have entered into the heart of man// (I Corinthians 2:9)?
O Lord our God, forgive us our transgressions by Thine infinite mercy, and cover our sins!
To Thee be glory and praise forever. Amen.
! THE VENERABLE PARASCEVA [PETKA]
This glorious saint was of Serbian descent, and was born in the town of Epivat between Selymbria and Constantinople. St. Parasceva's parents were wealthy, devout Christians. They also had a son, Euthymius, who was tonsured a monk during his parents' lifetime, and later became the famous Bishop of Madytos. The virgin Parasceva always yearned for the ascetic life for the sake of Christ. After her parents' repose, she left her home and went first to Constantinople, then to the wilderness of Jordan, where she lived the ascetic life until old age. Who can express all the labors, sufferings and demonic temptations that St. Parasceva endured in the course of her many years? In her old age, an angel of God once appeared to her and said: "Leave the wilderness and return to your homeland; it is necessary that you render your body to the earth there, and your soul to the habitation of the Lord." St. Parasceva obeyed, and returned to Epivat. There she lived for two years in ceaseless fasting and prayer, then gave up her soul to God and took up her abode in Paradise. St. Parasceva entered into rest in the eleventh century. Over the course of time her relics were translated to Constantinople, to Trnovo, again to Constantinople, and then to Belgrade. Her relics now repose in Romania, in the town of Iasi. In Belgrade, the well of St. Petka miraculously heals the sick who draw near with faith in God and love for this saint.//)
--------------------
//) The Greek Synaxarion records the miraculous assistance of St. Parasceva on the island of Chios in the year 1442 A.D. A certain Hieromonk Ambrose was celebraing vespers in the Church of St. Parasceva. There was no one else present in the church. Toward the end of vespers, a terrible storm struck with a great roar, and it rained torrentially the entire night. Ambrose was unable to leave the church. Thinking that the whole island would be flooded and everyone would perish, he began to pray to St. Parasceva to save his homeland and to appease God's righteous wrath. Before dawn, sleep overcame Ambrose. It seemed to him as though the roof of the church disappeared, and he saw a cloud of light in the heights, and within it stood a noble-looking woman at prayer before God. After her prayer, she said to the priest: "Ambrose, do not be afraid, your homeland is spared," and the rain ceased immediately. From that time on, St. Parasceva continues to be celebrated very solemnly on the island of Chios.
! THE HOLY MARTYRS NAZARIUS, GERVASIUS AND PROTASIUS
Nazarius was born in Rome of a Jewish father and a Christian mother. His mother, Perpetua, was baptized by the Apostle Peter himself. Confessing his mother's Faith, Nazarius sincerely fulfilled all the precepts of the Church. Fearlessly preaching the Gospel, Nazarius went to Milan. There, he found the Christians Gervasius and Protasius in prison, and ministered to them with great love. Learning of this, the local eparch ordered Nazarius to be beaten and driven from the city. His mother came to him in a vision and told him to go to Gaul, and to preach the Gospel there; and this is what Nazarius did. After several years, Nazarius returned to Milan--this time with a disciple, the young man Celsus, whom he had baptized in Gaul. There he found the brothers Gervasius and Protasius still in prison, and he was soon thrown in with them by the governor Anulinus. Christ's martyrs rejoiced because of this reunion brought about by God's providence. Emperor Nero ordered Nazarius slain, and the governor brought Nazarius and Celsus out of prison and beheaded them. Soon after that, General Astazius, passing through Milan en route to battle against the Moravians, beheaded St. Gervasius along with St. Protasius. He had heard that these two brothers would not sacrifice to idols, and fearing that he might lose the battle by losing favor with his false gods, he commanded that they be executed immediately. Gervasius and Protasius were twins, born of the blessed parents Vitalius and Valeria, who were also martyred for the Faith. The relics of St. Nazarius were translated by St. Ambrose from a garden outside the city to the Church of the Holy Apostles. The relics of St. Gervasius and St. Protasius were revealed to him in a miraculous vision.
! HYMN OF PRAISE
!
! THE VENERABLE PARASCEVA--SAINT PETKA
"The Lord desires a pure heart":
Thus says the Gospel.
A pure virgin you remained,
And you gave your pure heart to God--
O most wonderful saint,
Saint Parasceva, our ideal!
The Lord seeks a most pure mind,
Without fancy and without falsehood;
And you presented Him your most pure mind,
Like that of an angel, of the same kind.
O most wonderful saint,
O Saint Parasceva, hearken to our petitions!
The Lord seeks a pure soul,
As a heavenly shrine;
You perfected such a soul,
And now shine in heaven.
O most wonderful saint,
Parasceva, help us!
By your prayers, help us
In the misfortunes of life.
Through the clouds of earthly sorrow
Bring us light, like a rainbow--
O chaste virgin, most wonderful,
Holy Mother Parasceva!
! REFLECTION
Examples of how the saints themselves reveal their hidden relics to men justify the honor rendered to the relics of the saints--not to mention the miraculous action of these relics, which doubly justifies them. For a long, long time, no one could locate the grave of St. Parasceva. Then it happened that a sailor died, and his body was carelessly laid in the proximity of the saint's grave. When the body turned into carrion and began to emit an unbearable stench, a monk who lived nearby summoned the peasants to help him bury the corpse. It happened that they buried him in St. Parasceva's own grave. That night, St. Parasceva appeared in a dream to one of those peasants (George by name) who had buried the corpse. She appeared as a beautiful and exquisitely-adorned queen, surrounded by many glorious soldiers. She said: "George, exhume my relics at once, and lay them in another place; for I can no longer endure the stench from that corpse." Then she told him who she was, and where she was from. The same night a local peasant woman named Euphemia had the same dream. The next day, the peasants began to dig and in fact found the relics of St. Parasceva. They were extraordinarily fragrant, and soon proved to be miracle-working.
Concerning the relics of St. Gervasius and St. Protasius, St. Ambrose relates how their relics were discovered in a similar manner. One night, two handsome youths and an old man appeared to Ambrose, who was awake. He thought that the old man was the Apostle Paul. While the young men remained silent, the old man spoke to Ambrose concerning them, saying that they were Christ's martyrs, and that their relics lay in the very place where Ambrose was praying to God at that time. He went on to say that everything else concerning them would be revealed in a book that Ambrose would find in their grave. The following day, Ambrose recounted his vision and began to dig, and found the relics of both men. From the book that he found he learned that their names were Gervasius and Protasius. In the presence of St. Ambrose, a certain blind man named Severus touched these holy relics and immediately received his sight.
! CONTEMPLATION
Contemplate the wondrous healings worked by the holy apostles (Acts 5):
# How many signs and miracles were performed through the hands of the apostles;
# How many of the sick were healed just by the shadow of the Apostle Peter.
! HOMILY
! on how the angels do battle for the righteous
The angel of the Lord encamps all around those who fear Him and delivers them (Psalm 34:7).
The angel of the Lord will do battle for those who fear God. This has been clearly shown many times, as has been recorded; and it has occurred numberless times that have not been recorded. The Archangel Michael took up arms for Joshua, the Son of Nun. An angel did battle for the righteous King Hezekiah and, in one night, destroyed the army of the Chaldeans. How many times have angels visited the Christian apostles and martyrs in prison, strengthened them, and caused them to rejoice? The consolation of the righteous one comes from knowing that God is All-seeing, and sees his misfortune; that God is Omnipotent, and has power to save him from misfortune; that God is All-merciful, and will save him from misfortune. God will send His radiant angel to the aid of the righteous. The righteous one will not have to struggle against his tyrant, for the angel of God will do battle in his place. When God's angel takes up arms, what army dares confront him? What empire will wage war against him? In an earlier Psalm, the Prophet David says: //No king is saved by the multitude of an army; a mighty man is not delivered by great strength. A horse is a vain hope for safety// (Psalm 33:16-17).
Hence, it does not help at all if the unjust, the worldly, are allies. When God's angel takes up arms--all will burst as a bubble of water. Even when he was king, David remembered how, as a mere shepherd boy, he killed Goliath, a giant who was armed to the teeth, with a slingshot. On many occasions, David sensed the assistance of God's angel. That is why he could with confidence console the oppressed but righteous ones with these words of comfort and strength: the angel of the Lord encamps around all who fear the Lord, and who serve Him, and an angel of God will deliver them.
O my brethren, let us not doubt these words, but carefully consider, on a daily basis, how the angel of God leaves us in sorrow when we sin, and how he hastens to our assistance with joy and unspeakable power when we repent and implore God's mercy.
O Lord God, our Creator, the King of myriads of angels: forgive us, and save us, and protect us by Thy holy angels.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MARTYR LUCIAN, PRESBYTER OF ANTIOCH
Lucian was born of noble parents in the Syrian city of Samosata. In his youth, he acquired a very broad education, both secular and spiritual. He was a man distinguished in learning, as well as in the austerity of his ascetic life. Having distributed his goods to the poor, Lucian supported himself by compiling instructive works, and thus fed himself by the work of his hands. He performed a great service to the Church in that he corrected many Hebrew texts in Holy Scripture (that heretics, in accordance with their own false teaching, had distorted). Because of his learning and spirituality, he was ordained a presbyter in Antioch. During Maximian's persecution, when St. Anthimus of Nicomedia and St. Peter of Alexandria were tortured, St. Lucian was on the list of those the emperor wanted to kill. Lucian fled the city and hid, but an envious heretical priest, Pancratius, reported him. The persecution was horrible and not even young children were spared. Two boys who did not want to eat food sacrificed to idols were thrown into a boiling bath, where in torments they gave up their holy souls to God. A disciple of Lucian named Pelagia (October 8) preserved her virginal purity from dissolute attackers by praying to God on her roof-top: she gave up her soul to Him, and her body fell from the roof. Lucian was brought to Nicomedia before the emperor. Along the way, his counsels converted forty soldiers to the Christian Faith, and all died a martyr's death. Following interrogation and flogging, St. Lucian was cast into prison where he suffered starvation. St. John Chrysostom writes of St. Lucian: "He scorned hunger: let us also scorn luxury and destroy the power of the stomach that we may, when the time that requires such courage comes for us, be prepared in advance by the help of a lesser ascesis, to show ourselves glorious at the time of battle." He received Holy Communion in prison on the Feast of Theophany, and on the following day rendered his soul to God. St. Lucian suffered on January 7, 311 A.D.
! THE VENERABLE EUTHYMIUS THE NEW
Euthymius was born in Ancyra in 824 A.D. of righteous parents, Epiphanius and Anna. He served in the army, married and had one daughter, Anastasia. He lived a strict and long ascetic life in monasteries on Mount Olympus and Mount Athos. For a time he also lived as a stylite near Thessalonica. He founded a monastery for men and a convent for women, near Thessalonica. He entered into rest on an island near the Holy Mountain toward the end of the ninth century. His holy and miracle-working relics repose in Thessalonica.
! HYMN OF PRAISE
! THE VENERABLE MARTYR LUCIAN
Lucian the most wise ascetic and scribe
Boldly walked on the path of Christ.
Against heretics and idolatrous darkness
Lucian the victor waged a bitter struggle.
Planted firmly on the foundation of the Most-holy Trinity--
The Father without beginning, with the Spirit and the Son--
Lucian glorified God in word and deed,
And he confirmed this by his innocent blood.
Savage Rome collapsed, the heresies died;
Works immoral and shameful perished;
The Church raised martyrs up to heaven;
And the Church, great and glorious, outlived all.
This is the Kingdom of saints, the Kingdom without end
That Daniel foretold and Christ founded--
O desired Kingdom, of earthly origin,
With golden domes atop the heavenly roofs!
And holy Lucian, a builder of that Kingdom,
Labored much, and gave all for it.
He now gloriously reigns beside his Jesus,
Borne by God to the angelic flock.
! REFLECTION
The saints of God place great importance on receiving Holy Communion before their death. Even though they were sacrificing their lives for Christ the Lord and washing away all their sins by the blood of martyrdom, the martyrs longingly received the Holy Mysteries whenever it was possible. St. Lucian was in prison with several of his disciples and other Christians. On the eve of Theophany, Lucian longed, on such a great Christian feast, to partake of the Body and Blood of Christ, for he knew that his death was imminent. Seeing the sincere desire of His sufferer, God Almighty arranged that some Christians pass bread and wine into the prison. When the Feast of Theophany dawned, Lucian called all the Christian prisoners to stand in a circle around him and said to them: "Surround me and be the Church." He had no table, chair, stone or wood in the prison upon which to celebrate the Divine Liturgy. "Holy Father, where shall we place the bread and wine?" they asked Lucian. He lay down in their midst and said: "Place them on my chest, let it be a living altar for the Living God!" And thus the Liturgy was celebrated correctly and prayerfully on the chest of the martyr, and all received Holy Communion. The next day, the emperor sent soldiers to bring Lucian out for torture. When the soldiers opened the door of the prison, St. Lucian cried out three times: "I am a Christian! I am a Christian! I am a Christian!" and with that, he gave up his soul to his God.
! CONTEMPLATION
Contemplate the wondrous freeing of the apostles from prison (Acts 5):
# How the elders of the Jews cast the apostles into prison;
# How an angel of God appeared at night, opened the prison, led the apostles out and ordered them to enter the temple and preach the Gospel.
! HOMILY
! on how the Lord watches over the bones of the righteous
He watches over all his bones; not one of them shall be broken (Psalm 34:20).
Let not the righteous be afraid. The All-seeing God watches over them. Can the All-seeing lose or forget something? On the Day of Resurrection, He shall gather all their bodily parts and gloriously resurrect them. The persecutors hurled the bodies of the martyrs into the sea, buried them in deep pits, or left them in fields for the birds to devour. But the Lord, by His divine providence, so guided events that these holy relics came into the hands of the faithful. They were laid honorably in costly reliquaries, churches were built over them, and wonderworking power emanated from them. God wanted to show the faithful by this that He watches over the bones of the righteous, and that He has glorified them in the Heavenly Kingdom. And the Church on earth has affirmed this through the miraculous power of their glorified bodies. Wonderworking relics are like forerunners of the general and glorious resurrection of the righteous. But what if some of the bones of the righteous are burned or ground up--could that be an obstacle to the almighty power of God? Can He not, in the Day of Resurrection, reassemble and enliven them from the scattered ashes? //There shall not an hair of your head perish// (Luke 21:18), assures the Lord. Nevertheless, if you want to understand "bones" as "works," know then that the works of the unrighteous are as smoke, and the works of the righteous are powerful and as lasting as hard bones. Not even one righteous deed will fade away or disappear in the course of time. God knows them and God watches over them, so that He may reveal them like precious pearls before the assembly of angels and men on that Day.
O All-seeing Lord, Master and Protector of the righteous, multiply our righteous deeds by Thy Holy Spirit, without whom nothing good can be done; and save us by Thy mercy, not according to our deeds.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR LONGINUS
The divine Matthew the Evangelist, in describing the passion of the Lord Jesus Christ, says: //Now when the centurion, and they that were with him, watching Jesus, saw the earthquake, and those things that were done, they feared greatly, saying, Truly this was the Son of God// (Matthew 27:54). That centurion was this blessed Longinus, who with two other of his soldiers came to believe in Jesus, the Son of God. Longinus was chief of the soldiers who were present at the Crucifixion of the Lord on Golgotha, and was also the chief of the watch that guarded the tomb. When the Jewish elders learned of the Resurrection of Christ, they bribed the soldiers to spread the false news that Christ did not resurrect, but rather that His disciples stole His body. The Jews also tried to bribe Longinus, but he did not allow himself to be bribed. Then the Jews resorted to their usual strategy: they decided to kill Longinus. Learning of this, Longinus removed his military belt, was baptized with his two companions by an apostle, secretly left Jerusalem and moved to Cappadocia with his companions. There, he devoted himself to fasting and prayer and, as a living witness of Christ's Resurrection, converted many pagans to the true Faith by his witness. After that, he withdrew to a village on the estate of his father. Even there, however, the malice of the Jews did not leave him in peace. Due to the calumnies of the Jews, Pilate dispatched soldiers to behead Longinus. St. Longinus foresaw in the spirit the approach of his executioners and went out to meet them. He brought them to his home, not telling them who he was. He was a good host to the soldiers, and soon they lay down to sleep. But St. Longinus stood up to pray, and prayed all night long, preparing himself for death. In the morning, he called his two companions to him, clothed himself in white burial clothes, and instructed the other members of his household to bury him on a particular small hill. He then went to the soldiers and told them that he was that Longinus whom they were seeking. The soldiers were perplexed and ashamed, and could not even contemplate beheading Longinus, but he insisted that they fulfill the order of their superior. Thus, Longinus and his two companions were beheaded. The soldiers took Longinus's head to Pilate, and he turned it over to the Jews. They threw it on a dung heap outside the city.
! THE VENERABLE LONGINUS, THE LOVER OF LABOR
Longinus was a monk of the Monastery of the Kiev Caves in the fourteenth century. He was the gatekeeper of the monastery, and had such a pure and grace-filled heart that he always knew the thoughts of those who were entering the monastery and of those who were leaving the monastery. The miracle-working relics of Longinus repose in the Cave of St. Theodosius.
! HYMN OF PRAISE
! THE HOLY MARTYR LONGINUS
St. Longinus stood beneath the Cross
When, on the Cross, Christ breathed His last.
Longinus beheld the wrath of the mild sky,
Witnessed the earth as it shook,
And the bright sun as it lost its rays
And clothed the whole world in darkness.
The tombs of many were opened,
And many of the dead appeared alive.
Brave Longinus was filled with fear,
And exclaimed with a remorseful sigh:
"This Man was the Son of God!
Sinful men have crucified the Innocent One!"
Next to him, two other soldiers
Echoed the exclamation of their centurion.
Longinus was a witness of the Resurrection,
And he could attest to His humiliation as well.
An eyewitness, a true witness,
Longinus desired to not conceal the truth,
But proclaimed it everywhere he went,
And glorified the resurrected Christ God!
To his death he remained Christ's soldier;
And for Christ, Longinus gave his head.
! REFLECTION
The first appearance of the Holy Martyr Longinus was as follows: Much time had passed since his martyrdom when it happened that a widow in Cappadocia became blind. The doctors were unable to do anything at all for her. Suddenly, the thought came to her to go to Jerusalem and venerate the holy places there, hoping that she might find help. She had an only son, a boy, who served as her guide, but as soon as they arrived in Jerusalem, her son died of an illness. Oh, how immeasurable was her sorrow! Having lost her eyes, she now lost her only son, whose eyes had guided her. But in her pain and sorrow, St. Longinus appeared to her and comforted her with the promise that he would restore her sight and reveal to her the heavenly glory in which her son now dwelt. Longinus told her everything about himself, and told her to go outside the city walls to the dung heap, and there to dig up his head, and that she herself would see what would happen next. The woman arose and, stumbling, somehow managed to get out of the city. She cried out for someone to lead her to the dung heap and to leave her there. When she was led to the dung heap, she bent down and began to dig with her hands, having a strong faith that she would find that for which the saint asked. As she was digging, she touched the holy martyr's buried head, and her eyes were opened, and she saw a man's head beneath her hands. Filled with gratitude to God and great joy, she took the head of St. Longinus, washed it, censed it, and placed it in her home as the most precious treasure on earth.
! CONTEMPLATION
Contemplate the courage of St. Stephen the Archdeacon in confessing Christ (Acts 7):
# How St. Stephen enumerated the miracles and mercies of God toward the people of Israel throughout the ages;
# How he denounced the opposition to God and the evil doings of the Jewish elders;
# How he called them betrayers and murderers of Christ.
! HOMILY
! on the mountains and depths of God
Thy righteousness is like the great mountains; Thy judgments are a great deep (Psalm 36:6).
The mountains of God's righteousness cut through all the distances of time and space, rising up from earth to heaven; and from the clouds of time they ascend to the clearness of eternity. Are not the saints the bearers of God's righteousness? See how they cut through time and space! Born in time, they now rejoice in eternity. Living in eternity, they come down to us in time, and help us like strong brothers help their weaker brothers. They lived on earth in a finite space and now the whole universe glorifies them. On all five continents of the world, churches are built in honor of the apostles, martyrs, and the rest of God's righteous ones. Such are the mountains of God's righteousness: you cannot limit them, you cannot encompass them, and you cannot measure them with any measure in this world. What other mountains can compare with the mountains of God? What other men can compare with the men of God? What other glory can compare with the glory of those whom God glorifies? O my brethren, let us rejoice in the righteousness of God and let us make glad in the lofty mountains of God's righteousness!
//Thy judgments are a great deep.// That is, the judgments of Thy providence are as unfathomable as a great deep. Thou didst cast Job upon a dung heap in order to glorify him; Thou didst raise Saul on the throne, that he might plunge himself into destruction; Thou hast mercy on the sinner, and Thou givest him abundance and health, that he may repent; Thou chastenest the righteous, in order to strengthen him in faith and hope!
Thy Holy Church is the greatest mountain of Thy righteousness, the source of many mountains. Thy Holy Church, O God, searches Thy judgments and Thy ways, and her wisdom is great and as sweet as a honeycomb filled with honey.
O Lord, disperse the clouds of malice from our hearts, that we may know Thy judgments and see Thy ways.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET HOSEA
Hosea was the son of Beeri of the tribe of Issachar. Hosea lived and prophesied more than eight hundred years before the birth of Christ. His divinely inspired words are found in his book, which contains fourteen chapters. He strongly rebuked Israel and Judah for their idolatry and also foretold God's punishment for their sins, the destruction of Samaria and Israel for their apostasy, and God's mercy on the tribe of Judah. He foretold the abolition and the end of the sacrifices of the Old Testament. He foretold the coming of the Lord, and the richness of gifts that He would bring with Him to earth. He lived to a very old age and entered peacefully into rest.
! THE HOLY MARTYRS COSMAS AND DAMIAN, THE UNMERCENARIES
There are three pairs of holy physicians by the name of Cosmas and Damian. The first entered into rest peacefully on November 1, the second pair was stoned in Rome on July 1, and the third was from Arabia; and it is these that we speak of under today's date. They were physicians by profession, and when they received the Christian Faith, they healed the sick in the name of the Lord Jesus Christ. They became widely known for their miraculous healings. The malicious pagans seized them, and took them before Governor Lysias in the town of Aegea. Since neither of these brothers would renounce Christ at any cost, they were cast into the sea, then into fire, but the omnipotent God saved them from both the water and the fire. An angel of the Lord appeared to them and saved them. The pagan governor ascribed this to their alleged sorcery but they answered: "We know nothing of sorcery nor do we need sorcery, but we possess the power of Christ--which saves us and all who invoke His Most-holy Name." The pagans struck them with stones but the stones bounced off them; they shot them with arrows, but the arrows rebounded as well. Finally, they were beheaded with the sword. Saints Leontius, Anthimus and Eutropius also suffered with them, and received heavenly wreaths of glory. They suffered in the time of Diocletian and Maximian. Many miracles were manifested from their holy relics, even as miracles abounded from them during their life.
! THE VENERABLE MARTYR ANDREW
St. Andrew was a Cretan by birth and a Christian priest. In the time of the iconoclastic persecution, he showed himself to be a great defender of the veneration of icons. Andrew went to Constantinople to denounce the wicked Emperor Copronymus. As the emperor stood in the Church of the Holy Martyr Mamas, Andrew entered the church, stood before him, and openly rebuked him before all. "It would be better for you, O Emperor, to attend to military matters and to govern the people, than to persecute Christ and His servants." For this, St. Andrew was beaten severely, tortured and dragged through the streets, where a heretic struck him with an axe and killed him. Thus, Andrew rendered his holy soul to God in the year 767 A.D. His relics gave healing to the sick.
! SAINT LAZARUS THE FOUR-DAYS-DEAD
Lazarus's principle feasts are on March 17 and Lazarus Saturday during Great Lent. Under today's date is commemorated the translation of his relics from the island of Cyprus to Constantinople. This occurred when Emperor Leo the Wise built the Church of St. Lazarus in Constantinople, and translated Lazarus's relics there in the year 890 A.D. When, after almost a thousand years, Lazarus's grave in the town of Kition on Cyprus was unearthed, a marble tablet was found with the inscription: "Lazarus of the Four Days, the friend of Christ."
! HYMN OF PRAISE
! THE HOLY PROPHET HOSEA
The discerning Prophet Hosea cried out
And prophesied tribulation to the sinful nation:
"The Lord, the Lord saith: Mercy is dear to Me,
But sacrifices, filthy and rotten, are not dear.
Ye transgress the Law, as did Adam of old,
Ye worship lies, and a falsehood is lord over you.
Your sacrifices are finished; I will not accept them.
Now I shall prepare the greatest sacrifice for Myself.
Ye have planted godlessness; iniquity have ye reaped.
Ye have sown wind, and harvested a storm.
But if ye now plant righteousness, ye will reap mercy--
And to Me, ye will be a holy people again.
But ye are ashamed of Me and love idols.
Ye encourage adultery, ye encourage sin!
That is why ye shall wander throughout the world,
And every nation shall be more powerful than you.
And I will raise up a New Israel:
A new Kingdom--a Kingdom of saints.
It will be as the dew and as a blossoming lily,
And its most wondrous fragrance shall fill the world.
I am the Lord, the Lord; whatever I desire I can do!
Blessed are those who worship Me, the Living God."
! REFLECTION
The second appearance of the Holy Martyr Longinus: When Longinus appeared to the blind widow whose son had died, he promised to restore her sight and to reveal her son in great glory. Finding the relics of the holy martyr and touching them with her hands, the widow immediately regained her sight, and thus, one promise was fulfilled. The following night, St. Longinus appeared to the widow in radiant attire, holding her son by the hand, who was also clothed resplendently. Caressing the child like a father, Longinus said: "Woman, behold your son for whom you weep so much! Look at the honor and glory given him; look and be comforted. God has numbered him among the heavenly ranks who live in His Kingdom. I have now brought him from the Savior, and he will never be parted from me. Take my head and your son's body, and bury them together in one coffin. Mourn your son no longer, and let not your heart be troubled, for great glory, joy, and endless rejoicing is given him from God." Seeing and hearing all this, the woman was filled with great joy, and she returned to her home, saying to herself: "I asked for bodily eyes and I found spiritual eyes. I was saddened at the death of my son, and now I have him in heaven, where he remains in glory with the prophets and rejoices with them unceasingly."
! CONTEMPLATION
Contemplate the wondrous vision of St. Stephen the Archdeacon and Protomartyr (Acts 7):
# How Stephen, filled with the Holy Spirit, saw the heavens opened;
# How he said: //Behold, I see the heavens opened, and the Son of Man standing on the right hand of God// (Acts 7:56);
# How the Jews stoned him.
! HOMILY
! on the festering wounds of sin
My wounds are foul and festering because of my foolishness (Psalm 38:5).
The prophet speaks of the wounds of sins that he himself committed, and from which he sensed in himself the stench of sin. As much as this acknowledgment reveals the impurity of previous sins, so is the subsequent purity of the repentant one also shown. For as long as man follows the corrupt path of sin, he does not sense its suffocating stench; but when he withdraws from this path and sets off on the pure path of righteousness, he senses the inexpressible difference between purity and impurity, between the path of virtue and the path of vice. Imagine a man who has spent the night in a stinking tavern and finds himself in a garden of roses the next morning. In the former there was stench, poison, debasement of soul and body, anger, discord, and the tormenting of himself and others. In the latter is God's great sun overhead, beautiful flowers everywhere, fresh air, wondrous fragrance, serenity and health. Imagine this, and understand that there is an even greater difference between the path of sin and the path of God. //My wounds are foul and festering.//Thus the great king describes the fruits of his sinful past. Nothing is as foul as sin, nothing festers as much and nothing spreads as much as sin. The stench of bodily wounds suggests, in only a small way, the unbearable stench of a sinful soul. That is why every holy thing distances itself from such a soul. The pure heavenly spirits hide from such a one, and the impure spirits of hades seek its company. Every new sin is a fresh wound on the soul; every sin is corruption and stench. How does sin arise? From //my foolishness// explains the prophet. A mind derailed from its divine track leads man to sin. Until the mind is cleansed, man cannot be cleansed. //But we have the mind of Christ// (I Corinthians 2:16), says the Apostle. In other words, we have a mind put back on track, as was Adam's mind before the sinful stench. Hence brethren, all Orthodox teaching on asceticism concentrates on one main point: on the mind of man; on the cleansing and correcting of the mind.
O Lord Jesus Christ, Purity and eternal Source of purity, help us to reject our foolishness; help us to reason according to Thy mind.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE AND EVANGELIST LUKE
! Luke was born in Antioch. In his youth, he excelled in his studies of Greek philosophy, medicine and art. During the ministry of the Lord Jesus on earth, Luke came to Jerusalem, where he saw the Savior face to face, heard His saving teaching and was witness to His miraculous works. Coming to belief in the Lord, St. Luke was numbered among the Seventy Apostles, and was sent out to preach. With Cleopas, he saw the resurrected Lord on the road to Emmaus (Luke 24). After the descent of the Holy Spirit, Luke returned to Antioch and there became a fellow worker of the Apostle Paul and traveled to Rome with him, converting Jews and pagans to the Christian Faith. //Luke, the beloved physician, … greets you,// writes the Apostle Paul to the Colossians (Colossians 4:14). At the request of Christians, he wrote his Gospel in about the year 60 A.D. Following the martyrdom of the great Apostle Paul, St. Luke preached the Gospel throughout Italy, Dalmatia, Macedonia and other regions. He painted icons of the Most-holy Theotokos--not just one, but three--and icons of the Holy Apostles Peter and Paul. Hence, St. Luke is considered to be the founder of Christian iconography. In old age, he visited Libya and Upper Egypt. From Egypt he returned to Greece, where he continued to preach and convert many with great zeal despite his old age. In addition to his Gospel, St. Luke wrote the Acts and dedicated both works to Theophilus, the governor of Achaia. Luke was eighty-four years old when the wicked idolaters tortured him for the sake of Christ and hanged him from an olive tree in the town of Thebes, in Boethia. The miracle-working relics of this wonderful saint were transported to Constantinople in the reign of Emperor Constantius, the son of Constantine.
! SAINT PETER OF CETINJE, METROPOLITAN OF MONTENEGRO
Peter was born on April 1, 1749 A.D., in the village of Njeguš. He entered the monastic order at the age of twelve. Following the death of Metropolitan Sava in 1782 A.D., Peter became the Metropolitan and ruler of Montenegro. This glorious man dedicated his entire holy life to his people. He worked with all his strength to reconcile the quarreling clans of Montenegro, and strove mightily to defend the land and people from greedy aggressors. He succeeded in both tasks. He is especially glorified for his victory over Napoleon's army in Boka and Dalmatia. He was very strict with himself, and with everyone else he was just and condescending. Peter lived in a small cell like a simple monk even though he was a prince over the people. He reposed on October 18, 1830 A.D. His miracle-working relics repose, incorrupt, in the Monastery of Cetinje. The Lord glorified him in the heavens and on earth as His faithful and long-suffering servant.
! SAINTS JULIAN AND DIDYMUS THE BLIND
St. Julian, called the "Hermit," was a Persian and an unlearned peasant, but because of the purity of his heart he was a vessel of the grace of the Holy Spirit. He lived a life of asceticism beside the Euphrates River in Mesopotamia, and possessed the gift of clairvoyance. In the same moment that Julian the Apostate perished, St. Julian discerned this in the spirit, and declared it to his disciples. St. Didymus the Blind was his contemporary. He lived in Alexandria, and also perceived in the spirit the death of Julian. St. Didymus was at prayer during the night when a voice came to him from heaven, saying: "Today the Emperor Julian is no more; inform Patriarch Athanasius of this." St. Anthony the Great greatly respected this wondrous blind saint who had the spirit of discernment. He stayed with him and prayed to God with him whenever he came to Alexandria from the desert. Both St. Julian and St. Didymus, wonderful servants of God, entered into rest some time after the year 362 A.D.
! HYMN OF PRAISE
!
! SAINT LUKE THE APOSTLE AND EVANGELIST
The divine Luke, both wise and learned,
Was tortured willingly for the Lord.
He could have avoided mockery and torture,
But the world would not have had the great Luke.
The young Luke beheld God's truth
And surrendered his heart to the Son of God.
He hearkened to the Teacher, beheld the Wonderworker,
And in Him he recognized the Immortal Creator.
He beheld the Resurrected One, and spoke with Him,
And worked miracles in His name.
Christ became his only joy,
And Luke sacrificed his mind, wealth and youth to Him.
When Luke became old, he was young in Christ,
And gave to the world what he received from the Lord.
And when he had given the world all he could give,
Then the world, fulfilling the Scripture, repaid him with contempt.
From an old olive tree the aged Luke hung,
With a smile on his face and his arms folded crosswise.
And the hand of Christ came down from heaven
And received the soul of His Evangelist.
Now, in radiant Paradise with the other apostles,
St. Luke prays for the Holy Church.
! REFLECTION
Can a sinner repent of his sins in ten days? According to the immeasurable compassion of God he can. During the reign of Emperor Maurice, there was a well-known bandit in the vicinity of Constantinople. He inspired fear and trembling both within the capital and without. One day, the Emperor Maurice himself sent the robber a cross as a sign of faith that he would do him no harm if he surrendered. The robber took the cross and surrendered. Arriving in Constantinople, he fell before the feet of the emperor and begged for forgiveness. The emperor kept his word, had mercy on him and released him. Immediately after that, the robber became gravely ill and sensed that death was drawing near. He bitterly repented of all his sins and tearfully prayed to God that He forgive him, as the emperor had forgiven him. He shed so many tears at prayer that his handkerchief was completely soaked. After ten days of weeping and praying, the repentant man reposed. The same night he passed away, his physician saw a wondrous vision in a dream: when the robber had given up his soul, there gathered around him black, manlike demons with pieces of paper on which were written all his sins. Two radiant angels also appeared. The angels set a scale between them, and the joyful demons placed all those papers on it, weighing down their side of the scale; but the other side was empty. The angels held counsel: "What shall we place on it? Let us seek something good in his life!" And then that handkerchief soaked with tears of repentance appeared in the hands of one angel. The angels quickly placed it on their side of the scale and it outweighed all the demons' papers. Then the black demons fled, howling sorrowfully, and the angels took the soul of the repentant thief and carried it to Paradise, glorifying the man-loving God.
! CONTEMPLATION
Contemplate the miracle of the Apostle Philip and the Ethiopian eunuch (Acts 8):
# How an angel guided Philip from Samaria to the road into Gaza;
# How Philip saw the eunuch of Queen Candace, explained to him the prophecy of Isaiah, and baptized him;
# How an angel made Philip invisible to the eunuch, and transported him instantly to the town of Azotus.
! HOMILY
! on the sins of the tongue
I said, I will guard my ways, lest I sin with my tongue (Psalm 39:1).
The sin of the tongue is the most common and most frequent sin. //If any man offend not in word, the same is a perfect man,//says the Apostle James (James 3:2). When a penitent sets out on God's path--when he begins to live according to God's commandments--he should first strive to avoid sin with the tongue. That was the rule that the penitent David laid down for himself. He vowed especially to remain silent before his adversaries: //I will restrain my mouth with a bridle, while the wicked are before me// (Psalm 39:1). Behold a most wonderful rule for one who is being healed of sin. When he is accused, he does not reply; when he is slandered, he remains silent. In truth, what does it help to speak with an enraged, unrighteous man who does not love God more than himself? If you speak to him of evil, you will enrage him even more. If you speak to him of good, you will make him a mocker of holy things. Before Pilate Christ remained silent. Pilate said: //Answerest Thou nothing?// (Mark 15:4). What can He reply to you, when you do not have ears to hear or a mind to understand? Behold, the silence of the righteous one before the unrighteous one can still have the best influence on the unrighteous one. Left to interpret the silence of the righteous one by himself, the unrighteous one can interpret it for the benefit of his soul; while any other answer, good or bad, will be interpreted for evil, to the condemnation of others and to the justification of himself. Blessed is he who learns to govern his tongue.
O Lord Jesus Christ our God, Thou Who hast shown us by example how and when to speak, Thou hast shown us by example how and when we should be silent. Help us, by Thy Holy Spirit, that we not sin with the tongue.
To Thee be glory and praise forever. Amen.
!
! THE HOLY PROPHET JOEL
Joel is second in the line of the minor prophets. St. Joel was the son of Phanuel, from the tribe of Reuben. He lived eight hundred years before Christ. Joel prophesied the misfortunes of the people of Israel, and the Babylonian Captivity because of the sins they had committed in the sight of God. He called the people to fasting and the priests to tearful penitential prayer, that God would have mercy on them: //Sanctify ye a fast … and cry unto the Lord//(Joel 1:14); //Let the priests, the ministers of the Lord, weep between the porch and the altar// (Joel 2:17). Joel also foretold the Descent of the Spirit of God upon the apostles and the pouring out of the grace of the Spirit of God upon all Christians: //Then afterward I will pour out My spirit upon all flesh// (Joel 2:28). He prophesied and described the Dread Judgment of God, and also prophesied the glory of God's Holy Church.
! THE HOLY MARTYR VARUS
Varus was a Roman officer in Egypt and also secretly a Christian. When seven Christian teachers were cast into prison, Varus visited them, supplying them with necessities and ministering to them zealously. He was amazed at these martyrs and grieved that because of his fear he could not become a martyr for Christ. The men of God encouraged him, and Varus decided that he would go with them to be tortured. One of these men of God died in prison, so that when the wicked eparch had the martyrs brought before him, there were only six remaining. He inquired as to the seventh. Varus said to him: "I am the seventh." The enraged governor tortured Varus first. He commanded that he be flogged with dry rods naked, and after that had him tied to a tree and sliced apart piece by piece until the saint gave his holy soul to God. His body was thrown on a dung heap. A Palestinian woman named Cleopatra, the widow of an officer, was there with her son John. She secretly took Varus's holy relics from the dung heap and buried them in her house. Then she begged permission from the eparch to take the body of her deceased husband from Egypt to Palestine. As she was the wife of an officer, the eparch immediately gave his permission. However, the blessed Christian Cleopatra did not take the body of her husband but the relics of the Holy Martyr Varus instead. Thus, she brought the martyr's relics to Edras (the village of her birth) near Mount Tabor, and buried them with honor there. Afterward, she built a church to St. Varus and he often appeared to her from the other world, resplendent as an angel of God.
! THE VENERABLE PROCHORUS OF PCHINJA
St. Prochorus was a contemporary and friend of Saints John of Rila and Gabriel of Lesnov. According to his prayer, God showed him the place where he would live a life of asceticism. This place was a wooded area near the River Pchinja. Here Prochorus labored in asceticism to his old age and repose. Only the One All-seeing God knows the extent of Prochorus's labors and the temptations he endured in the course of his asceticism. But one can judge by his myrrh-gushing relics and his numberless miraculous healings--which have continued up to today--the greatness of his asceticism and the greatness of God's grace which was given to him because of his great labors. St. Prochorus entered into rest and took up his abode in the Kingdom of God in the eleventh century.
! HYMN OF PRAISE
! THE VENERABLE PROCHORUS OF PCHINJA
From his early youth, holy Father Prochorus
Hid from the world and from vanity,
Diligently working with fasting and sweat,
Until his soul was raised up and bound to God.
His companions were beasts of the forest;
Resplendent angels were his protection;
The saints of God were astonished at him,
For St. Prochorus attained all that they had attained.
God gave him abundant grace:
Great and powerful authority over demons,
Power over infirmity and varied sufferings,
Help for the sorrowing by his prayers.
By labors, Prochorus seized heaven,
And of the Heavenly Kingdom he became worthy.
He made himself worthy, and helps others
Who seek to enter into the Kingdom.
The temporal he cast off; the eternal he embraced;
And he paid a small price for the precious treasure.
The wonderworker Prochorus is in Paradise--
In heavenly splendor, now entirely aglow.
And he helps those who pray to him,
Those who believe in and love Christ our God.
! REFLECTION
An appearance of the Holy Martyr Varus: When the devout widow Cleopatra built a church to him, she summoned the bishop and priests to consecrate it. A large number of Christians gathered for this celebration, for the entire countryside venerated St. Varus as a great healer and miracle-worker. Following the divine services, this pious benefactress went before the relics of St. Varus and prayed: "I beseech you--you who endured much suffering for Christ--implore God for that which is pleasing to Him; and for me and my only son, ask that which is beneficial." Cleopatra's son John was ready for the army. Just as she left the church, John became ill. He was seized with a burning fever that grew steadily worse until, around midnight, John died. The grief-stricken, furious mother came before the tomb of St. Varus and spoke sharply: "O saint of God! Is this the way you help me?" and she said much more in her bitter lamentation until, utterly exhausted, she fell into a light sleep. St. Varus appeared to her with her son John. Both were radiant as the sun in garments whiter than snow, bound with golden girdles, and had magnificent wreaths on their heads. God's saint said to her: "Did you not pray to me to implore God for whatever was pleasing to Him, and beneficial to you and your son? I prayed to God and He, in His unspeakable goodness, took your son into His heavenly army. If you so desire, here he is: take him and place him in the army of the earthly king." Hearing this, the young John embraced St. Varus and said: "No, my Lord, do not listen to my mother and do not send me back into the world--full of unrighteousness and iniquity--from which you have delivered me." Awakening from the dream, Cleopatra felt great joy in her heart and left the church. She lived near the church for seven years, and St. Varus often appeared to her with John.
! CONTEMPLATION
Contemplate Saul's wondrous conversion to the Christian Faith (Acts 9):
# How Saul set out to persecute Christians in Damascus;
# How a light shone down from heaven and He heard the voice of Christ.
! HOMILY
! on the soul's thirst for God
My soul thirsts for God, for the Living God: When shall I come and appear before God? (Psalm 42:2).
When only a spark of love for God shines in the heart of man, he should not extinguish it but let it burn, and he will see a miracle. That spark will flare up into a torch of unseen radiance, and the light and its warmth will be very great. In the light of his love for God, a man will feel his life in this world to be as darkness; and from the warmth of his love for God, he will feel an unquenchable thirst for God, a thirst to be closer to God, a thirst for seeing God. David, the lover of God, compares this thirst to the thirst of a deer who races to springs of water. //My soul thirsts for God, for the Living God.//Is not everything around us infirm? Does not everything around us quickly decay? We grab at shadows, we embrace corpses. We pay today for tomorrow's stench--we pay with gold and silver, sometimes with our honor and conscience, and at times even with our life--for the stench of tomorrow's decay! This is not love but animal lust. A great soul seeks a subject worthy of love, seeks a subject not susceptible to destruction, decay, decomposition and the filth of transient bodies. That is why King David, the lover of God, emphasizes //the Living God//. For who, in truth, is mighty and alive save God? God endowed His angels and saints with strength and life: yet all of it is His, and from Him. //When shall I come and appear before God?// Here is the irresistible yearning of true love for God. Shame on all who say that they believe in God, and love God, while the very thought of death--of leaving this world--drives them wild with fear.
O Lord our God, holy, mighty and living--the Source of holiness, the Source of strength, the Source of life--illumine us and warm us with love for Thee.
To Thee be glory and praise forever. Amen.
! SAINT ANDREW THE FOOL-FOR-CHRIST
Andrew was a Slav by birth. As a young man, he was enslaved; and was bought by Theognostus, a wealthy man in Constantinople, during the reign of Emperor Leo the Wise (son of Emperor Basil the Macedonian). Andrew was handsome in body and soul. Theognostus took a liking to Andrew, and allowed him to become literate. Andrew fervently prayed to God, and with love attended church services. Obeying a heavenly revelation, he adopted the ascesis of foolishness for Christ. Once, when he went to the well for water, he tore off his clothes, and slashed them with a knife, feigning insanity. Saddened by this, his master Theognostus bound him in chains and brought him to the Church of St. Anastasia the Deliverer from Bonds, so that prayers would be read for him. But Andrew did not improve, and his master freed him as mentally ill. Andrew pretended insanity by day, but prayed to God all night long. He lived without shelter of any kind. He even spent the nights outside, walked around half-naked in a single tattered garment, and ate only a little bread when good men would give it to him. He shared all that he received with the beggars, and would mock them--to avoid being thanked by them--for holy Andrew wanted all his reward to come from God. Therefore, the great grace of God entered into him and he was able to discern the secrets of men, perceive angels and demons, exorcize demons from men, and correct men from their sins. Andrew had a most beautiful vision of Paradise and the exalted powers of heaven. He also saw the Lord Christ on His throne of glory; and he, with his disciple Epiphanius, saw the Most-holy Theotokos in the Church of Blachernae as she covered the Christian people with her omophorion. This occurence is celebrated as the Feast of the Protection of the Most-holy Theotokos (October1). In a vision he also heard ineffable, heavenly words that he dared not repeat to men. After a life of almost unparalleled harshness of ascesis, Andrew entered into rest in the eternal glory of his Lord in 911 A.D.
! THE HIEROMARTYR CYPRIAN AND JUSTINA THE VIRGIN
Cyprian moved from Carthage to Antioch, where Justina lived with her parents, Edesius and Cleodonia. Edesius was a pagan priest, and his entire household was pagan. But when Justina visited a Christian church and learned the true Faith, she converted both her father and mother to the Christian Faith. All three received baptism by Optatus the bishop. Cyprian, however, was a magician, who consorted with impure spirits and practiced sorcery. A certain dissolute pagan youth named Aglaidas was willing to pay any price to charm Justina, for she was beautiful. The holy virgin Justina rejected him adamantly, and he sought help from Cyprian. Cyprian invoked one evil spirit after another, to inflame Justina with impure passion for Aglaidas, but did not succeed. By the sign of the Cross and prayer to God, she drove the evil spirits away. After this futile effort, Cyprian recognized the power of the Cross and was baptized. Eventually, he was made a presbyter, then a bishop. Embittered pagans denounced him and Justina; both were tried in Damascus, tortured, and then beheaded in Nicomedia. They entered into rest at the end of the third century.
! THE HOLY MARTYRS DAVID AND CONSTANTINE
David and Constantine were Christian princes from Argveti (Georgia). They were condemned to death by Caliph Emil-el Mumenim, and were drowned in a river in Imereti in the year 730 A.D. Before their death, they prayed to God that He forgive the sins of all who would invoke them in prayer for help. After their prayers were completed, lightning struck, and a voice from heaven said that their prayers had been heard. The saints' relics repose at the Monastery of Motsameta in Georgia.
! HYMN OF PRAISE
!
! SAINT ANDREW THE FOOL-FOR-CHRIST
Fool-for-Christ Andrew stood at night
Under the starry firmament, praying:
"O Most-high God, three Persons in one Essence,
Salvation and Revival of souls that slumber!
O sweet Jesus, sweeter than life,
Treasury of joy and eternal beauty,
Cleanse the shepherds, enlighten the kings,
Console the troubled and sanctify the whole world.
Do not separate even me, the sinner, Andrew the Fool-for-Christ,
From Thy holy people, O Lord!"
O Saint Andrew, full of God's wisdom,
You who taught the world by words of foolishness--
With the language of the world you spoke to the world,
And by feigned foolishness you glorified Christ.
Men despised you for your foolishness,
And their dogs rose up from their lairs and chased you!
You were God's altar on the rubbish heap of the world.
You censed the world with your prayers--
And the world is not worthy of this marvel.
Glory to you, Andrew, holy Fool-for-Christ!
! REFLECTION
A vision of St. Andrew the Fool-for-Christ: A monk in Constantinople was distinguished as an ascetic and spiritual father, and many people came to him for prayers. But this monk had the secret vice of avarice. He collected money and gave it to no one. St. Andrew met him on the street one day, and saw a terrible snake coiled around his neck. St. Andrew took pity on him, approached him, and began to counsel him: "Brother, why have you lost your soul? Why have you bound yourself with the demon of avarice? Why have you given him a resting place within yourself? Why are you amassing gold as though it will go to the grave with you, and not into the hands of others? Why are you strangling yourself by stinginess? While others hunger and thirst and perish from cold, you rejoice looking at your heap of gold! Is this the path of repentance? Is this the monastic rank? Do you see your demon?" At that, the spiritual eyes of the monk were opened, and he saw the dark demon and was greatly horrified. The demon dropped away from the monk and fled, driven by Andrew's power. Then a most radiant angel of God appeared to the monk, for his heart was changed for the good. Immediately, he went about distributing his hoarded gold to the poor and needy. From then on, he pleased God in everything and was more greatly glorified than before.
! CONTEMPLATION
Contemplate the righteousness of Hezekiah, and God's reward to him (II Chronicles 30, 31):
# How Hezekiah did that //which was good and right and truth before the Lord his God// (II Chronicles 31:20);
# How he restored holiness to the Temple of the Lord, and rooted out idols and idol-worshiping among the people;
# How God had mercy on him, and he was prosperous in everything.
! HOMILY
! on the will of the righteous in the will of God
But his delight is in the Law of the Lord and on His Law doth he mediate day and night (Psalm 1:2).
Brethren, blessed is that man--thrice blessed is he--whose will is submitted to the will of God; whose mind thinks of nothing contrary to the counsel of God; and whose heart desires nothing contrary to the will of God. The mind is the rudder of both the will and the heart. If the mind is permanently directed toward God, then it will eagerly meditate //day and night//on the Law of God, and will not walk in //the counsel of the ungodly// (Psalm 1:1) but will seek the truth and the revelation of all that is in God's Law. If the mind is so directed to God, then, swiftly, the heart and will of man will also be directed toward God. Then the will, as the implementing organ of the inner man, will carry out only what is in accordance with the will of God and what is written in the Law of God. Then man will not stand //in the way of the sinners// (Psalm 1:1), and will not sit //in the seat of the scornful// (Psalm 1:1); he will not commit sin, nor will he draw other men to sin. At the beginning of this Psalm, the Prophet David praises the man who does not commit three specific evils, and now he continues to praise him when he does two good things. The three evils are: to seek wisdom of a sinner, to live the life of a sinner and to corrupt others by one's evil example. The two good things are: to conform one's will completely to the Law of God; and to direct one's mind to meditate day and night on God's Law.
O my brethren, how lamentably shallow are the minds of all those who do not know the Law of God! The depth of man's mind is measured by the depth of his knowledge of God's law. The mind of him who meditates on the mysteries of God's law is deep, wide and exalted; and the mind is the rudder of the heart and will. O my brethren, how shallow, unstable and dissolute is the will of him who does not subordinate his will to the will of God! Indeed, it is lamentably shallow, unstable and dissolute. What is the Law of God, brethren? It is the expression of God's will. Where is that expression to be found? In Holy Scripture and in the Tradition of the saints of the Church of God. Blessed is he who knows the will of God and fulfills it.
O Lord God, great and powerful, merciful and just; enlighten our minds by Thy holy law, so that we may conform our wills to Thy man-loving and saving will.
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT-MARTYR ARTEMIUS
This glorious saint was an Egyptian by birth and the chief commander under Emperor Constantine the Great. When the victorious Cross, surrounded by stars, appeared to Emperor Constantine, Artemius also saw that Cross, believed in the Lord Christ and was baptized. Later, during the reign of Emperor Constantius, this emperor sent him to Greece to remove the relics of St. Andrew from Patras and St. Luke from Thebes, and to take them to Constantinople. Commander Artemius carried this out with joy. After that, Artemius was appointed as augustalis//) and imperial prefect in Egypt. He remained in this position during the reign of Constantius, and for a period of time under Emperor Julian the Apostate. When the apostate emperor went to war against the Persians, he came through Antioch and commanded Artemius to come to Antioch with his army. Artemius came. Then the emperor subjected two Christian priests, Eugenius and Macarius, to torture. Seeing this, Artemius became greatly disturbed and, facing the emperor, said: "Why, O Emperor, why do you inhumanly torture these innocent and dedicated men of God, and why do you force them to renounce the Orthodox Faith?" Artemius continued, prophesying: "Your death is near." The enraged emperor sent those two honorable priests into exile to Arabia, where they died shortly thereafter. He then stripped Commander Artemius of his military rank and ordered him to be flogged and torn asunder. Thoroughly wounded and bloodied, Artemius was thrown into prison, where the Lord Jesus Christ Himself appeared to him, and healed and comforted him. Then the emperor commanded that he be spread out on a stone, and that another heavy stone be placed upon him, so that his body would be smashed flat as a board. Finally, St. Artemius was beheaded. It was the year 362 A.D. Emperor Julian went out against the Persians and perished dishonorably, as St. Artemius had foretold.
--------------------
//) Augustalis was a princely title bestowed on a high government official. --Trans.
! THE HOLY RIGHTEOUS ARTEMIUS
Artemius was born in 1532 A.D., the son of Russian peasants Cosmas and Apollinaria, from the village of Verkola in the region of Dvina. Even at the age of five, he differed from other children by his rare piety and meekness. When he was thirteen, the child walked with his father through a great forest in severe weather and reposed there. Unable to dig a grave, his grieving father covered his body with branches and departed. Twenty-eight years later, a man saw an unearthly light in the forest. Upon approaching the light, he found the body of Artemius intact and incorrupt. Many of the sick were healed of illnesses as soon as they touched the body of St. Artemius. His holy relics repose in a monastery near Pinega, in the Province of Archangelsk.
! THE VENERABLE GERASIMUS THE NEW
Gerasimus was from Trikala in the Peloponnese of the prominent Notaras family. He was born in 1509 A.D. He lived a life of asceticism on Mount Athos, and then in Palestine, where he fasted for forty days. After that, he settled on the island of Cephalonia, where he founded a convent. By his prayer he brought down rain, healed the sick, and foretold the future. He rested in the Lord on August 15, 1579 A.D. Gerasimus was a miracle-worker both during his life and after his repose.
! THE VENERABLE NEW MARTYR IGNATIUS
Ignatius was from the Bulgarian region of Eski-Zagora. This is that glorious region of Zagora that has given the Church of God many holy ascetics and martyrs. He lived a life of asceticism in the Skete of St. John the Forerunner on Mount Athos. He willingly gave himself to the Turks to be tortured for Christ, and was hanged in Constantinople on October 8, 1814 A.D. His relics are miracle-working, and his head is honorably preserved in the Monastery of St. Panteleimon on Mount Athos.
! HYMN OF PRAISE
! THE HOLY GREAT-MARTYR ARTEMIUS
St. Artemius the commander
Did not hide his faith before the emperor,
But proclaimed his faith with great courage
And glorified Christ God before the emperor.
This apostate emperor forgot God,
And subjected his commander to torment.
The saint dedicated his mind to God
And little felt the cruel tortures,
Since there is a greater suffering for the sinner who tortures
Than for the righteous one being tortured!
The emperor beheaded this glorious commander
But the Lord glorified His servant
And raised him up to the Heavenly Kingdom.
He gave him power to drive out demons,
Grace to heal every sickness and suffering--
All by the power of God, without labor or word.
Whoever loves and believes in Christ,
Has a champion in St. Artemius.
! REFLECTION
The compassionate God wonderfully guides those who give themselves over to His holy will and care. Just as a candle-maker makes whatever kind of candle he wants from soft wax, so the All-wise God makes immortal lights in the Heavenly Kingdom of His devoted servants. St. Ignatius the New Martyr was totally devoted to God, even as a child. He yearned to become a monk and to be a martyr for the Faith. During the Karageorge uprising, the Turkish army was conscripting men throughout Bulgaria to fight against the Serbs, and even came to the house of Ignatius's father, George, to see if anyone there was fit for military service. Seeing that George was a well-built and strong man, they wanted to take him into the army. But George resolutely said: "I cannot fight against my fellow Christians." The infuriated Turks killed him on the spot. The young Ignatius hid in a neighboring house, then fled to Romania, but his desire for monasticism took him to the Holy Mountain. Even so, he wanted something more than monasticism--he desired martyrdom. He prayed with tears one night before the icon of the Most-holy Theotokos, imploring her to grant him the path of martyrdom. He heard a sound in front of him, and opened his eyes to see the glowing halo detach itself from the icon and rest upon his head. Shortly after that, he suffered martyrdom at the hands of the Turks, and received the wreath of eternal glory.
! CONTEMPLATION
Contemplate the Lord's wondrous appearance to the Apostle Ananias and to Saul (Acts 9):
# How the Lord appeared to Ananias and directed him to Saul in the street called Straight;
# How, at that very moment, in a vision, Saul saw Ananias healing him of his blindness.
! HOMILY
! on old and new tales of God's wonders
We have heard with our ears, O God; Our fathers have told us, what work Thou didst in their days, in the times of old (Psalm 44:1).
Thus King David speaks in the name of his people, and enumerates several great works that God performed for Israel. We, brethren, have also heard of all these works, from Holy Scripture, and of many more works and kinds of works than those of which David had heard, for they took place after him! Have we not heard of incomparably more miraculous and greater works of God's providence and God's love for mankind than all that David heard? The Son of God became incarnate of the Most-pure Virgin and lived as a man among men, poured out wisdom, worked miracles, destroyed death, put the devil to shame, and gave power to His followers. David did not hear of these things, but we have heard, for they have been revealed to us by our spiritual Fathers: the apostles and evangelists, martyrs and righteous ones, and all the ranks of saints from ancient times to the present day. Not only did they reveal it to us, but the Holy Spirit reveals it to us every day through the Holy Church, through the grace-filled Mysteries and through countless miracles. Behold, here is a reason for great joy, but also for great fear, for much is given to us and much will be required of us. We have been given more spiritual riches than all those who lived before Christ--more wisdom and understanding, more of God's glory and power, and more, many more examples of God's love for man and man's love for God. Ask yourselves, you richest of the rich, what have you given and what are you giving to God for all of this? You should strive to not be put to shame at God's Judgment. As a dream soon slips away, so will all your days on earth soon slip away, and the sound of the angel's trumpet will soon summon all nations and people to the Dread Judgment of God. Strive that you not then be ashamed, for you will not be able to excuse yourself with "We did not know," or "We did not have!" You know, and you have had more revealed to you, than even David and Solomon had; and more will be required of you than of them.
O Son of God, our great and wonderful Lord, God and Savior, remind us every day and every hour of Thy Precious Blood, shed for us, that we do not forget, O Lord, and that we not be eternally condemned.
To Thee be glory and praise forever. Amen.
! THE VENERABLE HILARION THE GREAT
Like a rose growing among thorns, this great saint was born of pagan parents in the village of Tabatha near Gaza in Palestine. His parents sent him to study in Alexandria, where the gifted youngster quickly assimilated both secular learning and spiritual wisdom. Coming to know the Lord Christ, he was baptized, and desired to dedicate himself completely to the service of the Lord. With this desire in his heart, Hilarion visited St. Anthony in the desert and became his disciple. Then he returned to his homeland and lived a life of asceticism near Maiuma, at Gaza. Demons tried to terrify him in various ways, but by prayer to God and the sign of the Cross he always overcame them and drove them away. Many lovers of the spiritual life gathered around him. Hilarion became for Palestine what St. Anthony was for Egypt. A divine teacher, a strict ascetic and a wonderful miracle-worker, Hilarion was revered not only by Christians but also by pagans. However, fearing the praise of men and tearfully lamenting, "Woe is me, I have received my reward on earth!" he fled from place to place, to hide from men and remain alone with his soul and with God. Thus, he traveled and lived in Egypt, Sicily, Dalmatia and finally in Cyprus, where his life of great labor came to an end in about the year 372 A.D., at the age of eighty. The miracle-working relics of St. Hilarion were translated to Palestine by his disciple Hesychius, and were placed in the monastery founded by him.
! SAINT HILARION, BISHOP OF MEGLIN
He was born of eminent and devout parents. His childless mother had long prayed to God that He grant her a child, and in accordance with her prayer, the Most-holy Theotokos appeared to her and comforted her with the words: "Do not grieve, you will give birth to a son and he will turn many to the light of truth." When Hilarion was three years old, the hymn, "Holy, Holy, Holy, Lord God of Sabaoth!" was constantly on his lips. He was well-educated, was tonsured a monk at age eighteen, and founded a monastery based on the Rule of St. Pachomius. In 1134 A.D., he was consecrated Bishop of Meglin by Eustathius, Archbishop of Trnovo. St. Hilarion led a great, nearly lifelong struggle against the Bogomils and the Armenian heretics. However, by his spiritual learning and unequaled sanctity he put them all to shame, and drew many of them to Orthodoxy. He reposed peacefully, and took up his abode in the Kingdom of His Lord in the year 1164 A.D.
! THE VENERABLE PHILOTHEUS
He was born in Crysopolis in Macedonia. The Turks took him from his mother, a widow, and threw him and one of his brothers into prison. The Most-holy Theotokos miraculously saved them from prison and brought them to a monastery at Neapolis in Asia Minor. Later, their mother found both of her sons as monks, and she herself was tonsured a nun. Philotheus went to Mount Athos, where he lived a life of asceticism in the Monastery of Dionysiou, and later in the desert. He was a wondrous ascetic and a great conqueror of demonic powers. He reposed peacefully at the age of eighty-four. He willed that he not be buried, but that his body be thrown into the forest for the birds and wild beasts. Later, a fisherman saw a great light in the forest on a cold night and went to warm himself, thinking it was a fire. However, the light was not from a fire, but was emanating from the wonderworking relics of St. Philotheus.
! HYMN OF PRAISE
!
! THE VENERABLE HILARION THE GREAT
Holy Hilarion, like a brilliant comet,
Fleeing from men, traveled half the world.
But such a star hides in vain:
Its own light reveals it to the world.
Hilarion wished to escape earthly glory,
But from glory the saint could not flee.
Where God did not proclaim him, the demons did,
Being terrified by the saint, who cast them out.
Wherever he settled, Hilarion the Wonderful
Worked miracles and healed the sick,
Conquered his weakness and passions.
A conqueror of the world, he subdued the demons.
He hid in caves, yet was proclaimed by all.
He shunned all, but was glorified by all.
The Lord glorifies His glorifiers,
And crowns victorious runners with wreaths.
When the race of earthly life passes,
The wreaths of everlasting life are given.
The aged Hilarion, ever young in spirit,
Now takes delight in the Lord face to face.
Even now his prayers wage war for us,
That in His compassion the Lord would have mercy on us.
! REFLECTION
The All-seeing eye of God watches over all men and, in a wondrous manner, guides the faithful to salvation. That which seems to the faithful a great loss can show itself over time to be a great gain. The case of St. Philotheus and his brother, who were lost to their mother, is similar to the case of St. Xenophont (January 26), and the case of St. Eustathius and his wife and sons (September 20). When St. Philotheus and his brother were sitting in a Turkish prison in Macedonia, the Most-holy Theotokos appeared to them in the form of their mother and said, "Arise, my dear children, and follow me!" and suddenly the young men found themselves in a monastery in the town of Neapolis in Asia Minor. When the young men related to the abbot what had happened to them, he understood that this was from God, and he received the young men and tonsured them. A long time passed after this. Their mother grieved for them but overcame her loss. Finally, she decided to enter a convent and dedicate herself to God. God's providence brought her near the monastery where her sons were. Once, during the patronal celebration of this monastery she came with the other nuns for the celebration. She saw her sons in church but did not recognize them. Just then, one of the brothers called the other by his secular name. The mother's heart was touched by that name, which was dear to her, and she looked carefully into their faces. Then she recognized them and they recognized her. Their joy was exceedingly great, and they gave heartfelt thanks to God. Believing Christians should not despair over even the greatest loss.
! CONTEMPLATION
Contemplate the wondrous healing of the blind Saul by Ananias (Acts 9):
# How Ananias placed his hands on Saul, mentioning the name of the Lord Jesus;
# How the blindness departed from Saul like scales falling from his eyes, and he saw and was baptized, and became Paul.
! HOMILY
! on the God-inspired heart and tongue
My heart will pour forth good words; my tongue is the pen of a ready writer (Psalm 45:1).
Behold the inspiration of the Spirit of God! The prophet wants to speak of Christ the Lord and his heart swells with power and wisdom. That is why the prophet does not say: "My heart will speak or will pronounce good words, but rather //will pour forth//as though a part of his own heart rushes out like a torrent of water from an overflowing well. A torrent of water is narrow underground, but when it reaches the opening of the spring, it bursts out in a large stream. Such is the heart of the prophet when he wants to speak of Christ. Such is the power of grace confined in the heart of man. If it does not manifest itself in powerful words or if it does not manifest itself in miraculous works, it will shine within man and work wonders. But when it comes out in words, the tongue of the prophet will become as a reed, as a //pen of a ready writer//. For such a man does not struggle to formulate his thoughts, nor does he struggle to clothe his thoughts in the garment of words, but grace itself pours out thoughts and words, already prepared, through his tongue. Where does such a power in man come from? From God the Holy Spirit. Why does such a power exist? The prophet wants to speak to the King about Himself: //I speak of things which I have made touching the King// (Psalm 45:1). Actions and words here are identical, as it often happens in Holy Scripture. Where the Spirit speaks, He also acts; and where He acts, He also speaks. One speaks most powerfully through action. The prophet takes from Christ the King, and gives to Christ the King. He speaks enthusiastically of love for the Savior of the world; he speaks from a heart burning with the zeal of divine love. From the distance of time, he sees the Incarnate Son of God, and his heart dances with joy like a weary night-traveler when he sees the beautiful dawn in the east!
O Lord God, the Holy Spirit, do not deny us Thy holy and powerful grace, that we may be cleansed from sins and made worthy of the Kingdom of Christ.
To Thee be glory and praise forever. Amen.
! SAINT ABERCIUS, EQUAL TO THE APOSTLES
During the reigns of Emperor Antoninus and his son, Marcus Aurelius, St. Abercius was the bishop of the city of Hierapolis in Phrygia. The great majority in this city were pagans, and St. Abercius governed his sparse flock, sorrowing in his heart because of the great number of pagans and idolaters, and diligently praying to God that He would bring them to the light of truth. During a boisterous idolatrous festival, Abercius became inflamed with God's zeal and entered the idolatrous temple, smashing all the idols. When the enraged pagans sought to kill him, three young madmen, foaming at the mouth and howling, fell down before this man of God, and he drove the demons from them. The young men became sane and calm. This turned the pagans' anger into amazement at the wonderworker of Christ, and five hundred of them immediately desired baptism. Little by little, all of Hierapolis came to believe in Christ and were baptized. The proconsul of the province, Publius, had a mother who was blind. Abercius restored her sight by prayer, and Publius, his mother and many others believed in Christ. In old age, Abercius was summoned to Rome, where he healed the emperor's daughter of insanity. The Lord Jesus Christ appeared several times to His faithful follower. People from near and far came to him for miraculous help when they suffered from incurable illnesses. The demons not only feared him, but also served him at his command. At the guidance of the Lord Himself, Abercius preached the Gospel throughout Syria and Mesopotamia. In great old age, St. Abercius presented himself to his beloved Lord in Hierapolis, at the end of the second century.
! THE VENERABLE LOT
Lot was a great Egyptian ascetic and a contemporary of St. Arsenius the Great and St. Agathon. He lived a life of asceticism in his monastery near a lake at the town of Arsinoe, and directed many brethren on the path to salvation. His close friend and advisor was Abba Joseph. Lot once said to Joseph: "Abba, I fast as much as I can, hold fast to prayer, keep silence and contemplate, and also, through abstinence, guard myself from impure thoughts. Therefore, what else can I do?" The elder stood up, raised his hands to heaven, and his ten fingers shone like ten flaming candles. He then replied: "If you desire, you can be all aflame!" Having pleased God and set many on the path to salvation, St. Lot entered peacefully into rest in the fifth century.
! COMMEMORATION OF THE MIRACULOUS DELIVERANCE OF MOSCOW FROM THE LITHUANIANS WITH THE HELP OF THE MOST-HOLY THEOTOKOS
During the reign of Prince Basil Ivanovich, the Lithuanians occupied Moscow and the Russians were in great despair. Then St. Sergius of Radonezh appeared in a vision to the captured Bishop Arsenius, and promised him that Moscow would be cleansed of the Lithuanians the very next day, by the power and prayer of the Holy Most-pure One. Indeed, the Lithuanians fled the city, and the Russian army re-entered Moscow. The entire populace glorified God and the Most-holy Theotokos with tears of joy.
! HYMN OF PRAISE
!
! SAINT ABERCIUS, EQUAL TO THE APOSTLES
St. Abercius, a model of meekness,
Is a most beautiful example of Christian zeal.
He zealously toppled the dumb idols
And joyfully exposed himself to death.
But God protects the servant who strives for Him,
And shields him from evil with His right hand.
Against the saint, demons and men rose up,
But became shamefully silent before the power of the Cross.
What the saint desired, the Lord granted,
And though he was in much sorrow, he gladdened many.
St. Abercius was as a fiery pillar,
A light and an enlightener of men.
He preached Christ to many peoples--
From powerful emperors to the poor--
And witnessed Christ through many miracles.
He poured miracles out like living water;
By the life-creating word he assuaged the thirsty,
And with the teaching of Christ he fed the hungry.
St. Abercius, a model of meekness,
Gave himself to God in honorable old age,
And was crowned with eternal youth in Paradise,
Surrounded by the joy and glory of heaven.
O wonderful holy one, strive yet a little more:
Protect the remaining flock on earth,
Implore Christ's mercy on us through prayer,
That the Church will boast in you to the end.
! REFLECTION
As much as the strictness of holy men toward themselves is a cause for amazement, so also is their compassion toward others. They have disinterest for themselves, and concern for others. St. Hilarion the Great, unable to pay his fare to Sicily, offered the owner of the ship his Gospel (which he, in his youth, had copied with his own hands). When he had cured a certain prince of an unclean spirit, the prince wanted to present him with ten liters of gold. The saint would not accept the gold, but showed him barley bread and said: "Those who feed on this kind of bread look upon gold as mud!" When men begged him to pray to God for rain, or to save them from floods or poisonous snakes, St. Hilarion helped them by his prayer. This is how St. Abercius acted as well. Seeing many people in pain and sickness, he knelt in a certain place and prayed to God that He would open up a spring of warm, healing water there, that the infirm might be healed and glorify God. God then opened a spring of warm water on that spot. When Abercius healed the emperor's daughter of insanity, the emperor offered him gold, silver and other gifts, but St. Abercius said: "Riches are not needed for one who considers bread and water a royal meal." Not seeking anything for himself, Abercius nevertheless begged the emperor to do two favors for his flock in Hierapolis: to build a bath over those healing waters, and to give sufficient wheat each year to the poor of Hierapolis. The emperor agreed and did according to the saint's request.
! CONTEMPLATION
Contemplate the miraculous healing of Aeneas of Lydda (Acts 9):
# How Aeneas had lain paralyzed for eight years;
# How the Apostle Peter healed him in the name of the Lord Jesus Christ;
# How Aeneas arose healthy.
! HOMILY
! on the beauty of Christ above all other beauty
Thou art fairer than the sons of men (Psalm 45:2).
Holy Scripture does not ascribe any particular value to physical beauty, and in general to anything transient. That is why everyone who reads Holy Scripture should take care to be sufficiently attentive and wise to transfer the praise of physical beauty to the soul and to spiritual values. Without a doubt, spiritual beauty gives a wondrous attractiveness to the most unattractive body, just as an ugly soul makes even the most attractive body repulsive. The Prophet David, //pouring forth good words//(Psalm 45:1), says to his King, the Lord Jesus Christ: //Thou art fairer than the sons of men.// The Lord Himself created His bodily cloak as He wanted. Had He wanted to appear in the world as the physically fairest of men, He could have done so. But there is nothing in the Gospel to indicate that He drew followers to Himself or influenced men by His appearance. He Himself said: //the flesh profiteth nothing// (John 6:63). Therefore, it is clear that David was not speaking of the physical beauty of Christ, but of His spiritual, divine beauty. This is clearly seen in the following words of the Psalmist: //Grace is poured forth upon thy lips// (Psalm 45:2). So it is that the unsurpassed beauty of the Son of God is not in the form and shape of His lips, but rather in the stream of grace that flows from His mouth. Again, the Prophet Isaiah speaks of Christ: //He had no form or comeliness; and when we shall see Him, there is no beauty that we should desire Him// (Isaiah 53:2-3). Do Isaiah and David agree? Perfectly well. David speaks of Christ's inward beauty, and Isaiah speaks of Christ's external abasement. Isaiah said that He would not be seen as a king or a rich man, but as a servant and sufferer.
O Lord Jesus Christ, Thou art fairer to us than all men and angels: glory to Thine immortal and unending beauty. O gracious Lord, correct the ugliness of our souls, which are disfigured by sin, we pray Thee.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE JAMES, BROTHER OF THE LORD
James is called the Lord's brother because he was the son of the righteous Joseph, the betrothed of the Most-holy Theotokos. When the righteous Joseph was near death, he divided his estate among his sons, and wanted to leave a portion to the Lord Jesus, the son of the Most-holy Virgin, but all the other brothers opposed this, not regarding Jesus as their brother. James greatly loved Jesus and declared that he would include Jesus in his share. That is why he is called the Lord's brother. From the beginning, James was devoted to the Lord Jesus. According to tradition, he traveled to Egypt with the Most-holy Virgin and Joseph, when Herod sought to slay the newborn King. Later, as soon as he heard Christ's teaching, James lived by it. It is said of him that he never ate fat or oil, but lived on just bread and water, and was a virgin to the end of his life on earth. He often kept vigil at night and prayed to God. The Lord numbered him among His Seventy Apostles. Following His glorious Resurrection, the Lord appeared to him especially, as the Apostle Paul testifies (I Corinthians 15:7). He was Bishop of Jerusalem for thirty years and zealously governed the Church of God. At the instruction of the Lord, James compiled the first Liturgy, which seemed very long for later Christians, and St. Basil and St. John Chrysostom shortened it. He converted many Jews and Greeks to the Christian Faith, and even the unbelieving Jews were amazed at his righteousness, referring to him as "James the Just." When Ananias became High Priest, he and other Jewish elders determined to kill James for being a preacher of Christ. Once, during the feast of Passover, when many people had gathered in Jerusalem, the elders forced James to climb onto the roof of the Temple, and tried to make him speak against Christ. He climbed up and spoke to the people of Christ as the Son of God and the true Messiah, of His Resurrection and His eternal glory in the heavens. The infuriated priests and elders pushed him off the roof; he fell and was severely injured, but was still alive. Then, one man ran up and struck him on the head with a fuller's club with such force that his brains spilled out. Thus, this most glorious apostle of Christ died a martyr's death, and went to live eternally in the Kingdom of his Lord. James was sixty-six years old when he suffered for Christ.
! SAINT IGNATIUS, PATRIARCH OF CONSTANTINOPLE
Ignatius was the son of Emperor Michael Rangabe. He became patriarch after St. Methodius in 846 A.D. Then Ignatius was deposed in 858 A.D. and exiled. Photius, the chief secretary to the emperor, was made patriarch in his place. However, when Emperor Basil the Macedonian ascended the throne, he re-instated Ignatius to the patriarchal throne. St. Ignatius governed the Church with great zeal and wisdom. He built the Monastery of the Holy Archangels in which he reposed in the Lord in the eighty-ninth year of his life.
! THE HOLY MARTYR JAMES OF BOROVICHI
All that is known of this saint is what he revealed in a vision to people from the town of Borovichi after his repose. One day in 1540 A.D., his body floated down the river Meta, and washed ashore near Borovichi. Many miracles took place from his relics.
! HYMN OF PRAISE
! THE HOLY APOSTLE JAMES, BROTHER OF THE LORD
James, the Brother of the Lord, a most beautiful righteous one,
Explained the teaching of Christ with his life,
And when they tortured him, he meekly knelt,
And prayed to God for his enemies.
In a most difficult place, at a most difficult time,
He patiently bore the episcopal yoke.
He governed the Church as a good shepherd,
And glorified the Lord in word and deed.
He taught men to love Jesus,
And taught the faithful to pray to God.
"Vainglorious man, what is faith alone?
Faith without works is as empty straw.
Whoever has hearing, let him hear the teaching:
Faith without works is a body without spirit.
Whence come wars, abhorrent to all?
From the impure passions of your body.
Men always war and have no peace,
For their hearts desire evil, then shed blood.
Whoever turns a sinner away from error
Will receive the Lord's gift of eternal life in reward."
The Jews slew the righteous James--
But they have murdered themselves, and glorified him!
O wonderful James, holy apostle,
Help the faithful who pray to you.
! REFLECTION
From God comes grace, but from us comes labor. Therefore, let no one even think that the holy apostles relied solely on the God-given grace, or that it was easy for them, or that they performed their great work in the world without effort. Does not the Apostle Paul say: //But I keep under my body, and bring it into subjection: lest that by any means, when I have preached to others, I myself should be a castaway//(I Corinthians 9:27)? And still, in another place, does he not say that he spent his life //in perils of waters, in perils of robbers, in perils by mine own countrymen, in perils by the heathen, in perils in the city, in perils in the wilderness, in perils in the sea, in perils among false brethren, in weariness and painfulness, in watchings often, in hunger and thirst, in fastings often, in cold and nakedness// (II Corinthians 11:26-27)? St. James fed only on bread and that not to satisfaction. He slept very little, and spent his nights in prayer. He knelt so much in prayer that the skin on his knees became as hard as the skin on the knees of a camel. This brother of the Lord prayed with tears and sighs not only for the Church, which he governed, but also for the whole world. Even when he was pushed from the temple roof by the malicious Jews, and thus was completely broken, the holy apostle never forgot his debt to God and to men. Gathering his last strength, he raised himself to his knees, stretched forth his hands toward heaven and fervently prayed to God saying: "Lord, forgive them this sin, for they know not what they are doing." While he was praying thus, wicked men struck him with stones from all sides. Seeing this, one of the sons of Rechab cried out: "Stop! What are you doing? The righteous one is praying to God for you, and you are killing him!" However, that shout of a compassionate soul could not deter the murderers, accustomed to evildoing, from killing the saint of God. So it was that the apostles did not rely on grace alone, but also put forth nearly superhuman effort to show themselves worthy of God's grace.
! CONTEMPLATION
Contemplate the miraculous resurrection of Tabitha (Acts 9):
# How Tabitha lay dead on her bed;
# How the Apostle Peter prayed to God for her and said: //Tabitha, arise//;
# How Tabitha regained life, and arose.
! HOMILY
! on the beauty of the king's daughter
The king's daughter is all glorious within (Psalm 45:13).
The Church of God is the daughter of the King. However poor and unattractive to the physical eye it may seem on the outside, no matter how persecuted and humiliated, it is filled with royal radiance and beauty from within. The King, He Who is //fairer than the sons of men// (Psalm 45:2), imparts beauty to His royal daughter. The Church of God is like a vesture for Christ; Christ lives in her. No outer beauty can be compared with inner beauty, that is, the beauty of Christ.
The Most-holy Theotokos is the daughter of the King: //Her vesture is woven with gold//(Psalm 45:13). This vesture is the virtue of her soul. That we understand "vesture" as virtue is clear in the parable of the marriage of the king's son. The man who was not clothed in a //wedding garment// was driven from the king's table and punished (cf. Matthew 22:11-13). True faith in God was the golden vesture of the Most-holy Virgin. Virginity, meekness, compassion, sanctity, piety, devotion to God's will, and all other virtues, were like embroideries on this golden garment. However, her beauty was the work of the Lord Christ, hidden within her and born of her.
The soul of every faithful Christian is like the daughter of the King. All the beauty of that soul is in Christ and of Christ, Who is within the soul. A soul without Christ the Sun of Righteousness is in darkness, without form and comeliness, as the universe would be without form and comeliness without the material sun.
O great and gracious Lord, our true God and our man-loving Provider, help us to clothe ourselves in the garment of the virtues, that we may not be found naked at Thy Dread Judgment.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR ARETHAS
This holy martyr suffered for the Christian Faith with over four thousand Christians--priests, monks and nuns, men, women and children. Arethas was the eparch in the town of Nagran, in the southern Arabian land of Omir. He was ninety-five years old when he suffered. Dunaan, a cruel Jewish persecutor of Christians, then governed Omir. Determined to eradicate all Christians from his land, he surrounded the Christian town of Nagran, and sent a message to the people saying he would put them all to death unless they renounced Christ. The citizens closed the gates, and Dunaan attacked the city wall for a long time without success. Then the iniquitous governor swore to the citizens that he would do nothing to them, if only they would open the gate for him to enter and receive the tribute that they owed him--and that he would take it and immediately withdraw. The Christians believed him and opened the gate. Then the oath-breaking Jew summoned the aged Arethas, the clergy and other distinguished citizens and beheaded them all with the sword. He then perpetrated a horrible slaughter in the town. Learning of this, the Byzantine Emperor Justin was greatly grieved, and wrote a letter to the Ethiopian Emperor, Elesbaan, requesting him to set out with an army against Dunaan to avenge the innocent blood of the Christians. Elesbaan obeyed Justin, attacked the governor of Omir with his army, defeated him, slew his entire army, and beheaded him. By a revelation from God, a certain devout man named Abramius was installed as governor of Omir, and again by God's revelation, St. Gregory of Omir (December 19) was installed as archbishop. Christians rebuilt the Church of the Holy Trinity in Nagran that Dunaan had burned, and also built a church to the Holy Martyr Arethas and the other martyrs of Nagran. St. Arethas and the others suffered and received martyr's wreaths from the Lord in the year 523 A.D.
! SAINT ELESBAAN, KING OF ETHIOPIA
Inflamed with zeal for the Christian Faith, this pious king raised an army against the governor Dunaan, the wicked persecutor of Christians in the land of Omir. However, at the battle's outset, Elesbaan had little success and much of his army perished in the arid desert. He then wept bitterly before God, and vowed to become a monk if God would help him conquer the mortal enemy of Christianity. Defeating Dunaan, Elesbaan returned to Ethiopia, immediately left the imperial court and entered a monastery, where he lived a strict life of asceticism as a true monk for fifteen full years. God endowed him with the grace of miracle-working before and after his death. He entered into rest in the year 555 A.D.
! THE ICON OF THE HOLY THEOTOKOS, "JOY OF ALL WHO SORROW"
This name is given to one of the wonderworking icons of the Most-holy Theotokos. On this day the icon is celebrated for the miraculous healing in Moscow, of Euphemia, the sister of Patriarch Joachim, in the year 1688 A.D. Euphemia had a serious wound in the side and as the doctors failed in their treatments, she prayed with tears to the Most-holy Theotokos. Then, she heard a voice: "Euphemia, go to the Church of the Transfiguration of my Son; there you will find the icon, 'Joy of All Who Sorrow.' Have the priest pray for you before this icon and you will be healed." Euphemia did so, and was immediately made well.
! THE VENERABLE ARETHAS OF THE MONASTERY OF THE KIEV CAVES
He reposed in the year 1190 A.D. (See "Reflection" below.)
! HYMN OF PRAISE
! TO THE ICON OF THE MOST-HOLY THEOTOKOS, "JOY OF ALL WHO SORROW"
O Most-holy Mother of God, "Joy of All Who Sorrow,"
Grant thy mercy to us sinners.
Thy Son now sits on the throne of the Eternal Kingdom,
And all our troubles thou seest; thou knowest them as they occur.
Thou hast always prayed to Christ God for the faithful,
And hast relieved much pain and misery of the sorrowful.
O Holy Virgin, never cease, to the end of time,
To pray for the salvation of our race.
God hast made thee even more glorious than the Seraphim:
O hasten to us, O Joy of all who sorrow!
! REFLECTION
When a consecrated person commits a transgression, a greater punishment awaits him than awaits a layman, less enlightened in the mystery of the will of God than he, who commits the same sin. St. Arethas was a monk in the Monastery of the Kiev Caves, and was very avaricious. He would give nothing to anyone of the piles of possessions in his cell, not even a kopeck. But once, he became very seriously ill and saw, as if in a vision, devils snatching his soul from the angels, screaming, "He is ours, he is ours!" and citing as their proof Arethas's greed and miserliness. Upon his recovery Arethas amended his life, and from then on counted all earthly goods as nothing. Our benevolent God forgave him, and later endowed him with abundant grace.
Again, in the monastery where the blessed Emperor Elesbaan reposed, a monk developed the habit of visiting a tavern often, getting drunk there, and even committing immoral acts with women. One day, returning from the tavern, a terrifyingly huge snake began chasing him and gained on him rapidly. In great torment and anguish, the monk cried out: "Depart from me, as you would from the holy and righteous Elesbaan!" Suddenly, the snake stopped. And the monk heard as it were a human voice from the serpent: "An angel of God commanded me to consume you because of your impurity and foulness, for you vowed to serve God in purity, but now you soil your body and anger the Holy Spirit." The monk vowed never to sin again, returned to the monastery, and sinned no more up to his death. Thus, God rebuked, and showed mercy, by the prayers of the Holy Emperor Elesbaan.
! CONTEMPLATION
Contemplate Cornelius the Centurion's wondrous visitation by the angel of God (Acts 10):
# How, though it was daytime, Cornelius saw in a vision an angel of God who called him by name;
# How Cornelius was afraid and replied, //What is it, Lord?//
# How the angel instructed him to send to Joppa for the Apostle Peter, who would speak to him the words of salvation.
! HOMILY
! on the clear coming of God
Our God shall come and shall not keep silent (Psalm 50:3).
The vocation of a commander is different than the vocation of a judge. The commander does not show himself to his enemy immediately, but allows his enemy to think whatever he wants about him; for the main purpose of the commander is to conquer. The judge, however, immediately shows himself to those whom he has to judge.
Then, too, the vocation of a teacher is different than the vocation of a judge. For the teacher, the main purpose is to teach his pupils. That is why he often lowers himself to the level of his students and speaks to them as their friend. A judge, however, from beginning to end, is bound to show himself as nothing other than a judge.
The vocation of a physician is different than the vocation of a judge, and the difference in these two vocations can be compared as in the first two instances cited above.
Brethren, God appeared to the world in the body of a man. He appeared as a Commander, as a Teacher and as a Physician, but He has not yet appeared as a Judge. In the first instance, He chose to remain silent, and not to openly express His greatest dignity, but rather left His enemies, His pupils and His patients to make their judgments about Him from what they knew. Those who had sound judgment would know Him as God in the flesh by the evidence of His words and by His deeds, by His love for mankind and by the heavenly signs at His birth, Crucifixion, Resurrection and Ascension. However, those whose minds were darkened by evil passion would not recognize Him or acknowledge Him as God. But when He comes as Judge, then no one will ask "Art Thou He?" or "Who art Thou?" because everyone will know, without any doubt, Who He is. The angels will blow their trumpets before Him; His Cross will shine in the heavens before Him: //A fire goes before Him and burns up His enemies round about// (Psalm 97:3). Then both the believers and the unbelievers, the righteous and the unrighteous, will recognize the Judge. Then, only they who recognized Him beforehand as God, in the cave and on the Cross, will rejoice. Truly, they will rejoice: for they shall recognize in the Judge Him for Whom they waged war, Him from Whom they learned, and Him by Whom they were healed.
O Most-glorious Savior, have mercy on us and set us aright before Thy Second Coming.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS MARCIAN AND MARTYRIUS
These saints of God were clergymen under Paul, the Patriarch of Constantinople, during the reign of Emperor Constantius. With the death of the great Emperor Constantine, the Arian heresy, which until then had been suppressed, revived and gained momentum. Even Emperor Constantius himself leaned toward this heresy. There were two influential noblemen at the emperor's court, Eusebius and Philip, both of whom were ardent Arians. Under their influence, Patriarch Paul was ousted from the patriarchal throne and banished to Armenia, where the Arians strangled him. Then the dishonorable Macedonius seized the patriarchal throne. At that time Orthodoxy had two bitter struggles: against the pagans and against the heretics. Marcian and Martyrius interceded with all their strength and determination on the side of Orthodoxy. Marcian was a reader and Martyrius was a subdeacon at the cathedral church of Hagia Sophia; under Patriarch Paul they had been patriarchal notaries (secretaries). The Arians at first tried to bribe them, but when these holy men rejected this with scorn, the heretics condemned them to death. When they were brought to the executioner, they raised their hands and prayed to God, giving Him thanks for a martyr's end to their lives: "Lord, we rejoice that we depart from this life by such a death. Make us worthy to be partakers of eternal life. Thou art our life!" They placed their necks beneath the sword and were beheaded in the year 355 A.D. Later, St. John Chrysostom built a church in their name over their miracle-working relics.
! THE HOLY MARTYR ANASTASIUS
He was a cloth-maker and a zealous Christian. During Diocletian's persecution of Christians, this man of God appeared before the judge in the Dalmatian town of Solin, and confessed his faith in Christ. He was inhumanly tortured and slain, and his body was thrown into the sea but was later found and honorably buried.
! SAINT TABITHA
St. Tabitha (which means "gazelle") was a disciple of the apostles and lived in Joppa. She was //full of good works and almsdeeds//(Acts 9:36), but suddenly became weak and died. The Apostle Peter was then in the town of Lydda, and the grieving disciples sent for him, imploring him to comfort her kinsmen. Upon his arrival, the great Apostle of Christ told everyone to leave the room where the corpse lay, then knelt in prayer. //Then, turning to the body, he said: Tabitha, arise// (Acts 9:40) and Tabitha opened her eyes and stood up. Many believed in the Lord Jesus Christ because of this wonderful miracle.
! HYMN OF PRAISE
! SAINT TABITHA
Tabitha died, not that she might no longer live,
But that the world might be astonished at the miracle which came to pass.
Beside her deathbed Peter humbly knelt,
And uttered fervent prayer unto the Lord.
She was resurrected in body! And the unbelievers heard
How the Lord hearkened to the apostle's prayer
And returned the living soul to the dead body.
And Peter turned the unbelievers to the Faith.
O wondrous miracle, of a kind unknown in the world!
By the name of Christ, death was conquered.
Death was conquered, and life rejoices.
The young Tabitha rejoices in life;
And, more than in her own life,
She rejoices that she served as a wonder to the unbelieving world.
She was resurrected in body! The unbelievers heard,
And their own souls were raised from the dead.
O great Peter, servant of Christ,
Pray to our Savior for us;
Resurrect our souls, buried in the mud--
You, who revived Tabitha by the power of God.
! REFLECTION
Among other mysterious perceptions from the world of spirits, the saints also had perceptions of sweet fragrances from good spirits and foul stenches from impure spirits. During every appearance of luminous, pure spirits, a life-giving and sweet fragrance wafted about; and during every appearance of dark and impure spirits, a suffocating, unbearable stench filled the air. The saints were able to discern which passion possessed a man by the kind of stench he emanated. Thus it was that St. Euthymius the Great recognized the stench of the passion of adultery in the monk Emilian of the Lavra of St. Theoctistus. Going to Matins one morning, Euthymius passed by Emilian's cell and smelled the stench of the demon of adultery. Emilian had not committed any physical sin, but had adulterous thoughts that were being forced into his heart by the demon, and the saint already sensed it by its smell. The power of this perception once revealed itself even more wondrously in St. Hilarion the Great. A certain avaricious miser had sent some of his vegetables to Hilarion. When they were brought to Hilarion for a meal, the saint said: "Take these away from here. I cannot stand the stench that comes from these vegetables! Do you not smell how they reek of avarice?" When the brethren were amazed by these words, Hilarion told them to take the vegetables to the oxen, and they would see that not even the oxen would eat them. Indeed, the oxen merely sniffed at them, and turned their heads away in disgust.
! CONTEMPLATION
Contemplate God's miraculous revelation to the Apostle Peter (Acts 11):
# How Peter saw the heavens open and a sheet full of all kinds of animals, beasts, creeping things and birds, being lowered to him;
# How he heard a voice: //Arise, Peter; slay and eat!// (Acts 11:7);
# How this admonished him to attend even to the pagans and preach the Gospel to them.
! HOMILY
! on fleeing the world and dwelling in the wilderness
Lo, then would I flee afar off, and remain in the wilderness (Psalm 55:7).
Brethren, from whom did the prophet flee into the wilderness? From evil adversaries, from passions, and from vanity. Why did he flee into the wilderness? Because that is the way of victory over wicked adversaries, passions, and the vanity of the world. Very few choose the wilderness: that is why he fled into the wilderness. Men fight over cities and lands, over authority and wealth, but not over the wilderness. In the cities, the inner adversaries of man--the passions and diverse vanities--constantly are aroused with new fire, while in the wilderness they fade and vanish. Before he spoke of fleeing, the prophet said, //And the terrors of death have fallen upon me// (Psalm 55:4); this is the reason to flee into the wilderness. One should prepare his soul for the other world, for the encounter with God. Not even a king can save himself from death or avoid judgment. Living in constant luxury and merriment, man is indeed as if lulled to sleep by the strong drink of this world. But then, in the midst of luxury and merriment, the thought of death tugs at him and awakens him. Oh, I must die! I must leave this world! I must come before God and before the angels! Where is my soul? Where are my deeds? With what shall I leave this world, and with what shall I enter into the next world? Thousands upon thousands of those who have been awakened from sinful sleep by such questions have fled to the wilderness and, day and night, they amend their souls and purify their hearts by repentance, prayer, fasting, vigils, labor and other proven means by which man kills the fear of death, and becomes adopted by God.
O Lord Jesus Christ, our Most-wise and Most-gracious Teacher, Who Thyself at times withdrew from men into solitude, help us to be collected in soul and prepare ourselves for Thy Most-glorious Kingdom.
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT-MARTYR DEMETRIUS
This glorious and wonderworking saint was born in Thessalonica of noble and devout parents. Implored of God by childless parents, Demetrius was their only son, and so was raised and educated with great care. Demetrius's father was a commander in Thessalonica. When his father died, Emperor Maximian appointed Demetrius as commander in his place. As he appointed him, Maximian, an opponent of Christ, particularly recommended that he persecute and exterminate the Christians in Thessalonica. Demetrius not only disobeyed the emperor but openly confessed and preached the Lord Jesus Christ in the city of Thessalonica. When the emperor heard of this he became furious with Demetrius. Then, when he was returning from battle against the Sarmatians, Maximian stopped at Thessalonica to investigate the matter. The emperor summoned Demetrius and questioned him about his faith. Demetrius openly acknowledged his Christian Faith to the emperor and also denounced the emperor's idolatry. Maximian cast Demetrius into prison. Knowing what was awaiting him, Demetrius gave all his goods to his faithful servant Lupus to distribute to the poor, and joyfully awaited his imminent suffering for Christ the Lord. An angel of God appeared to him in prison, saying: "Peace be to you, O sufferer of Christ; be brave and be strong!" After several days, the emperor sent soldiers to the prison to kill Demetrius. The soldiers found the saint of God at prayer and ran him through with lances. Christians secretly took his body and honorably buried it. Healing myrrh flowed from the body of the martyr of Christ, curing many of the sick. Soon, a small church was built over his relics.
An Illyrian nobleman, Leontius, was afflicted with an incurable illness. He hastened, with prayer, to the relics of St. Demetrius and was completely healed. In thanksgiving, Leontius erected a much larger church on the site of the old church. The saint appeared to him on two occasions. When Emperor Justinian wanted to translate the relics of the saint from Thessalonica to Constantinople, flaming sparks sprang from the tomb and a voice was heard: "Stop, and do not touch!" And thus, the relics of St. Demetrius have remained for all time in Thessalonica. As the protector of Thessalonica, St. Demetrius has appeared many times, and on many occasions has saved Thessalonica from great calamity. His miracles are without number. The Russians considered St. Demetrius to be the protector of Siberia, which was conquered and annexed to Russia on October 26, 1581 A.D.
! THE VENERABLE MARTYR IOASAPH
Ioasaph was a disciple of St. Niphon, Patriarch of Constantinople, and labored in asceticism on the Holy Mountain. He had so great a love for Christ that all of his ascetic works seemed inadequate, and from love he desired to suffer for his Lord. For that reason he went to Constantinople, where he openly confessed to the Turks his faith in the Holy Trinity and the Son of God. The enraged Turks beheaded him on October 26, 1536 A.D.
! THE COMMERATION OF THE GREAT EARTHQUAKE OF CONSTANTINOPLE
In the year 740 A.D., during the reign of Emperor Leo the Isaurian, there was a terrifying and prolonged earthquake in Constantinople. The people considered this a punishment from God for their sins, and prayed with great repentance to the Most-holy Theotokos and St. Demetrius, until God showed mercy and the earthquake ceased.
! HYMN OF PRAISE
! THE HOLY GREAT-MARTYR DEMETRIUS
Thessalonica glorifies its wonderful saint--
St. Demetrius, servant of the Most-high God.
Demetrius, the commander,
Servant of the Creator and Lord.
St. Paul bedewed Thessalonica with tears,
Demetrius watered it with his blood.
Demetrius, the commander,
Servant of the Creator and Lord.
The tears of the apostle and the blood of the martyr
Are the glory, salvation and pride of Thessalonica.
Demetrius, the commander,
Servant of the Creator and Lord.
Let us also glorify Christ's soldier,
The myrrh-gushing saint and courageous martyr.
Demetrius, the commander,
Servant of the Creator and Lord.
! REFLECTION
A miracle of St. Demetrius of Thessalonica: Demetrius was a commander of Thessalonica during his life and remained so after his repose. People have felt his presence in Thessalonica, especially in times of great calamities. He protects the city, wards off misfortunes, repels invaders, and helps all who invoke his name. Here is a wonderful example of his unusual aid to people in need. Once, the barbarians attacked Thessalonica and were unable to overtake it. Infuriated at this, they pillaged the countryside and bound and carried off two beautiful maidens whom they gave as a gift to their prince. These maidens knew how to embroider well. When the prince saw their handiwork, he said to them: "I hear that there is a great god in your land, Demetrius, and that he works great miracles. Embroider his face on this linen." The maidens told him that St. Demetrius was not a god but rather God's servant and the helper of Christians. At first, they refused to embroider the face of the saint, but when the prince threatened them with death, they carried out the command and completed the task by St. Demetrius's Day. On the eve of the feast, they looked at their embroidery and wept sorrowfully, as they had to spend the feast day in slavery and had to give that embroidered image of their beloved saint to an impious barbarian. Both maidens prayed to St. Demetrius to forgive them. Then St. Demetrius appeared to them and took them both away, as an angel had once taken the Prophet Habakkuk. He brought them to Thessalonica and set them in his church. A solemn all-night vigil was being celebrated, and many people were there. When they learned of the miraculous rescue of these Christian maidens, all glorified God and St. Demetrius, His great servant and commander.
! CONTEMPLATION
Contemplate the miraculous deliverance of Peter from prison (Acts 12):
# How Peter was sleeping in the prison bound with two chains;
# How the faithful prayed to God for Peter;
# How a radiant angel appeared in the prison, freed the shackled Peter, and led him out.
! HOMILY
! on the heart ready for God
My heart is ready, O God, my heart is ready (Psalm 57:7)
Brethren, blessed is he who is able to speak like this to his Lord! Blessed is he whose heart is completely ready to follow the will of God. The readiness of the heart of man lies in this: to joyfully follow the will of God and not be confused by one's own thoughts and desires. At first, the repentant King David had followed his own sinful thoughts and desires, and was like a boat on a stormy sea. However, when he realized that the storm was going to drown him, he turned to God with great repentance and tears, and turned the boat of his life entirely over to God. My heart is ready, O God, my heart is ready! he cried out with great peace of soul, for he knew that he had given his boat into the hands of the Most-skilled Helmsman. The storm still raged and the winds and waves still assaulted him, but he was not afraid, convinced that nothing could smash his boat, and that his boat would sail safely to a calm harbor. A "ready heart" means a heart cleansed of pride and humbled before the majestic power and wisdom of God. A "ready heart" means a heart emptied of all worldly desires and illusions, and filled with nothing but aspirations toward God and love for God. A "ready heart" means a heart that is healed of all restlessness, cares and fears, and is quieted and encouraged by the presence of God's grace. I will sing and give praise in my glory (Psalm 57:7), continues the Psalmist. This shows that his heart is truly ready--he is not proud of his royal glory but ascribes it to God. He humbled himself before God as nothing, and now his sole pleasure is to magnify and glorify God. His personal glory only gives him a reason for glorifying His All-glorious God.
O my brethren, let us endeavor that our hearts be ready soon before God: ready to hear the word of God, ready to follow the will of God, ready to glorify the Living God.
O Lord God, our immortal Creator, help us to ready our hearts, that they may be vessels of Thy life-giving grace.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR NESTOR
In the time of the suffering of St. Demetrius the Myrrh-gusher, there was a young man of Thessalonica, Nestor, who learned the Christian Faith from St. Demetrius himself. At that time Christ's enemy, Emperor Maximian, organized various games and amusements for the people. The emperor's favorite in these games was a Vandal by the name of Lyaeus, a man of Goliath-like size and strength. As the emperor's gladiator, Lyaeus challenged men every day to single combat and slew them. Thus, the bloodthirsty Lyaeus amused the bloodthirsty, idolatrous Maximian. The emperor built a special stage for Lyaeus's battles, similar to a threshing floor on pillars. Spears, points upward, were planted beneath this platform. When Lyaeus defeated someone in wrestling, he would throw him from the platform onto the forest of spears. The emperor and his pagan subjects cheered as some poor wretch writhed in torment on the spears until he died. Among Lyaeus's innocent victims were many Christians: when no one volunteered to duel with Lyaeus, by the emperor's orders Christians were arrested and forced to duel with him. Seeing this horrifying amusement of the pagan world, Nestor's heart was torn with pain, and he decided to come forward for a duel with the gigantic Lyaeus. But first, he went to prison to see St. Demetrius and sought a blessing from him to do this. St. Demetrius blessed him, signed him with the sign of the Cross on the forehead and on the chest and prophesied to him: "You will defeat Lyaeus, but you will suffer for Christ." Thus, young Nestor went to duel with Lyaeus. Maximian was present with a multitude of people; everyone felt pity for the young Nestor, who would surely die, and tried to dissuade him from dueling with Lyaeus. Nestor crossed himself and said: "O God of Demetrius, help me!" and with God's help, he overcame Lyaeus, knocked him down, and threw him onto the sharp spears, where the heavy giant soon found death. Then all the people cried out: "Great is the God of Demetrius!" But the emperor, shamed before the people and sorrowing for his favorite Lyaeus, was greatly angered at Nestor and Demetrius, and commanded that Nestor be beheaded and Demetrius run through with lances. Thus, the Christian hero Nestor ended his earthly life and took up his habitation in the Kingdom of his Lord in the year 306 A.D.
! THE VENERABLE NESTOR THE CHRONICLER
At the age of seventeen, Nestor entered the Monastery of the Kiev Caves while St. Theodosius was still abbot. He wrote the first history of the Russian people, in which he intertwined the history of Russian asceticism. He was distinguished by unusual humility and meekness. In his literary work, he often referred to himself as unworthy, coarse, ignorant and full of every kind of sin. But God, Who knows the hearts of men, glorified this wonderful saint of His. When Nestor entered into rest on October 27, 1114 A.D., his relics performed many miracles.
! SAINT ANDREW, PRINCE OF SMOLENSK
Out of love for Christ, Andrew abandoned the glory and honor of the world, hid himself in a monastery and there, disguised and unknown, served as a sacristan for thirty years. He peacefully entered into rest in the Lord in 1390 A.D.; his miracle-working relics were found in 1540 A.D. //)
! HYMN OF PRAISE
! THE HOLY MARTYR NESTOR
St. Nestor was outraged at evil
And was zealous for the Christian Faith.
The young disciple of St. Demetrius
Seemed young and weak against the terrible Lyaeus,
But he traced the sign of the Cross on himself
And impaled the powerful Lyaeus on a spear.
He had been given power from above,
Like David against Goliath.
"You will conquer, but you will be tortured,
And will lay down your life for Christ."
Thus Demetrius prophesied to him,
And as he said, so it came to pass.
Nestor jubilantly went to torture,
And wonderfully magnified the wondrous Christ
With sweet words and sweet hymns,
And fervent prayers for the Church.
Great in spirit, small in years,
He did not grieve over his young life;
His blood strengthened the Church,
And Nestor was eternally glorified.
! REFLECTION
A miracle of St. Demetrius of Thessalonica: That the saints of God live, clothed in great glory and might in the heavens, Orthodox Christians know, not by their own reasoning, but by the true help and visitations of the saints. At times the saints appear so that men may see and hear them; at times, only to be either seen or heard; at times, though unseen and unheard, they influence our thoughts, our dispositions and our actions. Among the many miracles of St. Demetrius in Thessalonica the following is recorded: A young man named Onesiphorus was appointed to the service of sacristan in the Church of St. Demetrius of Thessalonica. His primary task was to keep an account of the candles and lampadas. This young man began to steal candles, take them home, and then resell them. St. Demetrius appeared to him and said: "Brother Onesiphorus, your action is not pleasing to me, for you are stealing candles. By this, you bring harm to others and especially to yourself. Cease doing this and repent!" Onesiphorus was frightened and ashamed and, for a time, stopped stealing candles. But he eventually forgot himself, and again began to steal candles. One morning, a distinguished man brought some large candles to the tomb of the saint, lit them, prayed and left. Onesiphorus approached the candles and stretched forth his hand with the intention of taking them, but at that moment a voice like thunder roared: "Are you doing that again?!" As though struck by lightning, Onesiphorus fell to the ground, unconscious. When someone came into the church he found him and lifted him up off the floor; he gradually came to himself and related all that had happened. Everyone was astonished, and glorified God.
! CONTEMPLATION
Contemplate Peter's wondrous journey with the angel of God (Acts 12):
# How the angel led Peter out of prison and brought him to the city;
# How they invisibly passed by the first and second guards;
# How the locked gates of the city opened to them of their own accord.
! HOMILY
! on zeal for the house of God
For the zeal of Thy house has eaten me up and the reproaches of those who reproach Thee have fallen on me (Psalm 69.9).
The heavens are the house of God. The Church of God is the house of God. The bodies of believing people are the house of God. Wherever God is, there is the house of God; and where the house of God is, there is holiness. Men dishonor the holiness of God's house, and the royal prophet is provoked and burns with zeal. He takes upon himself all the offenses against the holy things of God, and they fall upon him like a fire that enkindles him with even more zeal. Men desecrate the heavens when they do not believe that which God Himself revealed to mankind for the sake of their salvation. When men oppose or pervert the truth, as do the heretics, or when, of their own free will, they conceive of Christ according to their corporeal understanding, or when they have doubts about angels and saints, the Judgment, and the Eternal Kingdom of Christ, and refuse to consider the eternal punishment of unrepentant sinners--in all this and more, men attack the house of God and desecrate its holiness like savage animals. This causes zeal against the opponents and the blasphemers of God to rise in the hearts of the righteous. In the same manner, men attack the house of God's holiness when they behave unworthily toward the Church of God, when they are negligent concerning the Church's ordinances, when they are slothful toward ecclesiastical commandments and malicious toward the servants of the Church. Again, zeal for the holiness of the house of God is inflamed in the hearts of the righteous and the devout. Finally, the corrupting of the human body, the surrendering to passions, the service of sin, abduction, murder, brutality, drunkenness and other wicked actions, are all attacks on the holiness of God's house. It is all blasphemy against God and against man. Again, the fervor of the zealots of holiness rises up and shines as a heavenly flame before men. O my brethren, let us look at Christ's zeal for the holiness of God's house, and the zeal of the apostles and the Holy Fathers of our Orthodox Church. Let us have more zeal for our salvation than the devil has, day and night, for our destruction.
O Lord Jesus Christ, the Model of our zeal for holiness, grant us a spark of Thy zeal that we may be like Thee in zeal, and be saved by Thee.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR PARASCEVA
She was born in the city of Iconium of wealthy and Christ-loving parents. After the death of her parents, the maiden Parasceva began to distribute her possessions to the poor and the less fortunate, all in the name of Christ the Lord. When a persecution began under Diocletian, Parasceva was brought to trial before the governor of that land. When the governor asked her for her name, she replied that she was called a Christian. The governor rebuked her because she did not give her usual name and Parasceva said to him: "First, I had to tell you my name in eternal life, and then my name in this temporal life." After flogging her, the governor cast Parasceva into prison where an angel of God appeared to her, healed her of her wounds, and comforted her. By prayer, Parasceva destroyed all the idols in the pagan temple. After prolonged and harsh tortures, Parasceva was beheaded with the sword and took up her abode in eternal life.
! SAINT ARSENIJE, ARCHBISHOP OF PEĆ
Arsenije was a great hierarch of the Serbian Church and the successor of St. Sava. Arsenije was born in Srem. While still in his youth, he was tonsured a monk and devoted himself sincerely and whole-heartedly to asceticism for the salvation of his soul. Hearing of the wonderful person and work of St. Sava, Arsenije went to him in Žiča, where St. Sava received him cordially and included him among the brotherhood of Žiča. Seeing the rare virtures in Arsenije, Sava soon appointed him abbot of the Žiča monastery. When the Hungarians attacked the Serbian lands, Sava sent Arsenije to the south to look for a place more secluded than Žiča for the archiepiscopal see. Arsenije chose Peć, and built a monastery there and a church dedicated to the Holy Apostles (which was later remaned the Church of the Ascension of the Lord). Before his second departure for Jerusalem, Sava designated Arsenije as his successor to the archiepiscopal throne, and when Sava reposed in Trnovo on his way back from Jerusalem, Arsenije urged King Vladislav to translate the body of St. Sava to the Serbian land. He governed the Church prudently for thirty years and reposed in the Lord on October 28, 1266 A.D. On the wall of the altar in the church of Peć is written: "O Lord our God, hearken: visit and bless this church ... and remember also me, the sinful Arsenije." Arsenije is buried in the church at Peć.
! THE HOLY MARTYR TERENCE
He was from Syria and suffered for the Christian Faith with his wife Neonilla and their seven children. After many tortures, during which the power of God was manifested, they were all beheaded with the sword.
! SAINT STEPHEN OF ST. SAVA'S
He was the composer of many beautiful canons. He lived the ascetic life in the community of St. Sava the Sanctified. He was later ordained a bishop and peacefully entered into rest in the year 807 A.D.
! SAINT ATHANASIUS, PATRIARCH OF CONSTANTINOPLE
He was an opponent of union with Rome, in contrast to his predecessor John Beccus (1275-1282 A.D.). He was an ascetic and a prayerful person from his childhood. Beloved by his people, Athanasius provoked the displeasure of certain priests by his moral strictness. He withdrew to his monastery on Mount Ganos, where he labored even more austerely than before. The Lord Jesus Christ Himself appeared to him and scolded him gently for leaving his flock to the wolves. When he foretold the day of the earthquake in Constantinople, Emperor Andronicus reinstated him to the patriarchal throne against his will. After that, he again secretly withdrew to the ascetic life. He entered into rest at the age of one hundred. He was clairvoyant and a miracle-worker.
! SAINT DIMITRI, BISHOP OF ROSTOV
Dimitri was a great hierarch, preacher, author and ascetic. He was born near Kiev in the year 1651 A.D., and reposed in the year 1709 A.D. Among his many glorious works of instruction, he was known especially for his translation and publication of //The Lives of the Saints//. He foresaw his own death three days in advance, and died while at prayer. Dimitri was a great light of the Russian Church and of Orthodoxy in general. He had heavenly visions during his life. He served the Lord zealously and took up his habitation in the Kingdom of Heaven.
! HYMN OF PRAISE
! SAINT ARSENIJE, ARCHBISHOP OF PEĆ
The wise hierarch St. Arsenije
Does not hide his wondrous power, even today.
He hastens to God with gentle prayers,
And helps the faithful servants of Christ;
He has close access to God Most-high,
For he was made worthy of the Kingdom of Heaven.
When cruel Shishman, ruler of the Bulgarians,
Sought to plunder the Monastery of Peć
His soldiers encamped near there,
But that black night he had no peace.
From the heavens, a fiery pillar appeared,
And Shishman's army was overcome by fear,
And fled, without a backward glance,
From the shrine of Peć, where the saint reposes.
God gave a wreath of power and glory
To the wonderful successor of St. Sava.
He continued the work of his glorious predecessor
And thus, with St. Sava, became the pride of his people.
To St. Arsenije we now pray
That his grace might shine forth upon us.
! REFLECTION
St. Dimitri of Rostov was a saint in the ancient and true model of the early Fathers. Not only did he write beautiful and instructive books, but also shone forth as an example to his flock. He was a great ascetic and man of prayer. So humble was he that he even begged the seminarians in his seminary to pray to God for him. Whenever the clock struck the hour, he stood for prayer and recited: "O Theotokos and Virgin, rejoice!" When he was ill--which, for him, was often--he begged each of the seminarians to recite "Our Father" five times on his behalf while meditating on the five wounds of the Lord Jesus Christ. On one occasion, St. Barbara appeared to him with a smile and said, "Why do you pray in the Latin manner?"--meaning, why do you pray to God with such brief prayers? At this reproach, even though it was gentle, he became despondent, but she encouraged him, saying: "Do not be afraid!" On another occasion, St. Orestes the Martyr (November 10) appeared to him, just as St. Dimitri had finished writing the saint's life, and said: "I endured greater tortures for Christ than those you have written." He then showed him his left side and said: "This was pierced with a red-hot iron." He then showed him his left hand and said: "There I was slashed." Finally, he showed him his leg above the knee and said: "And this was cut off by a scythe." When St. Dimitri wondered if this Orestes visiting him was one of the Five Companions (December 13), the saint discerned his thought and said: "I am not the one of the Five Companions but rather the one whose life you have just written."
! CONTEMPLATION
Contemplate God's terrible punishment of Herod (Acts 12):
# How, in his pride, Herod elevated himself, and the people glorified him as a god;
# How an angel of God struck him at once, because he gave not God the glory;
# How he was consumed by worms and died.
! HOMILY
! on prayer to God to save a soul from the dust
Deliver me out of the dust that I sink not (Psalm 69:14).
Brethren, our souls are clothed in dust, and our bodies of dust are given us for the service of our soul. May our souls not drown in dust! May our souls not be enslaved by dust! May the living spark not be extinguished in the grave of dust! Very spacious is the field of earthly dust that draws us to itself; but even more spacious is the immeasurable Kingdom of the Spirit that calls our soul its kin. Truly, we are related to the earth through physical dust; but we are related to heaven through the soul. We are dwellers in temporary huts and soldiers in temporary tents. O Lord, //Deliver me out of the dust!// Thus prayed the repentant king who initially had given himself over to dust, until he saw how dust pulls us into the abyss of destruction. Dust is the body of man with its fantasies; dust is also all wicked men who wage war against the righteous; dust is the demons with their terrors. May the Lord save us from all this dust, for He alone is able to do that. We should strive first of all to see the enemy within ourselves--the enemy who attracts other enemies. Hence, the greatest misfortune of the sinner is that he, unconsciously and unwillingly, is an ally of his own enemies! However, the righteous man has strengthened his soul in God and in the Kingdom of God, and is not afraid. He is not afraid of himself, and therefore is not afraid of his other enemies. He is not afraid, because he is neither an ally nor an accomplice of the enemies of his soul. Hence, neither men nor demons can do him any harm. God is his ally and the angels of God are his protectors--what can man do to him? What can demons do to him? What can dust do to him?
O Lord our God, Three Persons and One Being, Who breathed living souls into the dust of our bodies, save us according to Thy mercy that we sink not.
To Thee be glory and praise forever. Amen.
! THE VENERABLE MARTYR ANASTASIA THE ROMAN
She was born in Rome of noble parents, and was left an orphan at the age of three. As an orphan, she was taken to a convent near Rome where the abbess was Sophia, a nun of the highest level of perfection. After seventeen years, Anastasia was well known--among the Christians as a great ascetic, and among the pagans as a rare beauty. Probus, the pagan governor, heard of Anastasia and sent his soldiers to bring her to him. For two hours, the good Abbess Sophia counseled Anastasia how to keep the Faith, how to resist flattering deceits, and how to endure torture. Anastasia said to her: "My heart is ready to suffer for Christ; my soul is ready to die for my Sweet Jesus." Brought before the governor, Anastasia openly expressed her faith in Christ the Lord, and when the governor tried to turn her away from the Faith--first by promises and then by threats--the martyr said to him: "I am ready to die for my Lord not only once, but--oh, if it were only possible--a hundred times!" When they stripped her naked to humiliate her, she cried out to the servants: "Whip me, cut me up and tear me apart, cover my naked body with wounds and cover my shame with blood!" She was beaten, torn and cut up. On two occasions she felt a great thirst and asked for water, and a Christian, Cyril, gave her a drink, for which he was blessed by the martyr of Christ and beheaded by the pagans. Anastasia's breasts and tongue were severed, but an angel of God appeared and sustained her. Finally, she was beheaded outside the city. Blessed Sophia found her body and buried it honorably. Anastasia was crowned with the wreath of martyrdom during the reign of Decius.
! THE VENERABLE ABRAMIUS THE RECLUSE AND HIS NIECE MARY
Forced to do so by his parents, he married, but on the very day of his wedding he left his bride, his parents' home and all that he possessed, and withdrew into solitude to live a life of strict asceticism. He labored thus for fifty years, and left his cell only twice during that time. The first time, he left at the order of his bishop to convert a pagan village to the Christian Faith. The second time he came out to save his licentious niece Mary. He entered peacefully into rest in the year 360 A.D., at the age of seventy. (See "Reflection" below.)
! THE VENERABLE MARTYR TIMOTHY OF ESPHIGMENOU
He was from the village of Kessana in Thrace. He was married and had two daughters. His wife was seized by the Turks and became a Moslem. In order to save his wife from the harem, he pretended to become a Moslem. After rescuing his wife, he conducted her to a convent, while he went to the Great Lavra on Mount Athos and then to the Monastery of Esphigmenou. He desired martyrdom for Christ, like Agathangelus of Esphigmenou, and was beheaded in Jedrene on October 29, 1820 A.D. His body was thrown into a river, but his clothing was retrieved by Elder Germanus, the spiritual father of Esphigmenou.
! HYMN OF PRAISE
! THE VENERABLE ABRAMIUS THE RECLUSE
St. Abramius left his bride
And dedicated his life to strict asceticism.
By asceticism he worked out his salvation,
And wisely directed others to salvation.
Demonic power attacked the saint,
But in the name of Christ he crushed it.
The demon took on various, horrible guises,
To scare and hinder the man of God.
This man of God did not allow himself to fear,
Or separate his mind from God,
But shone on the world like a candle,
Glorifying the One God, the Most-holy Trinity.
Imprisoned, alone and not wanted by the world,
Abramius became a prisoner for the sake of Christ
For fifty years--fifty years!
Of tears, fasting and struggle--all for the Son of God:
For fifty years--fifty years!
Established on Christ, the firm Foundation.
Glory to Abramius, Christ's soldier,
That, on the mortal earth, he has shown us immortality!
! REFLECTION
//But he that endureth to the end shall be saved// (Matthew 10:22), said the Lord. Faith is the only light of endurance, for endurance in and of itself implies unbearable darkness. Faith is the shining star in this darkness; faith eases the sharpness of suffering; it bears on its wings all the weight of endurance. St. Abramius gives us a beautiful example of perseverance in endurance. The vexation that the devil caused him by a multitude of temptations and terrors would have driven lesser men to leave one place for another. But Abramius did not want to move, so as not to give the evil demon a cause to rejoice; he remained in his place and defeated the devil. The bishop of that region sent Abramius to a pagan village to convert the villagers to the Christian Faith. After long hesitation, Abramius set out, saying: "Let it be as God wills--I will go out of obedience." He first built a church in that village. Then he smashed all the idols in plain sight of the villagers. They beat him and whipped him half to death, and drove him from their village. But he prayed to God with tears for them, that the Lord would open the eyes of their hearts to know the truth of Christ. And so the pagans continually beat and abused him over the course of three years, but he constantly prayed to God for them, and was not angered with them, enduring in the Faith as a firm rock. And only after three years of labor, tears, forgiveness and faith, was he rewarded. Suddenly, the consciences of the villagers were awakened and they all came together to Abramius, bowing before him, and receiving the Christian Faith from him.
! CONTEMPLATION
Contemplate the terrible punishment by which Paul punished the magician (Acts 13):
# How a certain Jewish magician held Sergius the deputy under his dark power;
# How Paul, by a word, blinded that magician;
# How the deputy saw that miracle, believed in Christ and was baptized.
! HOMILY
! on the glory of the name of God
And blessed be His glorious name forever! And let the whole earth be filled with His glory. Amen and Amen (Psalm 72:19).
From the grace-filled heart of the prophet flow words full of grace. The prophet speaks of the King and the King's Son, the most unusual King Who has ever appeared on earth. //May His name be blessed forever//(Psalm 72:17), the prophet said, and then, as if that were not enough, he said it again and added: //His glorious name.// The Church of Christ is the glory of Christ. Blessed is His Holy Church--the fruit of His labors, the wreath of His humiliation, the work of His hands, and the flower of His blood! Blessed is the very name of His Church--holy and salvific! And with His Church, that is, with His work and with His glory, the whole earth shall be filled. By the words, //Forever and ever,// the prophet foretold the immortal work of Christ, that is, His Church. She will be built in time and will be revealed in eternity. She will be built until the end of time, and will be revealed whole in eternity.
O my brethren, let us strive that our souls may be built into Christ's Church, into that living and immortal body whose life has no end, and whose beauty is indescribable. Let us strive that we are not rejected as unsuitable and useless stones, to be cast into the abyss of eternal darkness.
O Lord Jesus Christ, King and Son of the King, write us also in the book of immortality, and remember us in Thy Heavenly Kingdom.
To Thee be glory and praise forever. Amen.
! THE HOLY HIEROMARTYR DIONYSIUS THE AREOPAGITE
Dionysius is numbered among the Seventy Lesser Apostles. This wonderful man was the scion of a distinguished pagan family in Athens. Having completed the school of philosophy in Athens, he went to Egypt to study further. While he was there the Lord Christ died on the Cross, the sun was darkened, and there was darkness in Egypt for three hours. Then Dionysius cried out: "Either God the Creator of the world is suffering, or this world is coming to an end." Returning to Athens, he married a woman named Damaris and had sons by her. He became a member of the highest court among the Greeks, the Areopagus, and thereafter he was known as the "Areopagite." When the Apostle Paul preached the Gospel in Athens, Dionysius was baptized with his entire household. Paul consecrated him Bishop of Athens. He left his wife, children and his position for the love of Christ. He traveled with Paul for a long time and met all the other apostles of Christ. He traveled to Jerusalem especially to see the Most-holy Theotokos, and described his encounter with her in one of his written works. He was present at the burial of the Holy and Most-pure One. When his teacher, St. Paul, suffered martyrdom, Dionysius also desired such a death for himself, and went to Gaul, with his presbyter Rusticus and the deacon Eleutherius, to preach the Gospel among the barbarians. He suffered much but also succeeded much. By his labors many pagans were converted to the Christian Faith. Dionysius built a small church in Paris, where he celebrated the divine services.//) When he was ninety years old, he, Rusticus and Eleutherius were seized and tortured for Christ; then all three were beheaded. The severed head of St. Dionysius rolled a long distance, to the feet of Catula, a Christian, who honorably buried it with his body. Dionysius suffered during the reign of Dometian in the year 96 A.D. He wrote several famous works: on the Divine Names of God, on the Celestial and Ecclesiastical Hierarchies, on Mystical Theology, and on the Most-holy Theotokos.
--------------------
//) Some historians believe that Dionysius [Denis] of Paris was someone other than Dionysius the Areopagite.
! THE VENERABLE JOHN THE CHOZEBITE
John was an Egyptian who lived the ascetic life in the Chozeba community during the reign of Emperor Justinian. Whenever he celebrated the Liturgy, he perceived a heavenly radiance in the sanctuary. Ananias, an elder, labored ascetically not far from him. Wondrous was the humility of these two saints. A man brought his insane son to the elder Ananias to heal him by prayer. Ananias sent him to St. John as being greater than he. John could not help but obey the elder; however, he cried out: "In the name of Jesus Christ, it is Ananias, not I, who commands you to come out of this young man!" And the young man was healed immediately.
! THE VENERABLE DIONYSIUS OF THE MONASTERY OF THE KIEV CAVES
Dionysius was a hieromonk and a recluse. The following incident occurred to him on the Feast of the Resurrection in 1463 A.D. With a cross and censer, Dionysius visited the caves in order to cense the relics and graves of the saints reposing there. Filled with the joy of the Resurrection, as he approached the caves, he cried out: "Holy fathers and brethren--Christ is Risen!" And a voice resounded from the graves as powerful as thunder: "Indeed, He is Risen!"
! SAINT HESYCHIUS THE CHOREBITE
At first, Hesychius was negligent about his soul's salvation, but then he became gravely ill and died. However, he came back from the dead and regained health. This completely changed him. He shut himself up in a cell on the Holy Mountain, and spoke to no one for twelve years. Before his death, the monks opened his cell and begged him to give them some instruction. He said only: "He who contemplates death cannot sin." From Hesychius descended the so-called hesychasts, who stress silence, divine contemplation, and mental prayer as the chief works of a true monk. There was even a hesychast skete on the Holy Mountain. It is said that St. Gregory the Theologian was a hesychast during the Lenten season. St. Hesychius lived in the sixth century.
! HYMN OF PRAISE
! THE HOLY HIEROMARTYR DIONYSIUS THE AREOPAGITE
Glorious saint Dionysius,
Wondrous theologian and lucid scribe!
His mind, gathered in his heart, he directed to God;
He witnessed heavenly mysteries and revealed them to us.
He perceived the glory of the heavenly orders
And described the hierarchy of heaven:
Principalities, Dominions, Virtues, Powers,
Wondrous Thrones, Seraphim,
Cherubim and Archangels,
Golden-winged Angels of God,
And the Mother of God.--
He beheld all with fear,
And also that which shines above the dust of the earth:
Heavenly powers of infinite strength,
Immortal suns and stars most brilliant!
All that he witnessed, Dionysius made clear
And told to the Church.
Thus he adorned and enriched the Church,
And his accomplishments were made golden
By his bloody death for his Christ.
Now he shines in heaven;
And the angelic hosts, blazing with the glory of God,
Call Dionysius "Brother."
! REFLECTION
A vision of St. Andrew: Walking one day along the streets of Constantinople, St. Andrew saw a large, splendid procession. A rich man had just died, and his funeral procession was majestic. However, when Andrew looked more closely, he saw many black figures capering around the corpse with joy: some laughing like prostitutes, others barking like dogs, others grunting like swine, and others pouring a foul liquid over the body of the deceased. They all mocked the processional chanters, saying: "You are chanting over a dog!" Astonished, Andrew wondered what this man had done in his life. Glancing around, he saw a handsome youth standing by a wall and weeping. "For the sake of the God of heaven and earth, tell me the reason for your weeping!" he said, and the youth replied that he was the guardian angel of the deceased. The dead man had grievously offended God by his sins, and had rejected the counsels of his angel. He had completely given himself over to the black devils. The angel said that that man had been a great and unrepentant sinner: he had been a liar, a despiser of men, a miser, a perjurer and a libertine, who had defiled three hundred souls by his debauchery. He had been honored by the emperor and respected by men, but all in vain. The great funeral retinue was also in vain. Death had caught up with the rich man in his unrepentant state, and the harvest had come to him suddenly.
! CONTEMPLATION
Contemplate the miraculous deliverance of Jerusalem from the Assyrians (II Chronicles 32):
# How Sennacherib and his mighty army surrounded the walls of Jerusalem and mocked the God of Israel;
# How Hezekiah and the Prophet Isaiah fervently prayed to God for deliverance;
# How an angel slew 185,000 Assyrians by night; how Sennacherib was slain by his sons; and how Jerusalem was saved.
! HOMILY
! on fear and joy in God
Serve the Lord with fear and rejoice in Him with trembling (Psalm 2:11).
The prophet of God speaks these words to earthly kings and judges, for they are inclined to pride and lasciviousness born out of the power and riches that are given to them. O you kings and judges--clods of dust beneath the feet of God--do not forget that you are only the servants of God, hirelings from today until tomorrow! Of what does a hireling think, digging in the field all day? About the pay that he will receive in the evening. Of what is the hireling proud? Not of his labor, but rather his pay. In what does the hireling rejoice? In his labor, his sweat, or his pay? Naturally, in his pay. O kings and judges, your service in the field of this life is the labor of a hireling. Therefore, with fear serve your Lord, who hired you: for you know not how your Lord will evaluate your labor in the end, or what pay He will render unto you. Serve with great humility, saying to yourself: //We are unprofitable servants// (Luke 17:10). Whether you will receive a reward or punishment when you go down into the grave and come before the King and Judge is uncertain. Therefore, fear must fill all the days of your service.
//Rejoice in Him with trembling//. Rejoice with a pure and holy joy, as the angels rejoice in the living and unapproachable God. The joy of Paradise is fragrant with purity and sanctity; but the malicious joy of hades is accompanied by rebellious laughter. Therefore the joy of Paradise is eternal, while the laughter of hades is turned to rage and groans.
//Serve with fear,//for the Lord is just; //rejoice with trembling,// for the Lord is exalted and holy. O Lord our God--just and exalted, awesome and holy--all of our life on earth is service to Thee and joy in Thee. If we do not serve Thee, we serve our own destruction; and if we do not rejoice in Thee, we rejoice in our own evil works. We worship Thee and pray Thee to help us, that our service be directed by fear of Thee, and that our joy be purified by our trembling before Thee.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR ZENOBIUS AND HIS SISTER ZENOBIA
They were from the town of Aegea in Cilicia. They inherited the true Faith and great material wealth from their parents. Working zealously for the Faith and with great love, they distributed all their wealth to the poor. Because their hands were so generous, the hand of God shielded them from every evil intent of men and demons. The generous hands of Zenobius, which gave to the poor, were endowed by God with the gift of miracle-working, and Zenobius healed the sick of every kind of infirmity merely by touching them. Zenobius was appointed Bishop of Aegea. During a persecution, the Prefect Lysias arrested him and said: "I offer you two choices: life or death; life if you worship the gods, or death if you do not." St. Zenobius replied: "Life without Christ is not life but death, whereas death for the sake of Christ is not death but life." When Zenobius was subjected to cruel tortures, Zenobia came to the judge and said: "I also want to drink from this cup of suffering, and be crowned with that wreath." After being tortured in fire and in boiling pitch, both were beheaded with the sword in about the year 285 A.D. Thus this brother and sister took up their habitation in the Kingdom of the Immortal Christ the King.
! THE HOLY APOSTLES CLEOPAS, TERTIUS, MARK, JUSTUS AND ARTEMAS
They were all numbered among the Seventy. The risen Lord appeared to Cleopas on the road to Emmaus (Luke 24:13-33). Tertius wrote down the Epistle to the Romans for Paul (Romans 16:22), and died a martyr as Bishop of Iconium after the Apostle Sosipater (November 10). St. Mark (or John) was the son of the devout Mary (whose home was a refuge for the apostles and the first Christians), and a kinsman of Barnabas (Acts 12:12). He became the bishop of the Samaritan town of Apollonia. Justus was a son of Joseph the Betrothed. Together with Matthias, he was one of those selected as a possible replacement for Judas the traitor, but he was not chosen. He suffered for the Gospel as a bishop in Eleutheropolis. St. Artemas was Bishop of Lystra in Lycaonia, and reposed peacefully.
! THE HOLY KING MILUTIN
Milutin was the son of Uroš I and Queen Helena and brother of Dragutin. He fought many battles defending his Faith and his people. He fought against Emperor Michael Palaeologus because Palaeologus accepted union with Rome and tried to force the Balkan peoples and the monks of Athos to recognize the pope. He fought against Shishman, King of Bulgaria, and Nogai, King of the Tartars, in order to defend his lands. All his wars were successful, for he constantly prayed to God and hoped in God. He built more than forty churches: beside those that he built in his own land--Treskavac, Gračanica, St. George in Nagorič, the Church of the Holy Theotokos in Skoplje, Banjska and so forth--he also built churches outside of his land, in Thessalonica, Sofia, Constantinople, Jerusalem and the Holy Mountain. He entered into rest in the Lord on October 29, 1320 A.D. His body was soon shown to be incorrupt and miracle-working; and as such, it reposes even today in the Church of the Holy King in Sofia, Bulgaria.//)
--------------------
//) Milutin was married twice and not four times as his detractors wrote. The first time he was married to Elizabeth, a Hungarian princess, and the second time to Simonida, a Byzantine princess.
! HYMN OF PRAISE
!
! THE HOLY KING MILUTIN
The saint of God, Milutin the gallant,
Had a great and difficult task:
To defend the Faith against evil schismatics,
And the people against many cruel tyrants.
He was a scourge to Palaeologus, and a scourge to the Latins--
Milutin triumphed over all the unbelievers.
The Orthodox Faith was his great treasure,
As it was Justinian's crown of pearls!
And, like Justinian, he built many churches,
And raised up glory to the glorious Christ throughout the world.
Royally he attended to matters imperial,
But his mind was not parted from Christ God.
Thus, pure and innocent in heart was he,
A venerable mind in the whirlpool of the world.
God, Who looks at the heart and judges accordingly,
Granted King Milutin immortality--
Immortality of soul, and an incorrupt body.
And lo, our holy king, even now, is intact!
As you fear no man, O wondrous King,
Be our defender before the Living God,
That he forgive our sinful monstrosities,
And vouchsafe us, with you, the Heavenly Kingdom.
! REFLECTION
A great son of the Orthodox Church, King Milutin saved the Balkans from Uniatism. At that time in history when the Byzantine emperor's conscience was weakened, this noble and God-bearing Slavic king rose up decisively and, with God's help, saved Orthodoxy--not only in his own land, but also in all the lands of the Balkans. He who closely examines the life of the holy King Milutin will understand why God gave him success after success in all his works throughout his life. When Milutin ascended the throne, he immediately vowed to God that he would build a church for each year that he would reign. He reigned forty-two years and built forty-two churches. Next to some of the churches--for example, in Thessalonica and Constantinople--he also built hospitals for the indigent, where the poor would receive everything free of charge. Beyond that, he especially loved to give alms to the needy from his own enormous wealth. Oftentimes, this powerful and wealthy king dressed in the clothes of a poor man and, with two or three of his servants, walked among the people at night and asked about their misfortunes, and gave to them abundantly. He lived a very simple, familial life, even in the midst of his great wealth--though he never seemed that way to foreigners. He had become accustomed to a simple life while still at the home of his father; King Uroš I. It is told how Emperor Michael Palaeologus sent his daughter Anna with a retinue to the court of King Uroš, an offering to Milutin, in order to lure the Serbian king into union with Rome. But King Uroš, seeing the foolish extravagance of the princess and her retinue, said: "What is this, and what is it for? We are not used to such a life." And pointing to a Serbian princess with a distaff in her hand, he said: "Behold, this is the kind of clothing we expect our daughter-in-law to wear."
! CONTEMPLATION
Contemplate the miraculous healing of the crippled man (Acts 14):
# How there was a man in Lystra who had never stood on his feet;
# How he beheld Paul and believed in the Gospel;
# How Paul, in the name of the Lord Jesus Christ, healed the man--who //leaped and walked//.
! HOMILY
! on the desire for God--the only desire of the righteous
Whom have I in heaven but Thee? And there is none upon earth that I desire beside Thee (Psalm 73:25).
In heaven and on earth, there is one supreme good for the soul of an awakened man. That good is God. There is countless good in heaven, but the King of heaven is the greatest good. There is countless good on earth, but the Creator of all of this good is incomparable. That is why the soul of the awakened man asks: "What could I have or what could I desire, either in heaven or on earth, beside Thee?" Is the river necessary to the one who is brought to drink at its source? Does one who sits at the king's table desire the shepherd's dinner? God alone is sufficient in Himself to satisfy all of men's hunger and thirst. The heavens are God's, the earth is God's. The Lord of all good is the greatest good; the Creator of all sweetness is the greatest sweetness; the Bearer of all wisdom is the greatest wisdom; the Source of all power and mercy is the greatest power and mercy; the Creator of every kind of beauty in heaven and on earth is the greatest beauty. No kind of good can enter the heart of man--whether openly or in a dream--that is not already in God to the highest degree.
Therefore, my brethren, let us ask God that we may receive all; let us seek God that we may find all; let us become rich in God that we may be rich in all.
O Lord our God, come near us when our souls seek Thee.
To Thee be glory and praise forever. Amen.!
! THE HOLY APOSTLES STACHYS, AMPLIAS, URBAN, NARCISSUS, APELLES AND ARISTOBULUS
They were all of the Seventy. Stachys was an assistant to St. Andrew the First-called. St. Andrew appointed him Bishop of Byzantium. He established the church in Argyropolis and governed his flock faithfully and zealously. After sixteen years as bishop, he entered peacefully into rest in the Lord. Amplias and Urban worked likewise with St. Andrew, and were ordained bishops by him--Amplias in Lydda of Odyssopolis in Judea, and Urban in Macedonia. Both died as martyrs for Christ the Lord. Narcissus was appointed Bishop of Athens by the Apostle Philip. St. Apelles was Bishop of Heraclea in Trachis. Aristobulus, brother of the Apostle Barnabas, preached the Christian Faith in Britain and reposed peacefully there.
! THE HOLY MARTYR EPIMACHUS
He was born in Egypt and labored there in asceticism, ending his earthly life as a martyr. Imitating St. John the Baptist, he withdrew to the wilderness while still a youth. Because of his great love for God, the Spirit of God led him to every truth and, with no other teacher, taught him how to live a life of asceticism. Then, Epimachus learned that the unbelievers were torturing and killing Christians in Alexandria for the sake of Christ. All aflame with zeal for the Faith, he went to the city and smashed the idols. When the pagans tortured him for this, he cried out: "Smite me, spit on me, put a crown of thorns on my head, put a reed in my hand, give me gall to drink, crucify me on a cross, and pierce me with a spear! This is what my Lord endured, and I too want to endure it." In the crowd of people who witnessed the torturing of St. Epimachus, there was a woman who was blind in one eye. She wept bitterly, watching the heartless torture of this God-pleaser. When the tormentors scraped the body of the holy martyr of Christ, blood spurted from him, and one drop of blood touched the blind eye of that woman. Suddenly, her blind eye regained vision, and was as whole as the other. Then she cried out: "Great is the God in whom this sufferer believes!" After this they beheaded St. Epimachus and his soul took up habitation in eternal joy, in about the year 250 A.D.
! THE HOLY MARTYR NICHOLAS OF CHIOS
Nicholas was a pious youth and a great zealot for the Christian Faith. He was born in the village of Karyes on the island of Chios, where he was tortured and beheaded by the Turks in the year 1754 A.D., and gave his righteous soul to God.
! THE VENERABLE SPYRIDON AND NICODEMUS
They were monks and prosphora-bakers in the Monastery of the Kiev Caves. Though illiterate, Spyridon knew the entire Psalter by heart and worked many miracles during his lifetime. He entered into rest in the year 1148 A.D.
! HYMN OF PRAISE
! ! THE HOLY MARTYR EPIMACHUS
Epimachus, the saint of God,
Felt no fear in his heart,
Either of men or of devils,
And even less of dead idols.
Epimachus rejoiced in his torture;
With his smile he whipped the judge.
His body in torment, his mind in heaven,
Epimachus was adorned with wounds.
He wanted to suffer like Christ,
To stand as a martyr before Christ--
And what he desired, God gave him,
And endowed him with wondrous power
To heal the infirmities of the people
And to gladden men with grace.
A knight of Christ with the sign of the Cross,
A precious stone among precious stones,
Epimachus shines like a star--
A soul such as only Christ can raise.
O Epimachus, wondrous martyr
And glorious prisoner of the true Faith:
Defend us from evil by your prayers,
And protect the Church of God unto the end.
! REFLECTION
//And he that taketh not his cross, and followeth after Me, is not worthy of Me,// said the Lord (Matthew 10:38). The holy and venerable Martyr Timothy of Esphigmenou (October 29) was at first a married man and had two daughters. Later, as a monk, he decided to suffer for the sake of Christ. Already prepared for the path of suffering, he begged the abbot for a blessing to stop by his village of Kessana to say farewell to his daughters. The abbot would not allow him to do that out of fear that a meeting with his two daughters would soften him, and turn him away from martyrdom for the Faith. But Kessana lay on the road to Propontis, where Timothy was headed. When he got to his village, he met a former neighbor, conversed with him and gave him a farewell message for his daughters. In vain, the neighbor begged him to stay and see his daughters, and rest. Timothy went hurriedly on his way. The daughters heard about their father from the neighbor and ran to see him. And now was seen a rare and majestic sight. The daughters raced to overtake and embrace their father, while the father fled from his daughters, so as not to transgress the command of his abbot. The daughters ran quickly but their father ran even faster. The daughters hurried to embrace their father, and Timothy, fleeing from them, hurried to embrace death. The daughters became weary and turned back in despair, and their father disappeared. Before his death Timothy begged his spiritual father, Germanus, to stop by his village and inform his daughters of his end by martyrdom. The Turks then beheaded Timothy and threw his body into a river. Germanus succeeded in retrieving just one garment from the martyr. He brought it to Kessana, found Timothy's daughters and related their father's heroic death to them, and showed them his garment.
! CONTEMPLATION
Contemplate the miraculous guidance of the apostles by the Holy Spirit (Acts 16):
# How Paul and Silas wanted to go from Mysia to Bithynia;
# How the Spirit would not allow it;
# How, in a vision at midnight, a Macedonian man appeared to Paul and summoned him to come to Macedonia.
! HOMILY
! on the certainty of the righteous one that he shall not die
I shall not die, but live, and declare the works of the Lord (Psalm 117:17).
Who can say: //I shall not die?//He who cleaves to the Living Lord. Who can confirm with confidence: //but [I shall] live//? He who sees the Living Lord before him. Enoch and Elias did not die, but were taken into eternal life. The Lord took them in His mercy, and as proof to mankind of immortal life. Jesus Christ the Lord died and resurrected in accordance with His power, and as proof to mankind of the resurrection from the dead. The apostles and saints were slain, but many of them appeared from the other world in their love for mankind, and as proof to mankind of eternal life. Thus, those who were taken up to heaven in the flesh and those whose bodies reposed, live with the resurrected Lord Jesus Christ in the Immortal Kingdom. //I shall not die, but live,// said King David with great certainty, even though he lived on earth before the Resurrection of the Lord, and before the announcement of the General Resurrection of the righteous. With still more certainty, each of us Christians must speak this too: //I shall not die, but live,// for the resurrected Lord is the foundation of our Faith, and our eyes have seen and our ears have heard more--much more--than the eyes and ears of King David. After the Cross of Christ, the devil became as smoke; and after His Resurrection, death became like a mere fog through which one passes to the sunlit field of immortality. Blessed is he, brethren, who becomes worthy to //live, and declare the works of the Lord//.
O Living Lord, enliven us and save us.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR HIEROTHEUS
Hierotheus was a companion of St. Dionysius the Areopagite and received the Christian Faith from the Apostle Paul a short time after Dionysius did. Later, the Apostle appointed him bishop of Athens. At the time of the Dormition of the Most-holy Theotokos, Hierotheus arrived in Jerusalem and took part in her burial. With his divine chanting he inspired heartfelt worship in many, revealing himself as a man inspired from on high. He labored much in the work of evangelism, converted many pagans to the truth and governed well his rational flock. He finally died a martyr for Christ, Who granted him a twofold crown in His Heavenly Kingdom: the crown of a hierarch and the crown of a martyr.
! SAINT STEFAN ŠTILJANOVIĆ
Stefan was a Serbian despot, born of the Pastrović clan. He governed the Serbian people during a most difficult period, struggling courageously against the Turks and the Latins. A righteous man and a patriot, this wonderful prince could be compared with St. Alexander Nevsky, or with the holy King Jovan Vladimir. He entered into rest in the sixteenth century (according to some, in 1515). Over his grave a light appeared at night, by which means his holy relics were discovered. They were brought to the Monastery of Šišatovac in Fruška Gora, where they reposed for a long time. During the Second World War, St. Stefan's relics were transported to Belgrade and placed in the Cathedral Church beside the body of Prince Lazar. The prince's wife, Helena, seeing Stefan's incorrupt relics and witnessing miracles arising from the relics, was tonsured a nun, and gave herself over to asceticism until death.
! THE VENERABLE AMMON
Ammon was an Egyptian wine grower. His kinsmen forced him to marry against his will, but he did not wish to live with the woman as husband and wife. From the first day he called her his sister, and counseled her to join him in preserving their mutual chastity for the sake of the greater good in heaven. He lived with his wife this way for a full eighteen years. Later, by mutual agreement, his wife established a convent in her home, and Ammon went to the Nitrian desert, where he gave himself up to the ascesis of hermitic life. Because of his purity of heart, God granted him the great gifts of clairvoyance and miracle-working. A husband and wife brought their insane son to Ammon for healing by his prayer, but Ammon in no way desired to do this. After prolonged insistence by the parents, Ammon said: "The illness and health of your child is in your hands. Return the stolen ox to that widow (and he spoke her name) and your son will be healed." The parents, amazed at the saint's clairvoyance, admitted their sin and promised to return the stolen ox as soon as they arrived home. Then St. Ammon prayed to God and the child was healed. Ammon was a close friend of St. Anthony the Great. When Ammon died in Nitria, in approximately 350 A.D., St. Anthony saw Ammon's soul in the heights from his cell and said to the brethren: "Today Abba Ammon died; behold, I see his holy soul as the angels bear it to heaven."
! THE VENERABLE PAUL THE SIMPLE
Until the age of sixty, Paul lived in the world as a married man. Catching his wife in sin, he left everything and went to St. Anthony in the wilderness, receiving the monastic tonsure from him. Even though he was simple and illiterate, he achieved such spiritual perfection that he perceived every man's soul just as ordinary men see each other's bodies. He was a great miracle-worker, and in some instances, surpassed even St. Anthony. Paul died in deep old age in the year 340 A.D., and took up his joyful habitation with the angels.
! HYMN OF PRAISE!
! THE VENERABLE AMMON
Someone once begged Ammon:
"Show me, the wretched one, the path to salvation."
To him, the saint said: "Through your entire life
You must be as a prisoner who awaits judgment,
As the prisoner who fears the judge,
And counts the hours to his trial,
Listening carefully for the voice that will say:
'The judge is calling for you!'
He does not value food and shelter,
Cares not whether he stands or sits:
He simply listens and listens
For the call of the judge.
My dear brother, we are like that--
It is true for me, and it is true for you."
And another asked him: "The narrow path, what is it?
And the sorrowful path, how long does it last?"
Ammon said to him: "The narrow path is
Constraining your thoughts, so that they do not stray.
The sorrowful path is the binding of your desires,
So that your desire is naught but seeking salvation in Christ."
O all-wise Ammon, knight of asceticism;
Patient bearer of the yoke of Christ
Who pleased God, and tamed men--
God has rewarded your labors with Paradise!
! REFLECTION
A vision of St. Andrew: St. Paul was not the only one who was //caught up into Paradise, and heard unspeakable words// (II Corinthians 12:4). Over 850 years after St. Paul, this also occurred to St. Andrew. One wintry night, St. Andrew was lying among the dogs on a dung heap in order to warm his frozen body, when an angel of God appeared to him and raised him up to Paradise (whether in the body or outside the body, St. Andrew himself could not explain), and kept him in the heavenly world for two weeks, eventually leading him to the third heaven. "I saw myself clothed in the most dazzling garments--they were as if woven from lightning--with a wreath of flowers on my head, and girt with a royal girdle. I rejoiced greatly at this beauty, and was amazed in both mind and heart, at the inexpressible beauty of God's Paradise, as I walked around it and rejoiced." Andrew also wrote that he saw Christ the Lord: "And when a flaming hand drew the curtain, I saw my Lord--as once did the Prophet Isaiah--sitting upon a high and exalted throne, with Seraphim standing all around Him. He was clothed in a crimson garment. His face was most radiant, and His eyes gazed most kindly upon me. Seeing Him, I prostrated before Him, worshiping the brilliant and awesome throne of His glory. How much joy overcame me during the vision of His face cannot be expressed; and now, calling to mind this vision, I am filled with inexpressible joy…. I heard my Most-merciful Creator when, with His most sweet and pure lips, He spoke three words to me, which so sweetened my heart and inflamed it with love for Him, that I melted as warm wax from spiritual warmth…." When St. Andrew also desired to see the Most-holy Theotokos, he was told that she was not in heaven just then, but had descended to earth to help the poor and to comfort those in need.
! CONTEMPLATION
Contemplate the injustice of King Manasseh and God's punishment (II Chronicles 33):
# How Manasseh restored idol worship, enchantments and witchcraft, and did everything that is evil in the sight of the Lord;
# How God permitted the Chaldeans to capture Manasseh.
! HOMILY
! on useful anger
Be angry and sin not (Psalm 4:4).
Be angry with yourself, brethren, and sin no more. Be angry at your sins of thoughts and deeds, and sin no more. Be angry with Satan //the father of lies// (John 8:44), and no longer do his will. Be angry at sin in the world and the trampling of God's holy Church by godless men, but beware that you do not cure sin by sin. Be angry with your friends when they sin; but be angry with the intention to correct them, and not to embitter them even more. The anger of a friend toward a friend, and the anger of parents toward their children--and of God toward men--is not a storm that uproots the tree but a wind that strengthens the tree, and rids it of rotten fruit so that the healthy fruit will increase in number and beauty. But let your anger have measure, so that it may be healing and not poisonous. In order to have this kind of control, keep God before you in your anger. There is no stronger containment for anger than God. All anger that is not in the name of God and God's righteousness is a sin. Do not become angry for the sake of idleness, but become angry for that at which God is angered. If your will is firmly set in God's law, you will always know when it is necessary to be angry, and how much is needed. This cannot be expressed entirely in words, nor can it even be explained to the uneducated. Anger, in its place, acts as mercy does in its place. O my brethren, do you see how various powers are placed in our souls, and man, by his free will, can utilize them for life or death? Anger toward oneself can never be recommended enough. Here is a wonderful example: the more a man learns to be angry with himself, the less he is angry with others. Carried away with anger at his own weaknesses, he either does not see the weaknesses of others, or when he does see them, he judges them kindly.
O Lord God, Thou only righteous One, implant in us the remembrance of the Day of Thy righteous anger, so that we may protect ourselves from spiritual sin.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR CHARITINA
Having been orphaned in infancy, Charitina was adopted by an eminent Christian man named Claudius, who raised her as his own daughter. Charitina was meek, humble, obedient and quiet. She studied the Law of God day and night, and vowed to live her life in chastity, as a true bride of Christ. Since Charitina also brought others to the Christian Faith, Dometius, Emperor Diocletian's eparch, heard of her, sent soldiers to take her from her foster father, and brought her to trial. The judge questioned her: "Is it true, young maiden, that you are a Christian, and that you deceive others, leading them to this profane Faith?" Charitina courageously replied: "It is true that I am a Christian, but it is a lie that I deceive others; rather, I lead those in error to the true path, by leading them to my Christ." The evil judge condemned her. Her hair was shorn and hot coals were poured onto her head. Even so, she was saved by the power of God. They threw her into the sea, but God delivered her again. They tied her to a wheel and began to turn it, but an angel of God stopped the wheel, and Charitina remained unharmed. Then the depraved judge sent some dissolute young men to defile her. Fearing this dishonor, St. Charitina prayed to God to receive her soul before those degenerates could defile her virginal body. While she knelt, praying to God, her soul departed from her and was translated to the Immortal Kingdom of Christ.
! THE HIEROMARTYR DIONYSIUS, BISHOP OF ALEXANDRIA
Dionysius was born in Alexandria of eminent pagan parents. He was educated in Greek philosophy, and then studied with Origen. As a young man, he read the epistles of the Apostle Paul, came to believe in Christ and was baptized by Demetrius, Bishop of Alexandria. In the year 247 A.D., Dionysius became Bishop of Alexandria, and served God and God's people as a true shepherd under very difficult circumstances. Externally, the Church was persecuted by pagans, while from within it was rent by heretics. In addition, a plague decimated the population for several years. Dionysius lived, hidden by the faithful, outside Alexandria for three years so as not to be slain before his time. During those three years, he wrote many epistles and other compositions to his flock, instructing and encouraging them to uphold Orthodoxy. Among his writings are several canons that the Church adopted. His epistle against Novatian is also considered a canonical writing. He governed the Church for seventeen years, and reposed in the year 265 A.D.
! THE VENERABLE EUDOCIMUS OF VATOPEDI
In the year 1841 A.D., when the ossuary at Vatopedi was being restored, the workmen found the relics of a man in a kneeling posture. He had an icon of the Most-holy Theotokos in his hands, resting on his bosom. A wondrous fragrance exuded from these relics. Not knowing who this holy man was or when he lived, the monks gave him the name Eudocimus, and transferred his relics into the church, where they remain today. Many miracles of healing have occurred over these relics. Even now, one can read these words, carved on his silver coffin: "This coffin was made for the honorable head of St. Eudocimus by the monk Gabriel, whom this saint healed from a grave illness."
! THE VENERABLE DAMIAN, JEREMIAH AND MATTHEW
They were clairvoyants and miracle-workers of the Monastery of the Kiev Caves. They all lived in the eleventh century.
! HYMN OF PRAISE
!
! THE HOLY MARTYR CHARITINA
Tortured Charitina, covered with blood,
Prayed on her knees to the Most-high God:
"O Most High, All Merciful--my Creator--
Among Thy martyrs, number me also!
Sweet Christ, Thou didst suffer on the Cross for me,
And now for Thee I desire to suffer.
Be near to Thy virgin, O Savior,
And protect me, lest the evil ones defile me.
Better that they burn my body with cruel fire,
Better that they drown it in the azure sea,
Than that they profane it by a shameful deed,
Before the heavenly angels and the righteous saints."
The Lord did according to Charitina's prayer,
And immediately received her soul into Paradise.
! REFLECTION
Whenever men exert great effort in seeking the truth, and prefer nothing else to the truth, God comes to meet them in His gentle way. This is shown to us in the life of St. Dionysius of Alexandria. Even as a young man and a pagan, Dionysius read all the Greek literature, seeking the truth. When he was not satisfied with this, he read everything that came into his hands. And, in accord with God's providence, he met a poor woman who offered to sell him several hand-copied epistles of the Holy Apostle Paul. Dionysius gladly purchased and read them. They so overcame him that he sought out this woman and asked her if there were more such writings to be had. The woman directed him to a Christian priest who gave him all of Paul's epistles. Having read all carefully, Dionysius came to believe in Christ, and was baptized without any hesitation.
Here is another incident: In the town of Arsinoe, the Millenarian heresy had spread. This heresy taught that Christ would soon come, and He would establish an earthly kingdom on earth for a thousand years. At the head of this heresy was a certain Korakion. St. Dionysius went to Arsinoe to change the minds of the millenarians and to prevent the spread of this heresy. At a large gathering of millenarians and true Orthodox, Dionysius debated with Korakion and other leaders of the millenarians. This debate lasted for three whole days. (Such zeal did the ancient Christians show in the examination of the truth!) God blessed their labor and zeal, through the prayers of St. Dionysius. At the end of the debate, Korakion and all the other millenarians rejected their false teaching and accepted the Orthodox teaching of St. Dionysius.
! CONTEMPLATION
Contemplate the repentance of King Manasseh and God's forgiveness of him (II Chronicles 33):
# How Manasseh, living as a slave in a foreign land, recognized his sin, repented, and prayed to God for forgiveness;
# How God forgave him, and freed him from bondage;
# How, after that, Manasseh did that which is good in the sight of the Lord unto the day of his death, and reigned peacefully.
! HOMILY
! on the good that is shown
There be many who say, Who will show us any good? (Psalm 4:6).
My brethren, great is God's goodness. What words can express that goodness? Great is the goodness of the Heavenly Kingdom with its fiery angels, wonderful saints, and the sweetness of Paradise. Who can describe this goodness? Immortal life, close to God and the angels of God, in the company of the saints and the righteous, is a great good. Another great good will be our meeting with our kinsmen and friends in the heavenly world; with our parents, our children, and our most beloved ones, who by their departure left us in sadness and grief. Who will show us all that good? Many asked this in King David's time, and many ask even today. Who will show it to us, so that we may believe and hope?
That good is shown to us Christians, and we wait for nothing higher, for no one but the Lord Christ--the true Witness to all this good, the true Witness and Lord, brethren, of all this good. The compassionate Lord showed this good to His chosen prophets even before His coming to earth. That is why David says to God: //Lord, lift up the light of Thy countenance upon us// (Psalms 4:6).
This is the reply to those who ask: //Who will show us any good?// God Himself showed us that good. The light of the Lord's countenance is marked upon us, inscribed and etched in our hearts, and in that light we recognize that good which only heaven can give. Brethren, is there a cure for those who have heard about the coming of Christ on earth, but nevertheless asked: Who will show us any good? If Christ had not shown and revealed all that is good by His glorious birth, His glorious miracles, His glorious Resurrection, and His Holy Church, the dark earth would not show it, for it cannot; men would not show it, for they do not know. However, there is a cure for everyone--even for the most incorrigible unbelievers--up to the moment of death. This cure is in repentance of one's evil, in the cleansing of one's heart, and in the fulfilling of Christ's commandments. The healthy can see the light of the countenance of the Lord; but not the sick in soul, the impure in heart or the wrong-minded.
O our Lord God, light of angels and men; help us that we not darken the light that Thou hast given us--and by which we see the heavenly good--by the darkness of our sin. Do not deprive us of these good things, O Most-merciful One.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE THOMAS
Thomas was one of the Twelve Apostles. Through his doubt in the Resurrection of Christ the Lord, a new proof was given of that wonderful and saving event. The resurrected Lord appeared to His disciples a second time, in order to convince Thomas. The Lord said to Thomas: //Reach hither thy finger, and behold My hands; and reach hither thy hand, and thrust it into My side: and be not faithless, but believing//. And Thomas replied: //My Lord and my God// (John 20:27-28). After the descent of the Holy Spirit, when the apostles cast lots to see where they would each go to preach, the lot fell to Thomas to go to India. He was a little saddened that he had to go so far away, but the Lord appeared to him and encouraged him. In India, St. Thomas converted many, both aristocrats and poor, to the Christian Faith, and established the Church there, appointing priests and bishops. Among others, Thomas converted two sisters to the Faith--Tertiana and Migdonia--both wives of Indian princes. Because of their faith, both sisters were ill-treated by their husbands, with whom they no longer wanted to live after their baptism. Eventually, they were allowed to go. Being freed of marriage, they lived God-pleasing lives until their repose.
Dionysius and Pelagia were betrothed, but when they heard the apostolic preaching they did not marry, but devoted themselves to the ascetic life. Pelagia ended her life as a martyr for the Faith, and Dionysius was ordained a bishop by the apostle. Prince Mazdai, Tertiana's husband, whose son, Azan, was also baptized by Thomas, condemned the apostle to death. Mazdai sent five soldiers to kill Thomas. They ran him through with their five spears, and thus the Holy Apostle Thomas rendered his soul into the hands of Christ. Before his death, he and the other apostles were miraculously brought to Jerusalem for the burial of the Most-holy Theotokos. Arriving too late, he wept bitterly, and the tomb of the Holy Most-pure One was opened at his request. The Theotokos' body was not found in the tomb: the Lord had taken His Mother to His heavenly habitation. Thus, in his tardiness St. Thomas revealed to us the wondrous glorification of the Mother of God, just as he had once confirmed faith in the Resurrection of the Lord by his unbelief.
! THE VENERABLE NEW MARTYR MACARIUS
Macarius was born in the town of Kios, in Bithynia. His parents, Peter and Anthusa, were Christians, and he was baptized with the name of Manuel. In his youth, he was sent to learn tailoring as a trade. In the meantime, his father embraced Islam and moved to Brussa. There came a time when Manuel came to Brussa on business, and his father found him and exerted great pressure on him to become a Moslem. Manuel resisted in vain: the Turks circumcised him by force. Manuel then fled to the Holy Mountain and was tonsured a monk in the Skete of St. Anna. His monastic name was Macarius. For twelve years he was an excellent monk, but he never had peace of soul. //Whosoever shall deny Me before men, him will I also deny before My Father which is in heaven// (Matthew 10:33)--Christ's words continually echoed in Macarius's mind. Finally, with the blessing of his elder, he went to Brussa and openly confessed his Faith in Christ before the Turks, calling Mohammed a false prophet. After being flogged for 130 days and enduring other harsh tortures, he was beheaded there, on October 6, 1590 A.D. A part of his miracle-working relics is preserved in the Skete of St. Anna on Mount Athos.
! HYMN OF PRAISE
! THE HOLY APOSTLE THOMAS
The Apostle Thomas, by his unbelief,
Strengthened his faith: the Lord appeared to him.
Thomas witnessed Him and rejoiced,
And joyfully glorified Christ.
India became Thomas's vineyard,
And he cultivated that land with the Cross:
Preaching Christ to the mighty and the lowly,
Preaching His wisdom and His works.
O wise sons of India,
Your wisdom is but a snake in the grass.
Lo, true Wisdom has descended from heaven for you--
The Wisdom of God has appeared in the flesh!
Thomas spoke and worked miracles,
And a multitude of people followed him,
In hearing his wisdom, and beholding the wonders
That Thomas worked in the name of the Lord.
Thomas endured great torments,
But shattered the gates of the darkness of idolatry,
And suffered, like Christ, five cruel wounds,
Which he received in his body for the sake of the truth.
Five bitter wounds, for the number of the senses--
Which is a lesson in mystical wisdom:
He who subdues not all his senses
Will taste of no spiritual sweetness.
! REFLECTION
//We have a building of God, an house not made with hands, eternal in the heavens// (II Corinthians 5:1), says the discerning Apostle Paul. All our efforts for God on earth have this purpose: to merit, according to our power, this eternal house in the heavens not made by hands. The Indian King Gundafor decided to build himself a magnificent palace, unlike any other on earth. When Abban, his envoy, sought a skilled craftsman to build the king's palace, he met the Apostle Thomas by God's providence. St. Thomas told him that he was a craftsman, and that no one else could build what the king wanted. Thomas therefore received much gold from the king for the building of this palace. As soon as he departed from the king, he distributed all the gold to the poor. The palace site was some distance from the king's capital, and after two years the king sent servants to ask Thomas if the palace was completed. Thomas replied: "Everything is ready except the roof," and he sought more money from the king; and the king gave it to him. Again, Thomas distributed it all to the poor, and went throughout the kingdom doing his work, preaching the Gospel. The king, learning that Thomas had not even begun to build the palace, seized him and threw him into prison. That night, the king's brother died, and the king fell into great sorrow. An angel took the soul of the deceased and, leading him through Paradise, showed him a magnificent palace, such as the mind of man could not imagine. The soul of the deceased wished to enter that palace, but the angel told him that he could not, for it was his brother's palace, which the Apostle Thomas had built with his alms. Then the angel returned the brother's soul to his body. When he came to himself, he said to the king: "Swear to me that you will give me anything I ask." And the king swore. Then the brother said: "Give me the palace that you have in the heavens." The king was amazed that he had a palace in the heavens. When the brother described everything in detail, the king believed and immediately released Thomas from prison. Then, when he heard the apostle's preaching of salvation and eternal life, the king and his brother were baptized. King Gundafor undertook new works of charity, and built an even more magnificent palace in the heavens for himself.
! CONTEMPLATION
Contemplate the injustice of King Amon and God's punishment of him (II Chronicles 33):
# How Amon, the son of Manasseh, turned from God and did that which is evil in the sight of the Lord;
# How he reigned for only two years, and was slain by his servants.
! HOMILY
! on the king's repentance
I am weary with my groaning; all night I wash my bed; I water my couch with my tears (Psalms 6:6).
Day replaces night, and night replaces day. Let our daily repentance be succeeded by nightly repentance, and our nightly repentance by daily repentance. Daily repentance is shown primarily in good works; and nightly repentance in prayer, sighing and weeping. Thus, we repay our debt both day and night, by filling them with that which is most worthwhile before the Lord, and that which will go with us to the Judgment of God. Look at King David and behold an example of true repentance. It is not enough to confess one's sin before a priest and consider it forgiven. Behold, even David acknowledged his sin before the Prophet Nathan, saying: //I have sinned against the Lord// (II Samuel 12:13). However, the great king did not consider this enough, but continually sighed in prayer before God, and washed away his sin every night with tears of repentance. Even lying in bed did not serve as rest for him, but as exhaustion from tearful repentance and tearful sighing. Do not say: "David committed murder and adultery, and therefore he had much to repent for." Do you not kill men by your hatred, and commit adultery by your impure thoughts and desires? Brethren, this life is not to justify ourselves but to condemn ourselves. Blessed is he whom God will justify at the Dread Judgment.
Repentance is not a matter for one hour or for one day. Repentance should be our inner occupation to the end of life. //All night I water my couch,// said King David. That does not mean that there is no need for repentance during the day, but that the outpouring of spiritual repentance is more suited to the night than the day. In the stillness of the night, both our sins and God's judgment come more clearly into focus. Doesn't the night remind us more clearly of death than the day? Doesn't the bed remind us of the nearness of the grave?
O Lord, just and wonderful, truly we cannot repent without Thy help. Help us, O All-good One, that we might see our sinful wounds, and smell the stench from them, and weep over ourselves--before our kinsmen begin to weep over our dead bodies, and before our guardian angels begin to weep over the carrion of our souls, when they are cast into the unquenchable fire. Help us and save us, O our God.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE THOMAS
Thomas was one of the Twelve Apostles. Through his doubt in the Resurrection of Christ the Lord, a new proof was given of that wonderful and saving event. The resurrected Lord appeared to His disciples a second time, in order to convince Thomas. The Lord said to Thomas: Reach hither thy finger, and behold My hands; and reach hither thy hand, and thrust it into My side: and be not faithless, but believing. And Thomas replied: My Lord and my God (John 20:27-28). After the descent of the Holy Spirit, when the apostles cast lots to see where they would each go to preach, the lot fell to Thomas to go to India. He was a little saddened that he had to go so far away, but the Lord appeared to him and encouraged him. In India, St. Thomas converted many, both aristocrats and poor, to the Christian Faith, and established the Church there, appointing priests and bishops. Among others, Thomas converted two sisters to the Faith-Tertiana and Migdonia-both wives of Indian princes. Because of their faith, both sisters were ill-treated by their husbands, with whom they no longer wanted to live after their baptism. Eventually, they were allowed to go. Being freed of marriage, they lived God-pleasing lives until their repose. Dionysius and Pelagia were betrothed, but when they heard the apostolic preaching they did not marry, but devoted themselves to the ascetic life. Pelagia ended her life as a martyr for the Faith, and Dionysius was ordained a bishop by the apostle. Prince Mazdai, Tertiana's husband, whose son, Azan, was also baptized by Thomas, condemned the apostle to death. Mazdai sent five soldiers to kill Thomas. They ran him through with their five spears, and thus the Holy Apostle Thomas rendered his soul into the hands of Christ. Before his death, he and the other apostles were miraculously brought to Jerusalem for the burial of the Most-holy Theotokos. Arriving too late, he wept bitterly, and the tomb of the Holy Most-pure One was opened at his request. The Theotokos' body was not found in the tomb: the Lord had taken His Mother to His heavenly habitation. Thus, in his tardiness St. Thomas revealed to us the wondrous glorification of the Mother of God, just as he had once confirmed faith in the Resurrection of the Lord by his unbelief.
! THE VENERABLE NEW MARTYR MACARIUS
Macarius was born in the town of Kios, in Bithynia. His parents, Peter and Anthusa, were Christians, and he was baptized with the name of Manuel. In his youth, he was sent to learn tailoring as a trade. In the meantime, his father embraced Islam and moved to Brussa. There came a time when Manuel came to Brussa on business, and his father found him and exerted great pressure on him to become a Moslem. Manuel resisted in vain: the Turks circumcised him by force. Manuel then fled to the Holy Mountain and was tonsured a monk in the Skete of St. Anna. His monastic name was Macarius. For twelve years he was an excellent monk, but he never had peace of soul. Whosoever shall deny Me before men, him will I also deny before My Father which is in heaven (Matthew 10:33)-Christ's words continually echoed in Macarius's mind. Finally, with the blessing of his elder, he went to Brussa and openly confessed his Faith in Christ before the Turks, calling Mohammed a false prophet. After being flogged for 130 days and enduring other harsh tortures, he was beheaded there, on October 6, 1590. A part of his miracle-working relics is preserved in the Skete of St. Anna on Mount Athos.
! THE HOLY MARTYRS SERGIUS AND BACCHUS
These holy and wonderful martyrs and heroes of the Christian Faith were at first noblemen at the court of Emperor Maximian. The emperor himself esteemed them greatly because of their courage, wisdom and fidelity. But when the emperor heard that his two noblemen were Christians, his love for them turned into rage. Once, when there was a great sacrificial offering to idols, the emperor demanded that Sergius and Bacchus offer sacrifices with him, but they openly refused to obey the emperor in this. Beside himself with rage, the emperor commanded that their military garments, rings and emblems be stripped from them and that they be dressed in women's clothing. He then placed iron hoops around their necks and paraded them through the streets of the city of Rome, to be mocked by everyone. Afterward, he sent them to Antiochus, his deputy in Asia, for torture. Antiochus had risen to his position with Sergius and Bacchus's help, as they had at one time recommended him to the emperor. When Antiochus implored them to deny Christ and save themselves from dishonorable suffering and death, these saints replied: "Both honor and dishonor, both life and death--all are the same to him who seeks the Heavenly Kingdom." Antiochus cast Sergius into prison and ordered that Bacchus be tortured first. His minions took turns beating the holy Bacchus until his whole body was broken. Bacchus's holy soul departed his broken and bloodied body, and in the hands of angels was borne to the Lord. St. Bacchus suffered in the town of Barbalissos. Then St. Sergius was led out and shod in iron shoes with inward-protruding nails. He was driven, on foot, to the town of Rozapha, in Syria, and was beheaded there with the sword. His soul went to Paradise where, together with his friend Bacchus, he received a crown of immortal glory from Christ, his King and Lord. These two wondrous knights of the Christian Faith suffered in about the year 303 A.D.
! THE HOLY MARTYR POLYCHRONIUS
Polychronius was born in the district of Gamphanitus, of peasant parents. As a young man, he worked as a day-laborer in the vineyard of a certain Constantinopolitan. But even as a day-laborer Polychronius devoted himself to the ascetic life of prayer and fasting day and night. Seeing his life, angelic in its purity and abstinence, the vintner was amazed, and gave him much more money than he earned. St. Polychronius took the money and built a church. At the time of the Nicaean Council (325 A.D.), Polychronius was a church reader. He showed such zeal in the defense of Orthodoxy against the Arians that he was ordained a priest. Later, these evil heretics sought revenge, and attacked St. Polychronius inside the church itself, and chopped him into pieces. Thus, this great defender of the truth and purity of Orthodoxy suffered and received a wreath of glory from his Most-glorious Lord.//)
--------------------
//) In the Greek Synaxarion, the Ninety-nine Ascetics of Crete are also commemorated on this day. It is said that the hundredth one never joined them, which is interpreted that the hundredth one was Christ the Lord Himself, their head. The most renowned among them was St. John, a man of great prayer and a miracle-worker. He prayed on his knees so much that he was finally unable to stand on his feet, but walked on his knees. Seeing him walking thus, a certain shepherd thought that he was some kind of beast and shot him with an arrow. In a great miracle, all ninety-nine ascetics breathed their last that same day. The time of their asceticism is not known.
! HYMN OF PRAISE
! THE HOLY MARTYRS SERGIUS AND BACCHUS
The royal men, Sergius and Bacchus
Served the King, but not the earthly one--
Rather, Jesus, the Immortal King.
The earthly king mocked the saints
And removed the belts from their waists,
But the Lord girded them with strength.
The emperor removed their noblemen's togas,
But the Savior clothed them more beautifully
In an incorrupt garment of immortality;
The emperor removed their rings from their right hands,
But the Lord gave them far more glorious ones,
In betrothing their souls to Himself.
The emperor banished them from his court,
But God welcomed them into the heavenly courts.
The earth tortured these knights of Christ,
The earth tortured them, but heaven gave them repose.
Decay rejects purity,
Evil rejects goodness,
But Saints Bacchus and Sergius
Returned all earthliness to the earth,
And gave their holy souls over to God!
Though exiled from the earthly kingdom,
They illumine the earth even now;
By their suffering, they conquered malice;
By their death for the Cross, they are glorified.
As victors over the powers of darkness,
They show us the path to victory.
! REFLECTION
A vision of St. Andrew the Fool-for-Christ: Once, St. Andrew was sitting with his disciple Epiphanius, talking about the salvation of the soul. Just then, a demon approached Epiphanius and began setting traps to distract his thoughts, but did not dare to approach Andrew. Andrew cried out: "Depart from here, impure adversary!" The devil drew back and replied maliciously: "You are my adversary, such as no other in all of Constantinople!" Andrew did not drive him away immediately, but permitted him to speak. And the devil began: "I feel that the time is coming when my work will be finished. At that time, men will be worse than I, as children will be even more wicked than adults. Then I will rest and will not teach men anything anymore, since they themselves will carry out my will in everything." Andrew asked him: "In what sins do your kind rejoice the most?" The devil replied: "The service of idols, slander, malice against one's neighbor, the sodomite sin, drunkenness and avarice--in this we rejoice the most." Andrew further asked him: "And how do you tolerate it when someone who first served you rejects you and your works?" The devil replied: "You know that better than I do; we find it difficult to tolerate, but we are comforted by this: we will probably bring them back to us--for many who have rejected us and turned to God have come back to us again." After the evil spirit had said this and much more, St. Andrew breathed on him and he disappeared.
! CONTEMPLATION
Contemplate the righteousness of King Josiah, and God's reward to him (II Chronicles 34):
# How King Josiah rooted out the idols, and did all that which is good in the sight of the Lord;
# How God's blessing was poured out upon him and his people during his long reign.
! HOMILY
! on children and their praise of the Lord
Out of the mouth of babes and sucklings Thou hast ordained strength, because of Thine enemies (Psalm 8:2).
At the glorious Entry of the Lord Jesus into Jerusalem, and even in the Temple itself, the children cried out: //Hosanna to the Son of David! Blessed is He that cometh in the name of the Lord!//(Matthew 21:9). It seems that nothing irritated the Jewish elders so much as this praising of Jesus by young children. //Hearest thou what these say?// (Matthew 21:16), they asked Him maliciously. And Jesus answered them meekly: //Yea; have ye never read, Out of the mouth of babes and sucklings thou hast perfected praise?// (Matthew 21:16). Thus, it is as clear as day that these prophetic words of David pertain to the wonder that occurred at the Entry of the Lord Jesus Christ into Jerusalem: this wondrous praising of the Lord by little children. It is obvious that, as this event was prophesied, so it was literally fulfilled. It is also obvious from this that the Lord Himself was then referring to that prophecy of King David: //Out of the mouths of babes and sucklings Thou hast perfected praise.// There can be no doubt that it was a great wonder, inspired by the Spirit of God and carried out by the power and will of God. While the princes, scribes, elders and priests were not able to recognize Christ the Lord, the little children both recognized and proclaimed Him! In truth, this is a miracle, unique throughout the Old and New Testaments; and no less of a miracle than the resurrection of the dead. In fact, during the first miracle [Christ's Entry into Jerusalem] and during the second [Christ's Resurrection], the same power of God was acting--the same Spirit and the same providence of God. And the prophet wanted especially to emphasize this power and majestic glory of God by the event with the little children, which event he places parallel with the wonders of the starry universe, created by the same power of God. //When I consider Thy heavens, the work of Thy fingers, the moon and the stars, which Thou hast ordained// (Psalm 8:3).
Besides this, among those little children should be numbered the apostles themselves--and many saints, ascetics, martyrs for Christ, and virgins--thousands, thousands and thousands of those who, with innocence and open hearts, recognized Christ as the Son of God and their Savior, who embraced Him with wholehearted love and endured difficult suffering for Him. Why, exactly, did the Lord ordain praise for Himself from their mouths, and not from the mouths of nobles, philosophers and rhetoricians? He accepted their praise because of their meekness, and rejected the others because of their pride; for the proud are the greatest enemies of God. That is why Christ miraculously loosed the tongues of children, simple fisherman and peasants--to proclaim the truth contrary to their enemies, that is, the proud and empty princes and scribes of the Jews.
O Lord Most-powerful, Almighty God; loose our tongues also, that with strong faith and childlike joy we too may proclaim Thine endless glory.
To Thee be glory and praise forever. Amen.
! THE VENERABLE PELAGIA
! Pelagia was a repentant sinner. She was born to pagan parents in Antioch, and was endowed by God with great physical beauty. Pelagia used her beauty to the destruction of her own soul and those of others. She became very wealthy as a result of her prostitution. Once, while walking past the Church of the Holy Martyr Julian, in which Bishop Nonnus was preaching, she stopped in and heard a sermon on the Dread Judgment and the punishment of sinners. Those words so shook her and changed her that she immediately felt revulsion for herself, acquired true fear of God, repented of all her sins and fell down before St. Nonnus with the plea that he baptize her: "Have mercy on me, a sinner, holy Father. Baptize me and teach me repentance--I am a sea of iniquity, an abyss of destruction, a net and weapon of the devil." Thus this penitent begged the hierarch of Christ with tears, and he baptized her. At her baptism, Blessed Romana, the deaconess of the church, was her godmother. Romana, as her spiritual mother, grounded her well in the Christian Faith. But Pelagia was not satisfied with baptism alone. She was keenly aware of the multitude of her sins and, pricked by her conscience, decided on a great ascetic labor. She left her enormous, sinfully gained wealth to the poor, and secretly went to Jerusalem as the monk Pelagius. There, she shut herself up in a cell on the Mount of Olives, and began the difficult ascesis of fasting, prayer and all-night vigils. After three years, St. Nonnus's deacon, James, visited her and found her still alive, but when he visited her again several days later, he found that she had reposed, and he honorably buried her body. St. Pelagia entered into rest in about the year 461 A.D. Thus, this formerly terrible sinner pleased God by her repentance and labor, was forgiven of her sins, and became sanctified. And her purified and enlightened soul was deemed worthy of the Kingdom of God.
! THE VENERABLE THAIS
Thais was a repentant sinner. She was an Egyptian by birth. Like St. Pelagia, Thais also spent her youth in unrestrained fornication. Thais was directed in this evil way of life by her shameless mother. But the merciful God, Who does not desire the death of a sinner, but salvation, found a way in His wondrous providence to save the sinner Thais. One of the disciples of St. Anthony the Great, Paphnutius the Sindonite, heard of Thais's sinful life, and the spiritual poison with which she was poisoning the souls of many men. He decided to save her, with God's help. Clothed in secular clothing, St. Paphnutius took one gold coin and went to the city. He found Thais and gave her the gold coin. Thais, thinking that this man gave her the gold coin for an impure act, took Paphnutius into her room. Then Paphnutius opened his blessed mouth and denounced Thais's sins and called her to repentance. Thais's soul and conscience were both awakened, and she burst into tears of profound, sincere repentance. Distributing all her goods to the poor, she entered a convent at the instruction of St. Paphnutius, and remained there for about three years, closed off in a cell, living only on bread and water. St. Paphnutius visited her before her death, and brought her out of her cell against her will. She soon fell ill, and after a brief illness gave up her purified and sanctified soul to God. St. Paul the Simple, another disciple of St. Anthony, saw in a vision a most beautiful habitation in Paradise, prepared by God for St. Thais the penitent. This holy soul entered into rest in the year 340 A.D.
! THE HOLY MARTYR PELAGIA
Pelagia was a maiden from an eminent family in Antioch. During the reign of Emperor Numerian, the governor of Antioch sent soldiers to bring Pelagia to trial as a known Christian. The soldiers surrounded the house and called the holy maiden to come to the door. She greeted them, and when she heard that they were taking her before the judge, she pretended to be happy, and told the soldiers to wait for a moment while she went back into the house to change clothes. Then she climbed to the roof of the house, raised her hands to heaven and prayed to God for a long time that He receive her soul and not permit her virginal purity be defiled. God received her soul, and her body fell dead before the soldiers. St. John Chrysostom wrote: "Her death came about not by natural causes but rather by the command of God." And he continues: "Thus, this virginal body, more pure than any gold, lay on the ground; angels surrounded it, archangels honored it and Christ Himself was beside her." //)
--------------------
//) In the Slavonic Prologue, the following case is recorded about an unrepentant sinner. A certain Deacon Raphael became gravely ill. This was reported to St. Epiphanius, who loved Raphael, and the elder immediately came. Recognizing his spiritual father, Raphael began to bitterly weep and wail. Epiphanius also began to weep and asked the deacon: "Why are you sorrowing?" The deacon replied: "Woe is me! The devil has seized all of my deeds and the angels of God have withdrawn from me!" After that he began to bleat like a goat and to bark like a dog, and gave up his soul. St. Epiphanius said that this was because of some grave, unconfessed and unrepented sin.
! HYMN OF PRAISE
!
! THE VENERABLE PELAGIA
Pelagia the sinner repented,
And with knowledge of the true Faith, illumined her soul.
The world beckoned her, the world enticed her, but she hearkened not.
Her conscience was awakened, her soul began to shine.
How much effort she applied, how many struggles
She endured, wrestling with her sinful body--
Itself like a decaying apple.
So much effort, so much suffering she invested,
Until she deified her unhappy soul through faith.
In the heavens, God's sun shone,
But Pelagia's soul shone more.
Repentance--God has left us repentance.
By repentance, Pelagia was glorified.
! REFLECTION
Oh, if only we would invest as much effort in our souls as we invest in our bodies! Oh, if only we could become as desirous of adorning ourselves with virtue before God and His glorious angels, as we do with the vain, transitory, external displays of appearances! At first, both Pelagia and Thais were only aware of their bodies, while their souls were slaves bound in the prison of the body. Both were adorned with nothing but vanity: clothed in vanity, arrayed with vanity, surrounded by vanity, and flattered by vanity. But what a sudden change! What a divine turn of events in their lives! More wondrous than if a wild apple were to be grafted and begin to bring forth sweet fruits; or if a turgid, fetid swamp were suddenly to become clear, pure potable water. When Bishop Nonnus, in the company of other bishops, first saw the sinner Pelagia in her outward splendor--clothed in the most expensive garments, adorned and bedecked with rings, necklaces and baubles, perfumed, and surrounded by slaves--Bishop Nonnus began to weep, and said to his companions: "In truth, I have learned much from this woman. The Lord will set her before His Dread Judgment and will rebuke us through her. How many hours does this woman spend in her room bathing herself, clothing herself, adorning herself, and looking at herself in the mirror--and for what? Only to appear more beautiful to men. And we, who have the immortal Bridegroom in heaven, do not strive to adorn our souls with repentance; we do not hasten to bathe them with the tears of repentance and clothe them in the beauty of the virtues, that they might appear more beautiful before the eyes of God!"
! CONTEMPLATION
Contemplate the unrighteousness of King Ahab, and God's punishment of him through the Prophet Elias (I Kings 16, 17):
# How Ahab gave himself up totally to idolatry, and did that which is evil in the sight of the Lord;
# How the Prophet Elias shut the heavens by his prayer, and there was no rain for three years.
! HOMILY
! on how the weapons of the enemy will vanish in the end
O thou enemy, thy destructions are come to a perpetual end, even as the cities which thou hast destroyed; thy memorial is perished with a roar (Psalm 9:6).
The enemy of the human race, the murderer of men from the very beginning, has used every weapon and intrigue against man. He thinks up new weapons and new intrigues day and night, in order to destroy someone //as a roaring lion, … seeking whom he may devour//(I Peter 5:8). He hides like a poisonous snake and awaits his prey; he stretches his webs everywhere, like a spider, with the sole purpose of ensnaring some human soul and entrapping it in his foul kingdom. Pagan peoples were his cities. Until the coming of Christ, he ruled untroubled and absolutely in them. When they served idols, they served him; the practices of soothsaying and fortune-telling served him; he protected, directed and enhanced men's unbridled licentiousness; human sacrifice, fiery passions, discord, war, evildoings of all descriptions--this was all pleasure for him. But in the end, no weapons remained in him; his "cities" were destroyed and his //memorial is perished with a roar//. This "end" of which the prophet speaks is the coming of Jesus Christ the Lord into the world. The Lord manifested His power over the devil when He overcame his temptations on the mountain. He manifested His authority in driving demons out of men, commanding them to go this way or that; He manifested His invincible lordship over sin and death by His suffering and Resurrection. And, what is perhaps most important, He harrowed hell and scattered the demonic power.
He did not desire to utterly destroy the demons, but to disperse them and smash their weapons; He smashed them and scattered them as He later did the Jews, but more terribly than He did the Jews. He freed the people from their domination; and even more importantly, He gave men authority over the demons, such that they can drive the demons out by the power of His name. Do you see how the Lord linked His victory over the demons with His mercy toward men? He so weakened and broke them, He so confused and dispersed them, that He placed them under the authority of men. Even so, the Lord did not grant authority over demons to all men, but only to those who believe in Him and who follow His commandments. He gave them authority, and He also gave them a weapon. That weapon is the Cross.
O Lord our God, our Savior from the dominion of the devil, help us also to do that "least part" that Thou hast left us to do.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE JAMES
! James, the son of Alphaeus, was one of the Twelve Apostles. He was the blood-brother of the Apostle and Evangelist Matthew. He was a witness of the true words and miracles of our Lord and Savior Jesus Christ, and a witness of His suffering, Resurrection and Ascension. After the descent of the Holy Spirit at Pentecost, the lot fell to James to preach the Gospel of Christ in Eleutheropolis and the surrounding areas, and then in Egypt, where he suffered for his Savior. With great power in word and in deed, James disseminated the saving news of the incarnate Word of God, destroying idolatry, driving demons out of men, and healing every infirmity and disease in the name of the Lord Jesus Christ. His labor and zeal were crowned with great success. Many pagans came to believe in Christ, churches were built and organized, and priests and bishops were ordained. James suffered in the Egyptian town of Ostracina, being crucified by the pagans. Thus, this great and wonderful apostle of Christ took up his abode in the Heavenly Kingdom, to reign eternally with the King of Glory.
! THE VENERABLE ANDRONICUS AND HIS WIFE ATHANASIA
Andronicus was a citizen of Antioch during the reign of Theodosius the Great. Andronicus was a goldsmith by trade. He and his wife were very devout, continually striving to follow the way of the Lord. He gave a third of his income to the poor, another third to the church, and supported his family with the last third. After two children were born to them, they agreed to live as brother and sister. However, according to God's unfathomable providence, both of their children died on the same day, and they were in great sorrow. Then the holy martyr Julian appeared to Athanasia at the children's grave, and comforted her with the tidings that her children were in the Kingdom of God, and were better off there than with their parents on earth. Andronicus and Athanasia left everything and went to Egypt and received the monastic tonsure--St. Andronicus with the elder Daniel at Scetis; and Athanasia in the convent in Tabennisi. Pleasing God by their long years of asceticism, they at last went to the Eternal Kingdom of Christ. St. Athanasia reposed first, and eight days later, St. Andronicus.
! THE RIGHTEOUS ABRAHAM AND LOT
Their lives can be read in the Book of Genesis.
! SAINT DEMETRIUS, PATRIARCH OF ALEXANDRIA
Demetrius was the eleventh Bishop of Alexandria after St. Mark the Evangelist. He governed his flock long and wisely, from 189 to 231 A.D. During this time, he received a request from India and sent St. Pantaenus, the director of the famous catechetical school in Alexandria, to India to preach the Gospel. It was in India that Pantaenus found the Gospel written by St. Matthew in Aramaic.
! SAINT STEFAN, DESPOT OF SERBIA
Stefan was the son of the Despot George and Queen Irene. He and his sister Mara lived at the court of Sultan Murat II for a time. He was blinded at Jedrene together with his brother Grgur. He received authority as Despot over Serbia in 1458 A.D. Soon after that, he had to flee his country to Albania where he married Angelina, the daughter of Skenderbeg. Blind and unfortunate but always devoted to God, Stefan entered into rest in Italy in the year 1468 A.D. His relics repose in the Monastery of Krušedol, founded by his son St. Maxim.
! HYMN OF PRAISE
!
! THE HOLY APOSTLE JAMES
Sent by the Lord, and obedient to Him,
The all-glorious Apostle James labored,
Sowing the Gospel seed everywhere,
So that from it would arise men faithful to Christ.
Throughout Syria and Egypt
He diligently poured forth the heavenly honey,
The sweet, healing words of Christ,
And fed hungry men with this wondrous golden food.
Wherever James traveled, he left a wonder:
Spiritual vessels full and overflowing with honey,
Inexhaustible, life-creating honey:
Holy churches, full of pure, sweet richness.
In them the eternal Creator is endlessly praised,
As are the wondrous works of the Son of God.
Christ is that honey given to the faithful,
A life-creating manna of bread and wine.
James completed his journey with a mark of red--
His martyric blood, which poured down from the cross--
And he gained a wreath from Christ, in heaven,
As have the other of God's apostles.
! REFLECTION
How God both punishes and shows mercy is clearly shown to us from the lives of the last of the Serbian Despots during the Turkish conquest of the Serbian lands. The Turks did not come to the Balkans by their own power to enslave Christian peoples (Greeks, Bulgarians and Serbs) but by God's permission, in the same way that Nebuchadnezzar conquered Jerusalem and took the Hebrews into slavery, not by his own power but rather by God's permission. Because of the sins of their princes and nobles, the Serbian people suffered bitterly; and the princes and nobles themselves suffered even more bitterly. Despot George died as an exile; two of his sons, Grgur and Stefan, were blinded by the Turks; his daughter was forced to become the wife of a sultan; his middle son rose up against his own mother, Irene, and brother Grgur, and seized the shaky throne of Smederevo by force, only to die soon thereafter. As soon as he became despot, the blind Stefan had to flee to Albania, then to Italy where, as an exile and an unfortunate, he reposed. All of this is God's punishment. Yet where is His mercy? God glorified both Stefan and his wife Angelina and their children Maxim and John. After eight years of lying in the grave, Stefan's body was exhumed and found to be intact, and exuded a sweet, heavenly fragrance. Many miracles were manifested from his holy relics. God graced his wife and his children in the same manner, glorifying and sanctifying them.
! CONTEMPLATION
Contemplate the wondrous bringing down of fire from heaven by the Prophet Elias (I Kings 18):
# How St. Elias prayed to God on Mount Carmel in the presence of King Ahab and the idolatrous priests;
# How the fire fell from heaven and consumed the sacrifice that Elias offered to God.
! HOMILY
! on how only the foolish deny God
The fool hath said in his heart, There is no God. They are corrupt. They have done abominable works (Psalm 14:1).
The mind is the rudder of man's entire being. It counsels, persuades and guides. Both the soul and the body act according to the mind. If the mind is upright before God, then the whole man is upright. If the mind is iniquitous before God, the whole man is iniquitous. Even if someone merely thinks, "There is no God," the thought immediately manifests itself in his deeds. Evil thoughts come first and evil deeds inevitably follow. Do you see how well the inspired prophet knows the nature of man? First, he underlines the cause, then he cites the consequences. Evil deeds necessarily proceed from evil thoughts. That is why, brethren, you should not believe those who say: "I do not believe in God, but I do good deeds." First of all, he who does not believe in God does not know what good is, nor can he differentiate good from evil. By his disbelief, a man cuts himself off from the greatest Good and the Source of every good! Furthermore, let us carefully study this: you will see that all the deeds of the ungodly are corrupt and hateful. They are corrupt because they are evil, worthless and transitory; they are hateful, because they are contrary to the will of the Living God. The godless cannot distinguish good from evil, for only in the light of God's law can one determine precisely what is good and what is evil. However, it can also be that those who merely say they believe in God do corrupt and hateful deeds, acknowledging God with their lips but denying Him in deeds. It is good to confess God with your lips, but that is a long way from being enough! One must also acknowledge Him with the heart, and confirm one's faith by good deeds. Even so, it does happen that a man believes in his heart, and confesses with his lips, and still sins. This happens either from the weakness of the will or from the devil's arrows. Let such a one repent, and he will be forgiven immediately. Repentance is salvific even for the godless; how much more so for a believer? As long as a man is on earth, he has a chance for repentance. But who can be certain that his time will extend beyond this night? Hence, delaying repentance is utter foolishness.
O most gracious Lord Jesus Christ, Son of God; help us to repent as Thou dost help us to breathe.
To Thee be glory and praise forever. Amen.
! THE BEGINNING OF THE CHURCH YEAR, OR THE BEGINNING OF THE INDICTION
The First Ecumenical Council [Nicaea, 325] decreed that the Church year should begin on September # The month of September was, for the Hebrews, the beginning of the civil year (Exodus 23:16), the month of gathering the harvest and of the offering of thanks to God. It was on this feast that the Lord Jesus entered the synagogue in Nazareth (Luke 4:16-21), opened the book of the Prophet Isaiah and read the words: //The Spirit of the Lord God is upon Me; because the Lord hath anointed Me to preach good tidings unto the meek; He hath sent Me to bind up the brokenhearted, to proclaim liberty to the captives, and the opening of the prison to them that are bound; to proclaim the acceptable year of the Lord, and the day of vengeance of our God; to comfort all that mourn// (Isaiah 61:1-2). The month of September is also important in the history of Christianity, because Emperor Constantine the Great was victorious over Maxentius, the enemy of the Christian Faith, in September. Following this victory, Constantine granted freedom of confession to the Christian Faith throughout the Roman Empire. For a long time, the civil year in the Christian world followed the Church year, with its beginning on September # The civil year was later changed, and its beginning transferred to January # This occurred first in Western Europe, and later in Russia, under Peter the Great.
! THE VENERABLE SIMEON THE STYLITE
He was born in Syria of peasant parents. At the age of eighteen, he left home and was tonsured a monk. He undertook the most difficult ascetic practices, and sometimes undertook a strict fast for forty days. He eventually took upon himself a form of asceticism that was previously unknown. He stood day and night on a pillar, in unceasing prayer. At first, his pillar was six cubits high; he later raised it to twelve cubits, then to twenty-two cubits, then to thirty-six cubits, and finally to forty cubits high. //) On two occasions his mother Martha came to see him, but he refused to receive her, saying from atop the pillar: "Do not disturb me now, my mother. If we become worthy, then we'll see each other in the next world.'' St. Simeon endured countless assaults from demons, but he conquered them all by prayer to God. The saint worked many great miracles, healing by word and prayer many who were afflicted. People from all over gathered around his pillar--the rich and the poor, kings and slaves. Simeon helped everyone: healing some of infirmities, comforting those in need, instructing others, and reproaching some who held heretical beliefs. Thus, he turned Empress Eudocia from the Eutychian heresy and brought her back to Orthodoxy. He lived the ascetic life during the reigns of the Emperors Theodosius the Younger, Marcian and Leo the Great. Simeon, the first great stylite in Christianity and a great miracle-worker, lived to be 103 years old. He reposed in the Lord on September 1, 459. His relics were translated to Antioch, to the church dedicated to his name.
------------------------
//) A cubit equals the length of an adult forearm, from the tip of the middle finger to the elbow, or approximately twenty inches. --Trans.
! SAINT JOSHUA, THE SON OF NUN
Joshua was the leader of the Hebrew people after the death of Moses. Of several hundred thousand Jews who came out of Egypt, only he and Caleb entered the Promised Land. Joshua lived to be 110 years old, and died approximately 1440 years before the Nativity of Christ. (Read of his faithfulness to God, his works and his miracles in the Book of Joshua.)
! HYMN OF PRAISE
!
! SAINT SIMEON THE STYLITE
Simeon the Stylite, the first of the pillar-dwellers,
An illuminated elder, with the radiance of an immortal,
Bound himself to the pillar as a willing sacrifice;
He was fully alive to heaven, and dead to the earth.
Fasting and prayer and all-night vigils--
By this hard path he sought salvation.
Early one morning, his mother came by:
"O Son, come down and let your mother see you!''
Thus she spoke, but Simeon was silent.
The mother repeated her plea again and again….
Simeon at last replied to his mother:
"I am in the service of the Heavenly King.
This life is a struggle and a preparation.
There is no time for empty conversation here.
But go, Mother, and choose the pure path--
Take care for your soul and live according to Christ!
After the present struggle is the next world;
If Christ finds us worthy,
You will see your son there, Mother,
And your son will delight in his mother's face.''
! REFLECTION
We should use all that is necessary in this world for the cultivation of our souls, for when death separates us from this world we will take nothing to the other world except our souls, in whatever state they have been formed here. When he was eighteen, St. Simeon the Stylite was so concerned about the salvation of his soul that one day he fell face down on the earth and prayed to God that He would show him the path of salvation. And lying thus in prayer for a long time, he had a vision that he was digging a trench for a foundation and, exhausted from digging, stopped to catch his breath. A voice spoke to him, saying: "Dig deeper!'' Then he began, with greater labor and effort, to dig yet deeper. Again he stopped to catch his breath. But again he heard the voice: "Dig deeper!'' He again began to dig, with even greater labor and effort. At this the voice spoke to him again: "Stop, it is sufficient! Now build what you wish to build; for without labor, you will succeed in nothing.'' Those who labor little, and build the life of their soul on sensual shallowness, build on sand, which cannot uphold anything, even in this transitory world--and even more so in eternity.
! CONTEMPLATION
Contemplate the lawlessness of David (II Samuel 11):
# How David committed adultery with Bathsheba, the wife of Uriah, while Uriah was away at war;
# How David arranged the death of Uriah;
# How God became angered with David.
! HOMILY
! on the Word, the Son of God
In the beginning was the Word (John 1:1).
The Logos--the rational, intelligent Word--existed in the beginning. This pertains to the Divine Nature of our Lord Jesus Christ. Brethren, by saying, //In the beginning//, do we think that the Word of God has a beginning? Or that there was a certain date in time when the Son of God was born of God the Father? In no way! For the birth of the Son of God can have neither a date nor a beginning, since time is a condition of this transient world, and it does not affect the eternal God, and therefore does not affect anything at all that is of God. Can the sun remain the sun, if the sunlight is separated from it? Will a man remain a man, if his mind is taken away? Would honey still be honey, if its sweetness is separated from it? It cannot. Even less can one conceive of God as separate from His Logos, from His rational Word, from His Intelligence, from His Wisdom--the eternal Father separate from His co-eternal Son.
No, brethren, the words are not about the beginning of the Son of God from God the Father, but rather about the beginning of the history of the created world and the salvation of mankind. This beginning is in the Word of God, in the Son of God. He began both the creation of the world and the salvation of the world. Whoever would speak of the creation of the visible or invisible worlds, or of the salvation of mankind, must begin with the Beginning. And that Beginning is the Word of God, the Wisdom of God, the Son of God. For example, if someone were telling a story about boating on a lake, he might begin it like this: "In the beginning there was a lake, and on it sailed a white boat….'' No reasonable person would interpret the words, "In the beginning there was a lake…'' to mean that the lake came into existence on the same day that the boat sailed on it. Thus, no rational man could take the words of the Evangelist, //In the beginning was the Word…,// as though the Word of God came forth from God at the same moment that the world was created! Just as the lake existed for thousands of years before the boat sailed on it, so the Word of God existed for a whole eternity before the beginning of creation.
O Son of God, co-eternal with the Father and the Spirit, enlighten us and save us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS MENODORA, METRODORA AND NYMPHODORA
They were sisters by birth and grew up somewhere in Asian Bithynia. Reared in the spirit of Christianity, they withdrew from the city to the wilderness, wishing to elevate their minds to God and to free themselves of everything in this deceitful world, and to live this life in purity and virginity as true brides of Christ. They dedicated themselves to great labor, fasting and prayer, until God adorned them with the gift of miracle-working. When people began to bring the sick to them for healing, they became well known against their will. A certain governor, Fronton, heard of them and brought them to trial. Upon seeing them, the governor was amazed at the beauty of their faces. For, even though they were great fasters and their bodies were withered, their faces were radiant, illumined by inward peace and the grace of God. At first, the governor flattered them and promised to send them to the emperor, who would give them in marriage to his noblemen. But when he was convinced that all of his flattery and promises had no effect on these brides of Christ, he ordered that Menodora be tortured first, and her sisters thrown into prison. After cruel tortures, the governor cried out to Menodora, who was wounded and bloody: "Offer sacrifice to the gods!'' To this the holy martyr replied: "Do you not see that I am offering my entire self as a sacrifice to my God?'' When St. Menodora was slain by the tortures, the governor then brought out the remaining two sisters, and stood them by the dead body of Menodora. Pointing to the body of their sister, he counseled them to deny Christ. Since they remained steadfast, he slew them by harsh tortures. Just then, a thunderbolt struck from heaven, and killed the soulless Fronton and his servants. Christians honorably buried the bodies of these holy martyrs of God. They suffered between the years of 305 and 311, during the reign of Maximian Galerius, and found rest in the Kingdom of Christ.
! SAINT PULCHERIA THE EMPRESS
She was the daughter of Emperor Arcadius. She vowed to remain a virgin for life, and, as a sign of this vow, she had an altar of gold and precious stones built in the cathedral church. She reigned with her brother, Theodosius the Younger. Pulcheria was a great zealot for the Orthodox Faith. At her insistence, the Third Ecumenical Council, which condemned the Nestorian heresy, was convened in Ephesus. She built the famous Church of the Holy Theotokos of Blachernae in Constantinople. Following the death of Theodosius, she married Marcian, the emperor-elect, but lived with him as with a brother. She discovered the relics of the Forty Martyrs of Sebaste. She reposed in the Lord on September 10, 453, at the age of fifty-five.
! SAINTS APOLLOS, LUCIUS AND CLEMENT
Apostles Apollos, Lucius, and Clement were numbered among the Seventy. Apollos (Acts 18:24-25) was bishop in Smyrna before St. Polycarp. St. Lucius (Romans 16:21) was bishop in Laodicea. St. Clement was bishop in Sardis.
! THE THREE HOLY WOMEN
A noblewoman from Constantinople, with her two servants, despised the vanity of the world and withdrew to solitude where, after eleven years of asceticism, they rested in the Lord.
! HYMN OF PRAISE
! THE HOLY MARTYRS MENODORA, METRODORA AND NYMPHODORA
Three virgins, sisters by birth,
Three glorious martyrs of Christ,
Glorified Christ before Fronton.
By their fearlessness, they frightened the governor;
And Governor Fronton, poor in wisdom,
Thought, as many others did,
That by force, fire and gallows
He would quickly change their Christian ways.
The governor thought: "All women are alike;
They will quickly change their faith!"
But the governor had deceived himself bitterly,
And was shamed by these Christian women.
Christ discriminates not between women and men--
His gives strength to all who serve Him:
The miraculous power of faith and hope,
The power of suffering, without bitter lamenting.
This power outlived the empire,
And was employed for thousands of years--
Employed but remained whole--
Everything is as weak as clay before it.
Menodora, and with her Metrodora,
And the youngest sister, Nymphodora,
Conquered the governor by God's might.
They gave their lives and glorified Christ;
They gave their lives, and remained alive.
! REFLECTION
Examples of courage and patience displayed by martyred Christian women--thousands upon thousands of them--have shone with radiant glory on all the pages of the history of the Christian Church. However, as amazing as these examples of voluntary martyrs are, the examples of ascetics, known and unknown, are not a bit less amazing, for asceticism is nothing less than prolonged martyrdom. Paul, the Bishop of Monemvasia, has given to posterity an instructive example of women ascetics. While he was still a layman and a collector of the royal tax, it happened that he stayed in a certain monastery. Seeing ravens landing on the fruit trees, breaking off branches with fruit and carrying them away, Paul wondered at this, and followed them with the monks to see where they were taking the fruit. Going thus, they came upon an impassable forest. The ravens landed at the bottom, deposited the broken fruit branches, and quickly returned. Paul and the monks investigated, and discovered a cave in which three women ascetics were living. The oldest one related their life story to them: She was of noble birth, from Constantinople. When her husband died, another nobleman wanted to take her as his wife by force. However, she decided that after the death of her first husband she would spend the remainder of her life in chastity. Therefore she distributed her wealth to the poor and fled to this deserted place with two of her maidservants. They lived there for eleven years in fasting and prayer, seeing no one and seen by no one but God. God the Provider arranged for the birds to bring them fruit for nourishment. Then they asked the abbot to bring them Holy Communion. Three days after they had received Holy Communion, all three of these holy women reposed, and the monks honorably buried them.
! CONTEMPLATION
Contemplate the riches and glory of Solomon (I Kings 5:5-10):
# How Solomon built a majestic Temple to God and then built cities and ships;
# How the neighboring rulers were amazed at Solomon; how Hiram served him and the Queen of Sheba visited him;
# How Solomon, in all his glory, was not arrayed as gloriously as a lily of the field.
! HOMILY
! on how sinful men prefer to receive an evildoer rather than a doer of good
I am come in My Father's name, and ye receive Me not: if another shall come in his own name, him ye will receive (John 5:43).
Who is this "other'' who will come in his own name, and whom sinful men will prefer to receive rather than Christ the Lord? It is he who does not carry the cross and does not walk the narrow path; he who is not a lover of man but rather a hater of man; he who does not struggle against sin but rather struggles for sin; he who loves impurity and spreads impurity; he who is a soldier of eternal death and not of eternal life; he who flatters the godless and loves every passion and vice: he is Antichrist. He will come in his own name and not in the name of God, and all those who did not receive Christ will receive him. He will be more dear to them, for he will embrace all their crooked and sinful paths. He will be more dear to them than Christ, for alongside the difficult path of Christ he will build a path smooth as ice, over which men will easily slide, not thinking about the abyss to which it leads them. The Lord Jesus Christ came in the name of the eternal salvation of men, eternal life, eternal truth and eternal justice. Antichrist will come in his own name, that is, in the name of eternal destruction, death, falsehood and injustice. When the Antichrist comes among his own, his own will gladly receive him. In fact, all those for whom Christ is difficult will gladly receive Antichrist, for he and his path will appear easy to them. Only when it is too late will the foolish see that they were deceived, but there will be no salvation for them. When they begin to slide into eternal night, into the jaws of the fetid serpent, then it will be too late; repentance will not be accepted and there will be no salvation. The foolish banquet of earthly sinners and Antichrist will be over quickly, in the blink of an eye, and the house of impure joy will turn into a hopeless prison of remorse and misery. Then it will be too late.
O man-loving Lord, the only friend of man, Thee only do we know and recognize. Thee, only Thee, do we receive as our Savior and salvation.
To Thee be glory and praise forever. Amen.
! THE VENERABLE THEODORA
Theodora was from Alexandria and the wife of a young man. Persuaded by a fortune-teller, she committed adultery with another man and immediately felt the bitter pangs of conscience. She cut her hair, dressed in men's clothing and entered the Monastery of Octodecatos, under the male name of Theodore. Her labor, fasting, vigilance, humbleness and tearful repentance amazed the entire brotherhood. When a promiscuous young woman slandered her, saying that Theodore had made her pregnant, Theodora did not want to justify herself, but considered this slander as a punishment from God for her earlier sin. Banished from the monastery, she spent seven years living in the forest and wilderness and, in addition, caring for the child of that promiscuous girl. She overcame all diabolical temptations: she refused to worship Satan, refused to accept food from the hands of a soldier, and refused to heed the pleas of her husband to return to him--for all of this was only a diabolical illusion, and as soon as Theodora made the sign of the Cross everything vanished as smoke. After seven years, the abbot received her back into the monastery, where she lived for two more years, and reposed in the Lord. Only then did the monks learn that she was a woman; an angel appeared to the abbot and explained everything to him. Her husband came to the burial, and then remained in the cell of his former wife until his repose. St. Theodora possessed much grace from God: she tamed wild beasts, healed infirmities, and brought forth water from a dry well. Thus, God glorified a true penitent, who with heroic patience repented nine years for just one sin. She reposed in the year 490 A.D.
! SAINT PAPHNUTIUS THE CONFESSOR
Paphnutius was the Bishop of Taiski in the Egyptian Thebaid. He suffered greatly for the Orthodox Faith. The heretics gouged out one of his eyes and broke his left leg. He participated in the First Ecumenical Council [Nicaea, 325 A.D.], refuting the heresy of Arius with great vigor. Emperor Constantine greatly respected him, and often kissed him on his missing eye, gouged out for the truth of Orthodoxy. He stood decisively against the western representatives at the Council who proposed that secular priests be completely forbidden marriage. Paphnutius was chaste his entire life.
! THE VENERABLE EUPHROSYNUS THE COOK
Euphrosynus was a simple man, but a man of God. He served as the cook in an Amorean monastery in the ninth century. One night, the spiritual father of this monastery saw himself in Paradise, and saw Euphrosynus there as well. Euphrosynus picked and gave him three apples from Paradise. When the spiritual father awoke, he saw three unusually beautiful and fragrant apples by his pillow. He quickly found Euphrosynus and asked him: "Where were you last night, brother?" "I was where you were, father," the blessed God-pleaser replied. The spiritual father then revealed the entire incident to the monks, and all recognized the sanctity and godliness of Euphrosynus. But Euphrosynus, fearing the praise of men, immediately fled the monastery and hid in the wilderness, where he spent the remainder of his life.
! THE HOLY MARTYR IA
Ia was denounced by idolatrous priests and suffered for the Lord in Persia during the reign of Sapor II, in 363 A.D. According to tradition, the sun became dark at the time of her death, and all the air was filled with a wondrous fragrance. She is glorified by the Lord forever.
! HOLY MARTYRS DIODORUS, DIDYMUS AND DIOMEDES
They were flogged for the sake of Christ in Laodicea, and gave their souls into the hands of their Lord.
! HYMN OF PRAISE
! THE VENERABLE THEODORA
Wretched Theodora was tangled in sin;
Glorious Theodora was forgiven her sin.
One sin she ransomed with a hundred virtues
And the eternal mercy of the Son of God.
She thrust from herself diabolical suggestions,
And meekly endured the slanders of men.
Her mind immersed in her Lord,
Her thoughts were freed from earthly dust.
To the end, she submitted to God's will,
And thus was worthy of God's Paradise.
St. Theodora, citizen of Paradise,
Now help us, O God-pleaser!
That we sinners also be delivered from sin
And live with you as inhabitants of Paradise.
You were given power, before and after death,
To destroy all the snares of the enemy.
Because of your love, God gave you power,
And even the demons fear your power.
Now you worship Christ with all the saints,
And protect us from bitter attacks.
! REFLECTION
One must not hinder anyone on the path of perfect devotion and service to God. Many saintly women who wanted to flee from marriage and devote themselves to God were pursued and hindered in this by their husbands. These women were usually victorious in the end, remaining steadfast in their intention, and often awakened the consciences of their husbands by their example, and directed them on the path of salvation. St. Theodora, dressed in men's clothing, had to carefully hide from her husband, and she retreated to a men's monastery. However, there were prudent husbands who approved their wives' intentions, permitting their withdrawal from the world to devote their lives completely to God. King Frederick was betrothed to a Czech maiden, Agnes. But she never agreed to enter into marriage, and broke her betrothal, fleeing to a monastery. Then the prudent king said: "Had she left me for a mortal man, I would have sought revenge; but I must not find myself insulted that she chose the Heavenly King in place of me."
! CONTEMPLATION
Contemplate Solomon's terrible turning away from God, and God's punishment (I Kings 11):
# How, in his old age, Solomon was captivated by many women, turned away from God, and began to serve idols;
# How God became enraged and gave the kingdom over to Solomon's servant;
# How Solomon turned away from God, even though God had appeared to him twice, and even though he had endowed him with wisdom and great glory;
# How even the greatest man can fall, if he does not watch over himself with the fear of God.
! HOMILY
! on Christ as the Bread of life
I am the Bread of life (John 6:35).
Who can give life, my brethren, other than the One who created it? Who, in truth, can the Bread of life be, other than our Creator? He created, He sustains, He nourishes and He gives life. If wheat nourishes the body, Christ nourishes the soul. If our body is sustained by earthly bread, our soul is nourished and lives by Christ. If our souls are nourished by some other food, and not by Christ, our souls decay and die, and do not live. //Labor not for the meat which perisheth, but for that meat which endureth unto everlasting life//(John 6:27). So says the Lord in a previous statement. First, He examines the hunger of men and then offers bread to satisfy it. Indeed, He offers the hunger, and then bread, for men are confused with regard to hunger. They are hungry for something but do not know what. Even when satisfied with earthly food and even when overfilled, they feel a certain insatiable hunger. Although they see that the whole earth, and all the bread on earth, cannot satisfy this mysterious hunger, they rush after earthly food; they vie for the earth and only for the earth. The true hunger of men is the hunger for heaven, for eternal life, for God. The Lord Jesus first emphasizes that hunger, and then prepares the meal for its satisfaction. He Himself is that meal: //I am the Bread of life: he that cometh to Me shall never hunger// (John 6:35). They shall be satisfied, they shall rejoice, they shall be enlivened, they shall know God, and they shall know themselves. O my brethren, He will raise them from the dead! For constant feeding on the food //which perishes//, without immortal, spiritual food, gradually dulls the soul and finally renders it completely dead. Dead of what? Of hunger. The body is of the earth and is satisfied with earthly food, but the soul is of the breath of the Source of life Himself, and seeks food and drink from its one and only Source.
O Lord Jesus, Bread of eternal life, of true and imperishable life, sweetest Bread--nourish us with Thyself.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR (PRIESTLY-MARTYR) AUTONOMUS
During Diocletian's persecution, Autonomus left Italy for Asian Bithynia, for a place called Soreoi. There, he converted many to Christianity, and built a church for them dedicated to the holy Archangel Michael. Autonomus lived in the home of a devout Christian, Cornelius, whom he first ordained as a presbyter, and then consecrated to the episcopacy. Not far from Soreoi there was a place called Limnae, inhabited entirely by pagans. St. Autonomus went to this place and soon enlightened many with the Gospel of Christ. This embittered the pagans, and one day they rushed into the Church of the Holy Archangel Michael in Soreoi during the divine service and slew Autonomus in the sanctuary, and killed many other Christians in the church. During the reign of the Emperor Constantine, Severian, a royal nobleman, built a church over the tomb of St. Autonomus. Two hundred years after his death, St. Autonomus appeared to a soldier named John. John exhumed the relics of the saint and found them to be completely incorrupt, and many who were sick received healing from Autonomus's relics. Thus, God glorifies the one who glorified Him while living in the flesh.
! THE HIEROMARTYR (PRIESTLY-MARTYR) CORONATUS, BISHOP OF ICONIUM
Coronatus was born in Nicomedia, in the village of Salate. He was already quite old when the persecution under Decius and Valerian began. Perinius, a torturer of Christians, came to Nicomedia and began a search for Christians. Many Christians left the city and hid, but their aged bishop did not want to leave. Instead, he presented himself to Perinius and declared himself to be a Christian. The torturer bound him completely, and ordered that he be dragged through the town until much blood flowed. Then, under the sword, Coronatus gave his holy soul to God.
! THE HOLY MARTYR JULIAN WITH FORTY COMPANIONS
They all suffered in about the year 300. First they were tortured, and then beheaded. Before his death, Julian prayed to God in this manner: "To those who take of my dust, grant to them, O Lord, forgiveness of sins and the subduing of their passions; let no ravaging birds, or grasshoppers, or caterpillars, or any other death-carrying destruction attack their fields. And receive my spirit in peace."
! THE VENERABLE DANIEL OF THASOS
Daniel was an ascetic, the founder of a great monastery and a contemporary of St. Ioannicius the Great. Daniel was present when Ioannicius visited the island of Thasos. The people there implored the celebrated Ioannicius to free them from snakes. The saint prayed to God and the snakes, in large number, rushed into the sea and drowned.
! THE HOLY MARTYRS MACEDONIUS, TATIANUS AND THEODULUS
They all suffered for Christ the Lord at Myropolis in Phrygia, during the reign of Julian the Apostate. They were harshly tortured for destroying the statue of an idol, and were burned on an iron grid until they gave up their souls to God. While burning over the fire, these brave men cried out mockingly to their torturer, saying: "Wouldn't you like to try our meat to see if it is well cooked?" And also, like the glorious Archdeacon Lawrence, they said: "Turn us over onto the other side, for this side is done!" Witnessing the holy martyrs on the fire, the torturer was more perplexed and frightened than they were.
! HYMN OF PRAISE
! THE HIEROMARTYR AUTONOMUS
Autonomus, most glorious, feared no torture,
But, because of his mission, was not bound to stay.
Fleeing the wrath of cruel torturers
He sowed the seed of the Holy Gospel,
Baptizing in the name of Christ,
And working miracles in His name.
But when he completed his task, having pleased God,
When his hour tolled to enter eternity,
The persecutors raged into the temple
And slew the saint at the holy altar
While the saint was offering the Bloodless Sacrifice--
The Bloodless and the bloody, commingled!
O Saint Autonomus, servant of God--
To God's servant, even torture is befitting--
Save us from fear in the face of tortures,
And be the helper of our salvation,
That we not fear to endure all for the Cross,
To die gladly for Christ.
O wondrous healer of every disease,
Preserve us from demonic deceptions,
That we immerse our minds in the Most-high God,
That we become worthy of that eternal life
In which you now reign like a king,
And joyfully exult with the holy angels.
! REFLECTION
What kind of bond should there be between man and God? An unbreakable and continual bond. "Adhere to God as a son adheres to his father," counseled St. Anthony. And St. Alonius said: "If a man is not set in his heart that there is no one else in the world but himself and God, he cannot find peace in his soul." The one God is enough, and more than enough, for all that the heart of man can desire. Without a single protest, Blessed Theodora received a stranger's child, given to her by slanderers, as if it were her own. Theodora raised this child with love, and reared it in the fear of God. Before her death, this is how she counseled the child: "What is more necessary for man than God and His divine love? He is our refuge, He is our treasure, He is our food and drink, He is our raiment and shelter, He is our health and strength, He is our happiness and joy, He is our hope and our trust. Strive then, my son, to gain Him. If you succeed in gaining the One God, it will be sufficient for you; you will rejoice more in Him than if you had gained the entire world." In saying this, St. Theodora did not speak from a book or from someone else's words, but on the basis of her own personal experience. She lived for seven years, driven out and scorned by all men, and during that time she learned by experience that God was everything to her, and that the One God was sufficient for all that the heart of man desires.
! CONTEMPLATION
Contemplate the division of Solomon's kingdom (I Kings 11):
# How, because of Solomon's sins, the kingdom of Israel was divided;
# How Jeroboam, the king's servant, became king over ten tribes; and Rehoboam, the king's son, became king over two tribes;
# How, even today, it happens that the sins of the father bring down misfortune on the son; and the sins of the elders of the nation, on the people.
! HOMILY
! on how the soul must feed on Christ in order to live
He that eateth Me, even he shall live by Me (John 6:57).
Thus speaks Christ the Lord, the Life and Source of life. A tree feeds on the earth, air and light. If a tree does not feed on the earth, the air and the light, will it be able to grow and live? What does an infant at its mother's breast feed on, except its mother? If it does not feed on its mother, will it grow and live? So it is that our soul will not grow or live, if it does not feed on Christ, the Living and Immortal One. The words here are not about life in general, by which nature lives, nor about the stunted life by which pagans live, but rather about the special, divine and eternal life--a life full and joyful. Only Christ gives this life to men, and it comes only to those who feed on Christ. Each man is as great as the food he feeds on, and each man is as alive as the food he feeds on. The words here are not about bodily food, for only man's body--not man's soul--is fed by bodily food. Men differ both in physical growth and physical life, but these differences are totally insignificant. However, the difference in spiritual growth and life among men is enormous. While some men, by the growth of their souls, barely raise themselves above the earth, others raise themselves to the heavens. The difference between Herod and John the Baptist is no less than the difference between a king and an angel. While the former drags his body and soul through the earth and wickedly defends his throne on earth, the latter stands his body on a rock in the wilderness, and is raised in soul to the heavens among the angels.
O my brethren, let us lift up our souls to the heavens, where Christ the Lord sits on the throne of eternal glory, and let us feed and nourish our soul and heart with Him, the pure and almighty Life. Only then will we be made worthy to be His fellow heirs in the Kingdom of Heaven.
O Lord Jesus, our true God, our sweet food and our man-loving Nourisher; cast us not away from Thy divine bosom, for we are weak and helpless. Nourish us with Thyself, O our merciful Nourisher.
To Thee be glory and praise forever. Amen.
! THE CONSECRATION OF THE CHURCH OF THE RESURRECTION OF CHRIST
When the holy Empress Helena found the Cross of our Lord in Jerusalem, she stayed awhile in the Holy City, and built churches in Gethsemane and Bethlehem, and on the Mount of Olives, as well as other places prominent in the life and work of the Lord Jesus Christ. On Golgotha, where she found the Honorable Cross, she began the building of an enormous church. The church was designed to encompass the Place of the Skull, where the Lord was crucified, as well as the place where He was buried. The saintly empress wanted to include the place of His suffering and the place of His glory under the same roof. However, Helena reposed in the Lord before this majestic church was completed. By the time it was completed, Constantine was celebrating the thirtieth year of his reign. Thus, the consecration of the church and the emperor's jubilee were celebrated on the same day, September 13, 335 A.D. A local council of bishops was being held in Tyre at that time. These bishops, and many others, came to Jerusalem for the solemn consecration of the Church of the Resurrection of the Lord. It was then established that this day--a day of victory and triumph for the Church of Christ--be solemnly commemorated every year.
! THE HOLY HIEROMARTYR (PRIESTLY-MARTYR) CORNELIUS THE CENTURION
Cornelius was a Roman and an officer in Caesarea of Palestine. As the result of a heavenly revelation, the Apostle Peter baptized him (Acts 10:1). He was the first among the pagans to enter God's Church. Until then, some thought that the Church was only for the Jews and those who received the circumcision of the Jews. Having been baptized, Cornelius left everything and followed the apostle. Later, Peter consecrated him a bishop and sent him to the pagan town of Skep, where St. Cornelius endured much humiliation and torture for the sake of Christ. Even so, he destroyed the temple of Apollo there by the power of God, and baptized Prince Demetrius with 277 other pagans. Being forewarned by God of the day of his death, Cornelius summoned all the Christians together, counseled them, prayed to God for them, and peacefully presented himself to the Lord in honorable old age. In time, his grave site was neglected and forgotten, but the saint appeared to Silvanus the Bishop of Troas and revealed it to him, commanding that a church be built there. The bishop carried this out with the help of Eugenius, a wealthy citizen. Many miracles have been worked by the relics of St. Cornelius.
! THE HOLY MARTYRS MACROBIUS AND GORDIAN
They were from Paphlagonia. They began as imperial attendants, but when they declared themselves Christians, the emperor banished them to Scythia. There, they were thrown into a fire at a place called New Danube, in the year 320 A.D.
! THE HOLY FEMALE MARTYR KETEVAN
Ketevan was Queen of Kakheti [in Georgia]. She suffered as a Christian under Shah Abbas I, in the year 1624 A.D. By order of the Shah, a red-hot kettle was placed over her head. Her son Teimuraz, the King of Georgia, placed her relics beneath the altar of the church at Alaverdi in Georgia.
! THE VENERABLE HIEROTHEUS
Hierotheus was born in the Peloponnese in the village of Kalamata. He labored in asceticism in the Monastery of Iveron on the Holy Mountain. He was distinguished by great secular learning and by strict monastic asceticism. He strove to fulfill this rule of St. Arsenius: "In the course of twenty-four hours, one hour of sleep is sufficient for a monk." Hierotheus entered into rest on the island of Varos in the year 1745 A.D. His relics are miracle-working. Of these relics, his head is preserved in the Monastery of Iveron. Upon touching his holy relics in Constantinople, a blind woman received her sight.
! HYMN OF PRAISE
!
! THE HIEROMARTYR CORNELIUS THE CENTURION
Wondrous Cornelius, pious in feeling
But plainly pagan-minded,
Pleased God by giving much alms.
God the Most High sent him a mighty angel.
An angel greeted him, and an apostle baptized him,
And thus he was numbered among the faithful.
The first pagan who joined the Church
Confessed Christ with his entire household.
But, for him, baptism alone was not enough;
He became an apostle with the apostle of God.
To help others, and to save them,
Cornelius took upon himself a most trying labor.
He astonished men with mighty miracles,
Baptized the prince and hundreds of men.
Having known the sweetness of Christ he left his home,
And for sweet Christ he was glorified in torture.
For labor and torture in this life,
He now reaps his reward in the Kingdom of Christ.
Holy Cornelius, now help us
By your prayers before the Eternal Judge.
! REFLECTION
What happens to the persecutors of Christ's Church? Ask Saul, the persecutor of the Church, what happened to him. //It is hard for thee to kick against the pricks//(Acts 9:5), the Lord said to Saul; and Saul was baptized and became Paul. What happened to Herod, the first persecutor of Christians? What happened to Julian the Apostate? They died evil deaths and their efforts against Christ dispersed into nothing, like smoke. And so it was throughout all of history: some persecutors converted to Christianity and others died evil deaths; but always, the efforts of one or the other against Christianity are dispersed into nothing, like smoke. When he attacked Jerusalem, Emperor Hadrian sought revenge against the Jews and against the Christians, for he did not distinguish Christians from Jews. He dispersed the Jews throughout the world, and built an idolatrous temple on the spot where the Temple of Solomon had stood. He also renamed Jerusalem "Aelia,'' after his own name [Aelius], and forbade that this city be called Jerusalem by anyone. He built a temple on Golgotha to the foul Venus, a temple to Zeus over the tomb of the Lord, and a temple to Adonis in Bethlehem. How sorrowful the Christians of that time must have felt, seeing their holy shrines mocked in such a manner. But what happened in the end? Emperor Hadrian died an evil death and, in the time of Empress Helena and Emperor Constantine, the pagan temples were torn down, and in their places beautiful Christian churches were built--and these are still standing, even today. //It is hard for thee to kick against the pricks//. Oh, how desperate and hopeless is every struggle against Christ!
! CONTEMPLATION
Contemplate the vanity of men's efforts in opposition to the will of God (I Kings 12):
# How ten tribes broke away and took Solomon's servant as king;
# How Rehoboam prepared an army to make war against Jeroboam;
# How God held him back from war, saying through the prophet: //For this thing is of Me// (I Kings 12:24).
! HOMILY
! on how the world hates the witness of its sin
The world cannot hate you; but Me it hateth (John 7:7).
Why does the world hate Christ the Lord? The Lord Himself immediately explained this: //Because I testify of it, that the works thereof are evil//(John 7:7). Men do not hate anyone as much as a witness to their sin. Because of this, the greatest misdeeds of the world are committed at night, in darkness. But does God not see at night, in darkness? In truth, God sees, but the evildoers do not see God. And even if some of them believe somewhat in God, they think, because of their own insufficient enlightenment, that darkness is a curtain between men and God. The Lord Jesus Christ Himself clearly revealed that God is all-seeing, and that no darkness prevents His eyes from seeing. He Himself saw men at a distance, such as Nathaniel under the fig tree. He saw a donkey with its colt in another village. His sight was not impeded by spatial distance. He foresaw the denial of Peter, the betrayal of Judas, His own death and Resurrection, the destruction of Jerusalem, the eternity of His Church, the suffering of His followers, and the events at the end of time. His sight was not impeded by the distance of time. But what more is there to enumerate? And what is more hidden than the hearts of men? Is not the heart hidden by the thick curtain of the body? Are not the thoughts in the heart more hidden than the heart itself? Nevertheless, He penetrated the darkness of men's hearts and read their thoughts there: //Wherefore think ye evil in your hearts?// (Matthew 9:4). Brethren, it is no wonder that all those who thought or committed evil were afraid of such a witness. Is it a wonder, then, that the evildoers hated Him?
//The world cannot hate you//. Whom? All of you who participate in the evil of the world and who, because of your participation, dare not witness against the world. How can those who fear men witness against men? How can those who seek the glory of men bring the condemnation of men against themselves?
O my brethren, it is better for us if the world hates us, and Christ loves us--than if the whole world loves us and glorifies us, and Christ turns His face from us, saying: //I know you not//. If the world hates us, let us be comforted by the words of the Savior: //If the world hate you, ye know that it hated Me before it hated you// (John 15:18).
O Blessed Lord, the Source of all blessings, strengthen our hearts, that we may not be frightened when the world hates us. Only bless and love us, O Good Savior.
To Thee be glory and praise forever. Amen.
! THE EXALTATION OF THE HONORABLE CROSS
Two events in connection with the Honorable Cross of Christ are commemorated on this day: first, the finding of the Honorable Cross on Golgotha and second, the return of the Honorable Cross from Persia to Jerusalem. Visiting the Holy Land, the holy Empress Helena decided to find the Honorable Cross of Christ. An old Jewish man named Judah was the only one who knew where the Cross was located, and, constrained by the empress, he revealed that the Cross was buried under the temple of Venus that Emperor Hadrian had built on Golgotha. The empress ordered that this idolatrous temple be razed and, having dug deep below it, found three crosses. While the empress pondered on how to recognize which of these was the Cross of Christ, a funeral procession passed by. Patriarch Macarius told them to place the crosses, one by one, on the dead man. When they placed the first and second cross on the dead man, the dead man lay unchanged. When they placed the third cross on him, the dead man came back to life. By this they knew that this was the Precious and Life-giving Cross of Christ. They then placed the Cross on a sick woman, and she became well. The patriarch elevated the Cross for all the people to see, and the people sang with tears: "Lord, have mercy!" Empress Helena had a silver case made and set the Honorable Cross in it. Later, the Persian Emperor Chozroes conquered Jerusalem, enslaved many people, and took the Lord's Cross to Persia. The Cross remained in Persia for fourteen years. In the year 628 A.D. the Greek Emperor Heraclius defeated Chozroes and, with much ceremony, returned the Cross to Jerusalem. As he entered the city Emperor Heraclius carried the Cross on his back, but suddenly was unable to take another step. Patriarch Zacharias saw an angel preventing the emperor from bearing the Cross on the same path that the Lord had walked barefoot and humiliated. The patriarch communicated this vision to the emperor. The emperor removed his raiment and, in ragged attire and barefoot, took up the Cross, carried it to Golgotha, and placed it in the Church of the Resurrection, to the joy and consolation of the whole Christian world.
! SAINT PLACILLA, THE EMPRESS
Placilla was the wife of Emperor Theodosius the Great. In mind and deed, she was a true Christian. She was especially distinguished for helping the needy and the sick. When some people told her that this was not consistent with imperial dignity, she replied: "It becomes the imperial calling to assist with money; however, in my personal efforts concerning the poor, I give to Him who deigned to give me this calling." She rested peacefully in about the year 400 A.D.
! THE VENERABLE MARTYR MACARIUS OF THESSALONICA
Macarius was a disciple of Patriarch Niphon when the latter was laboring in stillness at Vatopedi [on Mount Athos]. Macarius longed to be martyred for Christ the Lord, and begged St. Niphon for his blessing. The clairvoyant patriarch, seeing that this was the will of God, blessed his path to martyrdom. Macarius went to Thessalonica and, in a crowd of Turks, began to speak about Christ as the One True God. The Turks beat him and threw him into prison. When they brought him to trial, Macarius cried out to them: "Oh if you only knew the truth, and were baptized in the name of the Father and the Son and the Holy Spirit!" The Turks beheaded him in 1527 A.D. At that very moment, St. Niphon saw this in the spirit and told a monk of Macarius's death by martyrdom, saying: "Know this, my child, that today your brother Macarius died a martyr's death and is borne to heaven, celebrating and rejoicing in the Lord. May we, by his prayers, be made worthy of blessedness."
! THE VENERABLE MARIA OF TARSUS
She lived a life of total debauchery. Two monks traveling through Tarsus stayed at the inn where Maria plied her trade. When she approached the monks, they rebuked her and pushed her aside as unclean. She suddenly repented, and vowed never to sin again. The monks took her to a convent, where Maria lived a life of asceticism until old age. She was made worthy of working miracles even during her lifetime.
! HYMN OF PRAISE
! THE HONORABLE CROSS
Save, O God, Thy people!
Save, O Lord--
By Thine Honorable Cross, Thou dost shine upon us,
By the Cross, Thou dost lead us!
The Cross is power and a sign;
The Cross is salvation.
Save, O God, the Patriarch
And the Assembly of Serbian Bishops;
Grant them strength to serve
Thine Honorable Cross!
The Cross is power and a sign;
The Cross is salvation.
Save, O God, all those
Who are in authority;
May the Most-holy Cross protect them
From dark destruction!
The Cross is power and a sign;
The Cross is salvation.
Save, O God, all people
Who pray to Thee.
By Thy Cross, may they quickly overcome
Every difficulty.
The Cross is power and a sign;
The Cross is salvation!
! REFLECTION
Just as a candle is lighted from another candle, so also a good work is born from a good work. A patrician wanted to donate a gold cross to a church. He summoned a young but experienced goldsmith, gave him a great deal of gold that he weighed out, and told him to fashion whatever sort of cross he desired. The poor goldsmith, seeing what a large donation this patrician was making for the sake of his soul, became inflamed with love for God in his own heart, and decided that he would add his own ten pieces of gold to the amount of the patrician's gold. When the cross was completed, the patrician weighed it, and discovered that it was heavier than the gold that he had given to the young man. He immediately began to scold the young man as a thief, suspecting that he had taken some of the gold and replaced it with some other heavy metal. When the young man saw the patrician so angry, he confessed his deed. He said: "I added from my gold, as the widow gave two mites, in order to receive Christ's reward with you." Hearing this, the patrician's heart was touched, and he said to the honorable young man: "From this day, I take you as my son, and the heir of all my goods."
! CONTEMPLATION
Contemplate the transgression of Jeroboam and the punishment of God (I Kings 12, 13):
# How Jeroboam cast two golden calves and ordered the people to worship them as gods;
# How the prophet declared God's displeasure to Jeroboam, and miraculously broke the altar before the idols;
# How Jeroboam raised his hand against the prophet, but his hand withered, and only after the prayers of the prophet was it made whole again.
! HOMILY
! on the truthfulness of Christ's witness
Though I bear record of Myself, yet My record is true (John 8:14).
The light witnesses truthfully when it witnesses to the existence of the sun, and it does not lie. In the same way, the Lord Jesus witnesses truthfully to all that He testifies. He descended among men as a heavenly witness, to affirm the existence of the Triune God, the existence of the angelic world and of men's souls, the love of God for men, God's providence toward men, the power of justice over injustice, the might of truth over falsehood, the blessed immortality of the righteous and the eternal torment of the sinners, the resurrection from the dead, the Judgment of God and many other things that men--under the veil of sin--only felt as a faint premonition, but did not know of or strongly believe in. Most of all, He witnessed that He is the Son of the Living God, equal to His Father in Essence, power and love, and equal to the Holy Spirit of God. For the Witness had to witness first to Himself, so that by His witnessing to other mysteries, He could be believed. From the point of view of a pure and immutable truth, every witness of Christ is true; but from the point of view of the darkened Jews, it was not true. For God, and the angels of God, and the righteous ones, and for eternity, and for all time--His witnessing is true, and that is why He also said: //My record is true//. But for the darkened minds of the hardened sinners, this witness is not true. That is why He said to the Jews earlier: //If I bear witness of Myself, My witness is not true// (John 5:31). In other words; "It is not true for you Jews, but in essence it is true in and of itself."
O Most-blessed Lord Jesus, Son of the Living God and our only Savior, deliver us from the weakness of a sinful mind, and the wickedness of a sinful heart. Illumine us with the light of Thy words, eternally true.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR NICETAS
Nicetas was a Goth by birth. He was a disciple of Theophilus, Bishop of the Goths, who participated in the First Ecumenical Council [Nicaea 325 A.D.]. When the Gothic prince Athenarik began to torture Christians, St. Nicetas stood before the prince and denounced him for his paganism and inhumanity. Subsequently harshly tortured, Nicetas confessed his faith in Christ even more strongly, and prayed to God with thanksgiving. His mind was unceasingly raised up to God, and on his breast under his robe he bore an icon of the Most-holy Theotokos with the Pre-eternal Christ Child standing and holding the Cross in His hands. St. Nicetas carried this icon because the Holy Theotokos had appeared to him and comforted him. Finally, the torturer threw the soldier of Christ into the fire, where the holy martyr breathed his last, but his body remained untouched by the fire. His companion Marianus took his body from the land of the Goths (Wallachia and Bessarabia) to the town of Mopsuestia, in Cilicia. There, he built a church dedicated to St. Nicetas, and placed the miracle-working relics of the martyr in it. Nicetas suffered and was glorified in the year 372 A.D.
! THE VENERABLE PHILOTHEUS
Philotheus was from the village of Myrmix or Mravin in Asia Minor. His mother had the same name, but reversed--Theophila. Philotheus was a presbyter and a great miracle-worker during his lifetime. On one occasion, he changed water into wine and, on another occasion, he miraculously increased a quantity of bread. He reposed in the Lord in the tenth century, and his relics gushed myrrh.
! THE HOLY MARTYR PORPHYRIUS
Porphyrius was born in Mimosa. At first, he made jests about Christians for the Emperor Julian the Apostate. Thus, on one occasion, while parodying the Christian Mystery of Baptism, he immersed himself in water, pronouncing the words: "In the name of the Father and the Son and the Holy Spirit!" When he emerged from the water he cried out: "Now I am a Christian!" Everyone thought that this was just another jest, but he remained steadfast, ceased to mock Christianity, and finally suffered for Christ. Porphyrius was beheaded in the year 361 A.D., and took up his habitation in the Kingdom of Christ.
! THE HOLY MARTYRS THEODOTUS, ASCLEPIDOTE AND MAXIMUS
They were all noblemen by birth, from Trachis. They suffered for Christ in the village of Saltis near Philipopolis, between the year 305 and 311 A.D., and entered into the Heavenly Kingdom.
! SAINT BESSARION THE WONDERWORKER, ARCHBISHOP OF LARISSA
Bessarion founded the Monastery of the Savior, in the Diocese of Larissa. He was glorified by his miracles, both during his life and after his death.
! THE HOLY NEW MARTYR JOHN OF CRETE
John suffered for the Christian Faith at the hands of the Turks in Ephesus, in the year 1811 A.D.
! SAINT JOSEPH, BISHOP OF ALAVERDI
Joseph was one of the Thirteen Syrian Fathers (May 7) who were sent to the Caucasus to preach the Gospel. St. Joseph peacefully reposed in the Lord in the year 570 A.D. His miracle-working relics repose in the cathedral church in Alaverdi.
! HYMN OF PRAISE
! THE HOLY MARTYR NICETAS
He is a true patriot who, among his own people,
Erects a true altar to the Living Lord.
Athenarik the Goth ruled by force,
And offered sacrifices to lifeless idols.
But holy Nicetas, the soldier of Christ God,
Was a preacher of eternal salvation.
He cast rays of the Eternal Light throughout the night,
Dispersing the idolatrous darkness that shrouded souls.
Holy Nicetas opposed the prince,
And his brave endurance amazed his people.
By the power of the Honorable Cross, he confounded the darkness
And filled all the people with the fear of God.
His blood was the rosy hue of the new dawn,
And his spirit was raised up to the heavenly courts.
In the terrible fire, Nicetas burned,
But, not even today, has he been consumed.
With the truth of Christ the Goths were baptized,
And they glorified Nicetas, their wonderful one.
O Saint Nicetas, voice of God's trumpet,
Courageous martyr, true patriot;
From the tents of the earth you have departed,
And you stand in the royal courts with the angels.
Pray for us, for the King listens to you,
That He grant our souls mercy.
! REFLECTION
//God is not mocked// (Galatians 6:7). God either punishes the mockers in order to correct them or He converts them into that which they had mocked. Initially, St. Porphyrius was famous among the pagans as a mocker of Christianity. On one occasion, he was mocking the Christian Mystery of Baptism before Emperor Julian the Apostate and his retinue. But something totally unexpected happened. When Porphyrius immersed himself in the water and pronounced the words of baptism in the name of the Holy Trinity, his spirit was suddenly changed, and he became a true Christian. Instead of mocking the Christian Faith, he began to denounce the emperor for his impure idolatry, for which he was tortured and beheaded. A similar thing happened to the comedian Gennesus, probably in Diocletian's time. This Gennesus parodied the Christian Divine Liturgy before a crowd of pagans, amusing them with his mockeries and witticisms. Suddenly, he changed, and cried out before the people: "I believe, and I desire to be baptized." At first, the spectators thought his words were a part of his farce, but he repeated his statement of faith in Christ. When Gennesus remained steadfast in his new faith, even when interrogated by the court and the emperor himself, he was tortured and slain. Thus, the mocker of Christ became a martyr for Christ.
! CONTEMPLATION
Contemplate God's punishment on a disobedient prophet (I Kings 13):
# How this prophet was commanded by God to abstain from eating or drinking anything in idolatrous Bethel;
# How the prophet disobeyed God, and ate and drank;
# How, upon returning, he was torn apart by a lion.
! HOMILY
! on the twofold witness of the Son of God
I am one that bear witness of Myself, and the Father that sent Me beareth witness of Me (John 8:18).
It is written in the Law that two witnesses are needed in order to prove something. First of all, the Lord provided the unbelieving Jews with three great witnesses about Himself: the Father, His own works and Holy Scripture (John 5:36-39). Yet, even after His many miracles, and after His teachings were widely expounded, He told them that His own witness of Himself was true and sufficient (John 8:14). Finally, He again emphasized two witnesses to them--His and His Father's--in accordance with the letter of the Law, which required two witnesses. Thus the Lord seals the lips of the unbelievers in every way, and leaves them no outlet but the crime of murder, which is the last resort of those who refuse to be convinced of the truth, with no regard for reason or proof. In this last case especially, with the Lord's presentation of His and His Father's witness, He also wanted to show that He was a separate Person [hypostasis], and yet of one Essence with the Father. Therefore, He presents two witnesses: His own separate witness and the witness of God the Father.
The following words confirm this: //If ye had known Me, ye should have known My Father also// (John 8:19). Expressed here is the complete essential unity of the Father and the Son, and there remains not even the slightest doubt that the Lord was thinking of His essential equality with His Father. The words here are about the Divine Nature, and not the human nature. Whoever conceives of the Holy Trinity as three bodily beings deceives himself. Only the Son of God appeared in the flesh, for the sake of the salvation of the world. The Father and the Holy Spirit did not take on flesh. According to His Divine Nature, the Son, although in the flesh, remained equal to the Father and the Holy Spirit. He clothed Himself in human nature, and added His Divine Nature, out of love for mankind, so as to reveal Himself to men and save them.
O Holy Trinity, one in Essence and undivided, Who illumined and enlightened us through the Incarnate Word of God, sustain us to the end by Thy sanctity, Thy strength and Thine immortality, and save us.
To Thee be glory and praise forever. Amen.
! THE HOLY GREAT-MARTYR EUPHEMIA
Euphemia was born in Chalcedon. Her father Philophronus, a senator, and her mother Theodorisia were devout Christians. Euphemia was a beautiful virgin in body and in soul. When the Proconsul Priscus held a feast and offered sacrifices to Ares in Chalcedon, forty-nine Christians avoided this foul sacrificial offering and hid themselves. However, they were discovered and brought before Priscus. Among them was St. Euphemia. When the arrogant Priscus asked them why they defied the imperial decree, they replied: "Both the emperor's and your command should be obeyed, if they are not contrary to the God of heaven; but if they are contrary to God, they should not only be disobeyed, but should also be opposed." For nineteen consecutive days, Priscus imposed various tortures on them. On the twentieth day he separated Euphemia from the others and began to flatter her for her beauty, attempting to win her over to idolatry. As his flattery was in vain, he ordered that the virgin be tortured again. First, they tortured her on the wheel, but an angel of God appeared to Euphemia and shattered the wheel. Then they threw her into a fiery furnace, but she was preserved by the power of God. Upon seeing this, two soldiers, Victor and Sosthenes, came to believe in Christ, for which they were thrown to the wild beasts, and thus gloriously ended their earthly lives. Euphemia was then thrown into a pit filled with water and every kind of poisonous vermin; but she made the sign of the Cross over the water and remained unharmed. She was finally thrown to the wild beasts and, with a prayer of thanksgiving to God, gave up her spirit. Her parents buried her body honorably. Euphemia suffered in the year 304 A.D. and entered into eternal joy. She is also commemorated on July 1#
! THE VENERABLE DOROTHEUS
Dorotheus was an Egyptian hermit of the fourth century. He labored in asceticism for sixty full years in one cell in the Thebaid. He distinguished himself by an unusual love of labor and by miracle-working. During the day he built cells for the new monks, and at night he wove mats, never interrupting his prayer and psalmody.
! SAINT CYPRIAN, METROPOLITAN OF KIEV
Cyprian was born in Trnovo, but lived as a Serb on Mount Athos.//) He especially occupied himself with translating and re-copying books. His patron was Philotheus, the Patriarch of Constantinople. When the patriarch came to know Cyprian on Mount Athos, he took him into his service, and eventually sent him to Kiev as metropolitan. As Metropolitan of Kiev he endured much grief and misfortune, but endured it all with kindness and patience, and by his fruitful labor greatly benefitted the Russian Church. He spent almost thirty years in his calling as metropolitan. Prior to his death, he wrote a farewell speech that was read over his grave. He entered into rest on September 16, 1406 A.D. His miracle-working relics repose in the Church of the Dormition in Moscow.
--------------------
//) Archbishop Philaret of Chernigov writes that Cyprian was a Serb. See his //Lives of Saints//.
! THE HOLY FEMALE MARTYR LUDMILLA
Ludmilla was the grandmother of the Czech King Vatslav [Wenceslaus]. She was married to the Czech Prince Borivoy. By her zeal for the Christian Faith, she brought many out of paganism into the Church. Her daughter-in-law hated her, and had men strangle Ludmilla in her old age. Vatslav buried Ludmilla's body in the Church of St. George in Prague. Many miracles occurred over her relics. She suffered in Techino in the year 927 A.D. St. Vatslav, himself a great zealot for the Orthodox Faith, was slain by his brother Boleslav.
! HYMN OF PRAISE
!
! THE HOLY GREAT-MARTYR EUPHEMIA
All-blessed Euphemia, the holy virgin,
Offered herself to God as a sacrificial lamb.
She neither gasped, nor sighed, nor sorrowed,
But gave warm thanks to God for her tortures.
Angels appeared to her in the flame,
And extinguished the embers with cool heavenly dew.
Oh, such is our Faith--invincible!
Oh, such is the love for God--unquenchable!
Euphemia, wise virgin, virgin of Christ,
Christ the Lord gave you the Kingdom for your suffering.
You have boldness before the Mother of God and Christ our God,
And help Their work by your holy prayers.
O Euphemia, pray for all sinners,
And convert them, O saintly one, to repentance.
! REFLECTION
Often unexpected misfortune befalls us, and in vain we ask "why?" The Church of Christ alone knows how to explain the cause of every misfortune. The Church basically classifies misfortunes into two groups. Some misfortunes befall the sinner because of old, unrepented sins. Other misfortunes assault the righteous and serve, according to the words of St. John Chrysostom, "as a means of receiving a wreath, as was the case with Lazarus and Job." The Empress Eudocia secretly agreed with the Eutychian heresy, having heeded the counsel of the perfidious eunuch Chrysaphius. But misfortune unexpectedly befell her. One day her husband, Emperor Theodosius, brought her an apple of unusual size. The empress sent the apple to the ailing senator Paulinus and he, out of love for the emperor, sent this same apple to Emperor Theodosius. This gave the emperor reason to suspect an illicit relationship between his wife and the senator. The emperor asked his wife to show him the apple he had given her. The empress lied and said: "I ate it!" This made the emperor's suspicion even stronger, and he banished Eudocia to Palestine. In time Eudocia cured herself of heresy, and through the counsels of the great Palestinian spiritual fathers returned completely to Orthodoxy. The misfortune that befell the empress did not arise from an illicit relationship with Paulinus--in this, she was completely innocent--but because of her heretical disposition. A second but different case: When he was still a military commander, the future Emperor Marcian was traveling near Philipopolis and saw the corpse of a murdered man on the road. Out of pure compassion, he got off his horse and started to bury the corpse. Just then someone came by and saw him burying the corpse, and reported him to the court as a murderer. Marcian would have been punished by death, had God not shortly revealed the true murderer. This kind of misfortune falls into that second category--"for the receiving of a wreath." Shortly after this, General Marcian was chosen to be emperor.
! CONTEMPLATION
Contemplate God's wondrous judgment with regard to men (I Kings 14):
# How Jeroboam's son became ill and died, for the punishment of his apostate father and for his own salvation;
# How the rest of Jeroboam's men perished, and were eaten by dogs in the city and by birds in the field.
! HOMILY
! on the Lord, the holder of power
I have power to lay it [My life] down and I have power to take it again (John 10:18).
The divine power of our Lord Jesus Christ manifested itself in His complete power over Himself. If divine power could be separated from divine love, then it could be said of Christ that He would have been able to incarnate, or not incarnate; or again, that He would have been able to die, or not die. But, He became incarnate according to His divine love for men and, according to this same inexpressible love, He gave Himself up to death as a //Good Shepherd//for His sheep (John 10:11). A man who kills himself does not truly have power over his life, for he does not kill himself by his own power, but rather by the power of sin, or by the power of the devil, or by the power of some other grave circumstance. So also, a man whom others kill has no power over his life, nor can he speak for his life before his murderers: he cannot say //I have power to lay it down//, for he must lay it down unwillingly. Only our Lord Jesus Christ could say in the presence of his murderers, the Jews: //I have power to lay it down//. Having that power, He could, by a miracle that would have been easy for Him, have made all the Jews perish before they crucified Him on the Cross. Yet He foresaw the saving fruits of His death, and that is why He willingly gave Himself up to be slain.
//And I have power to take it again//. With these words He foretold His Resurrection. Therefore, the Lord both died and resurrected by His divine power.
O Almighty and man-loving Lord, how beautifully Thou didst plan the salvation of men by Thy divine power and love. Help us, O help us, that we might embrace that salvation!
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS VERA, NADA AND LYUBOV (FAITH, HOPE AND LOVE) AND THEIR MOTHER SOPHIA (WISDOM)
They all lived and suffered in Rome during the reign of Emperor Hadrian. Sophia was wise, as her name implies. She was left a widow, and had established herself and her daughters well in the Christian Faith. When the persecuting hand of Hadrian extended even over the virtuous home of Sophia, Vera was only twelve years old; Nada, ten years old; and Lyubov, nine years old. Brought before the emperor, these four held each other's hands "like a woven wreath," humbly but steadfastly confessed their faith in Christ the Lord and refused to offer sacrifices to the pagan idol Artemis. Before their suffering, the mother encouraged her daughters to endure to the end: "Your heavenly Bridegroom, Jesus Christ, is eternal health, inexpressible beauty and eternal life. When your bodies are slain by torture, He will clothe you in incorruption and the wounds on your bodies will shine in the heavens as stars." One by one the torturers inflicted cruel torments, first on Vera, then on Nada, and then on Lyubov. They beat them, slashed them, cast them into fire and boiling pitch, and finally beheaded them with the sword one after another. Sophia took the dead bodies of her daughters outside the town and honorably buried them. She remained at their grave for three days and three nights, praying to God. Then she gave her spirit to God, flying off to Paradise, where the blessed souls of her glorious daughters awaited her.
! THE HOLY FEMALE MARTYR AGATHOCLEIA
Agathocleia was a servant of a certain Nicholas and his wife Paulina, who had been Christians but turned back from the Faith to worship idols. Holy Agathocleia refused to follow the error of her masters and was subsequently tortured cruelly by them, and by the pagan judges. Her mistress killed her by pouring hot coals on her neck, but this handmaiden of God was glorified in His Heavenly Kingdom.
! THE HOLY 156 MARTYRS OF EGYPT
They suffered for Christ the Lord in the year 310 A.D.--some by sword and others by fire. Among them were two old bishops, Peleus and Nilus; a priest, Zeno; and two prominent men, Patermuthius and Elias. Bishop Silvanus and John, an eminent, blind elder (who knew the Holy Scriptures by heart and recited them at the gatherings of Christians), were also with them. All were crowned with martyr's wreaths and took up their habitation in the Eternal Kingdom of Christ.
! THE HOLY FEMALE MARTYR THEODOTA
Theodota endured eight years of cruel torture for Christ. Her torturer was the eparch Simplicius, who later went insane. Theodota was beheaded in about the year 230 A.D., during the reign of Emperor Alexander Severus.
! HYMN OF PRAISE
! THE HOLY MARTYRS VERA, NADA AND LYUBOV,
AND THEIR MOTHER, SOPHIA
Sophia, all-wise, glorified the Lord;
As a sacrifice to Him, she offered three most-beautiful daughters.
To her daughters she said: "Be not afraid, my daughters;
Strengthen yourselves in Christ; endure in the Faith;
And be not afraid of torture or bitter misfortunes.
Do not grieve over your bodies--it is better in heaven:
God will give you wonderful bodies in heaven.
Do not grieve over your beauty--with divine beauty
You will shine among the angels in the Kingdom of God,
As the daughters of the King of kings!
Do not grieve over life--what is this earthly life worth?
Its span is at most a hundred years.
In heaven, life without end awaits you:
Life without end, life without beginning.
Do not grieve for the company of earthly friends,
For the company of wonderful saints awaits you there.
Nor should the company of worldly kinsmen cause you grief--
For your kin in the heavens are the glorious martyrs."
Thus the saintly mother instructed her holy daughters,
As, one by one, they flew off to heaven:
Three white doves, innocent and pure,
Flew swiftly to the bosom of Christ.
And with her soul uplifted, their mother flew after them,
And joined her glorious daughters in Paradise;
And our merciful God receives their prayers.
! REFLECTION
A faithful and God-fearing ruler is a true blessing for all people. King Vatslav of the Czechs was such a ruler. His zeal for the sanctity of the Faith and his steadfastness remind us of the ancient ascetics. During the day he devoted himself to the affairs of the state, and at night to prayer. In winter, he often walked barefoot to the church for Matins with his old servant Podivoi. He often prepared and baked prosphora himself, especially when he desired to receive Holy Communion. Because of his care for the Faith, many churches were built, in which daily services to God were celebrated. He especially concerned himself with the poor and needy. He was a lover of peace, yet also a great and fearless hero. When the neighboring Prince Radislav attacked the Czech lands, Vatslav sent him a letter asking why he was waging war. The proud Radislav replied that he wanted Vatslav to cede all the Czech lands, and his throne, to him. Vatslav promptly amassed a large army and confronted his enemy. Yet, pondering on the two powerful armies, he mourned that so many men would die, and sent a message to Radislav: "The quarrel is between you and me; you desire to rule the land of the Czechs and I will not yield. Agree to resolve this matter with a duel between the two of us. Why shed so much blood in a battle between two armies?" Prince Radislav agreed to this duel, and was defeated by Vatslav. On his knees, he begged him for forgiveness.
! CONTEMPLATION
Contemplate the transgressions of Judah, and God's punishment of those transgressions (I Kings 14):
# How the people and King Rehoboam did that which is evil in the sight of the Lord;
# How they erected idols in the temples, and how there were many sodomites in the land;
# How the king of Egypt attacked Jerusalem and plundered all the gold of the Temple.
! HOMILY
! on the unity of Essence of the Father and the Son
I and My Father are one (John 10:30).
The more miracles that the Lord Jesus performed, and the closer He came to His death, the more openly He spoke of Himself. The numerous miracles and the increasing length of time to contemplate them worked changes in both the good and the wicked. The good became receptive to the revelation of God's lofty mysteries. The wicked, clinging to evil, darkened themselves all the more, and became incapable of receiving these mysteries. That is why the wicked //took up stones … to kill Him// (John 10:31).
//I and My Father are one//. The Father and the Son are one in Essence, but are not one in Person (hypostasis). Otherwise, one could not call them by two names: Father and Son. Both the Son and the Holy Spirit have all the attributes of the Father's Essence. However, the attributes of the Person of the Father belong only to the Father, the attributes of the Person of the Son belong only to the Son and the attributes of the Person of the Holy Spirit belong only to the Holy Spirit. But when the discourse is about the Divine Essence, the Son can say, "I and My Father are one," and the Father can say, "I and the Son are one," and the Holy Spirit can say, "I and the Father and the Son are one."
The Lord Jesus Christ expressed the unity of His Being with the Father in the following words: //The Father is in Me and I in Him//(John 10:38). Can the divinity of the Son be expressed more clearly? Can the human tongue convey the unity of the Triune God in stronger terms? The dogma of the divinity of the Son of God, as well as the dogma of the unity of the Being of God, was revealed and laid out by the Lord Jesus Christ Himself. Therefore, let no one give credence to the deceits of certain unbelievers and heretics--who pretend that the Lord Jesus did not reveal His divinity, and allege that this dogma was introduced to the Church much later. If Christ had not proclaimed His divinity, why would the Jews have said to Him: //Thou … makest Thyself God// (John 10:33)? And why would they take up stones against Him?
O Lord Jesus Christ, Son of God, one in Essence with the Father and the Holy Spirit, have mercy on us and save us by the power and goodness of Thy divinity, almighty and all-righteous.
To Thee be glory and praise forever. Amen.
! SAINT EUMENIUS, BISHOP OF GORTYNA ON CRETE
From his youth, Eumenius wholeheartedly followed Christ, freeing himself of two heavy burdens: the burden of wealth and the burden of the flesh. He freed himself of the first burden by distributing his entire estate to the poor and needy, and the second burden by strict fasting. In this way he first healed himself, and then began to heal others. Passionless and filled with the grace of the Holy Spirit, Eumenius shone with a light that could not be hidden. As it is written, //A city that is set on an hill cannot be hid// (Matthew 5:14), so the holy Eumenius could not be hidden from the world. Witnessing his goodness, the people chose him as Bishop of Gortyna, and he governed the flock of Christ as a good shepherd. He was a father to the poor, wealth to the needy, consolation to the sorrowful, a healer of the sick and a most wonderful miracle-worker. By his prayers, he worked many miracles: he subdued a poisonous serpent, cast out demons and healed many of the sick--and he did this not only in his own town, but also in Rome and in the Thebaid. In a time of drought in the Thebaid, he obtained rain from God by prayer. There, in the Thebaid, his earthly life ended, and he took up his habitation in the eternal home of his Lord. He lived and labored in the seventh century.
! THE HOLY FEMALE MARTYR ARIADNA
In the Phrygian town of Promisea, during the reign of Emperor Hadrian, there lived a pagan nobleman named Tertullus. The maiden Ariadna was his slave and a Christian. On the day of his son's birth, Tertullus prepared a great sacrificial offering to the idols, but the pious Ariadna did not attend, remaining at home to pray to the true God. Her master was enraged at this and tried to coerce her to deny Christ and to worship idols. When Ariadna refused, he tormented her with beatings and other cruel tortures and cast her into prison. When he released her from prison, he drove her away from the house. Soon afterward he regretted having released her, and sent servants to seize her and return her to him. By then, Ariadna was already a great distance from the town. She was passing by a huge rock when she saw her pursuers, and she prayed to God and the rock opened and hid her. The servants became confused by this and began to quarrel and fight among themselves, and killed each other.
! THE HOLY MARTYR BIDZINI, PRINCE OF GEORGIA
Bidzini, and his kinsmen Elizbar and Shalva, died for the Christian Faith under Shah Abbas II, in the year 1661 A.D.
! HYMN OF PRAISE
!
! THE HOLY MARTYR ARIADNA
The fair maiden Ariadna,
Served her master honorably,
But served God more than man.
A slave in body but not in soul,
She did not desire spiritual slavery
And would not worship idols.
She would bow before God the Creator,
She would bow before Christ the Savior,
But she would not bow before the idols.
She was tortured for her Lord,
And accepted torture with great joy,
With joy and thanksgiving.
Merciful God, with His All-seeing eye,
Saw St. Ariadna's holy suffering,
And commanded the lifeless rock
To hide His suffering virgin,
As had once happened with Thecla and John.
Ariadna, all-blessed virgin,
Help us by your prayers
Before the throne of the merciful God;
And, in the company of the Holy Mother of God,
Help us by your prayers.
! REFLECTION
The Lord said: //Verily I say unto you, Inasmuch as ye have done it unto one of the least of these My brethren, ye have done it unto Me// (Matthew 25:40). Similar things happen in almsgiving and in Holy Communion. In Holy Communion we receive the Living Lord Christ Himself, in the form of bread and wine; in almsgiving we give to the Living Lord Christ Himself, in the form of the poor and needy. A certain man in Constantinople was unusually merciful. Walking along the streets of the city, he would press his gift into the hands of the poor and hurry onward, so he would not hear their gratitude or be recognized. When a friend of his asked how he had become so merciful, he replied: "Once in church I heard a priest say that whoever gives to the poor, gives into the hands of Christ Himself. I didn't believe it, for I thought, 'How can this be, when Christ is in heaven?' However, I was on my way home one day and I saw a poor man begging, and the face of Christ shone above his head! Just then a passerby gave the beggar a piece of bread, and I saw the Lord extend His hand, take the bread, and bless the donor. From then on, I have always seen Christ's face shining above the beggars. Therefore, with great fear I perform as much charity as I can."
! CONTEMPLATION
Contemplate the righteousness of King Asa, and God's reward (I Kings 15):
# How Asa did that which is good in the sight of God, and cleansed the land of idols;
# How God granted him the victory over the Ethiopians, and blessed him and the people with every good.
! HOMILY
! on the resurrected and Living Lord, Who is the Resurrection and the Life
I am the Resurrection and the Life (John 11:25).
The Lord Jesus Christ spoke these holy words. Not only did He speak them, but also proved them by His actions. By raising Jairus's daughter, the son of the widow of Nain, and His friend Lazarus, He proved that He is //the Resurrection and the life//, the Resurrector and Life-giver. Even so, He proved this best by His own Resurrection from the dead. For, to be alive and then to help the dead--this is something that has been heard of. But to be dead and buried, and lie in the grave for three days and to give yourself life--that was unheard of until Christ's Resurrection. It is the miracle of miracles, and the proof of a power above every other power. This miracle was performed by our Lord. Our Lord manifested this power. Therefore, true are His words, //I am the Resurrection and the life//,--true and holy, and comforting to all of us who are traveling toward the inescapable death of the body, and who hope to live beyond the grave and see our Living Lord in glory.
However, our Lord is not only the Resurrector of the body, but also the Resurrector of the soul. During His life on earth, He resurrected only a few human bodies, but countless souls--to demonstrate that the resurrection of the soul is much more important than the resurrection of the body. Almost all human souls were dead when He came into the world, and He resurrected countless souls by His power, and imbued them with His life. Both the Jews and the pagans were dead in soul, and He enlivened the one and the other. My brethren, let us lay aside all concern for the resurrection of our bodies, and let us strive, while we still have time, for the resurrection of our souls. For if our souls do not resurrect, and are not enlivened by Christ while still on earth, let us not expect any joy from the resurrection of our bodies on the Day of Judgment, the Day of Wrath. For then the bodies of our dead souls would rise, not unto life, but unto eternal torment.
O Lord Jesus Christ, our only Resurrection and life, help us by Thy power and Thy mercy, that we may be resurrected and enlivened by Thee, unto salvation and eternal life.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYRS TROPHIMUS, SABBATIUS AND DORYMEDON
In the third century, during the reign of Emperor Probus, when Atticus was governing Antioch, two Christians, Trophimus and Sabbatius, both eminent and honorable citizens, came to that city. They arrived just as a pagan festival and sacrificial offerings to the idol of Apollo were taking place at nearby Daphne. Atticus made every effort to ensure that all citizens took part in this festivity. When someone noticed that Trophimus and Sabbatius were not participating in the festivity, he told Atticus. Atticus brought them to trial, and when they refused to renounce Christ he subjected them to tortures, one after the other. After he beat and tortured Trophimus, Atticus sent him to Phrygia to Dionysius, an even crueler torturer of Christians. Then Atticus took Sabbatius from prison and began to try him. When the torturer asked Sabbatius who he was and what his rank was, he replied: "My rank and dignity and homeland and glory and wealth is Christ, the Son of God, Who lives forever, and by Whose providence the universe exists and is governed." For that, he was beaten and torn and scraped with an iron implement until the bones showed through beneath his flesh. Under these tortures he reposed. In Phrygia, the torturer Dionysius subjected Trophimus to great torture, then kept him in prison for even greater tortures. A certain senator Dorymedon, a secret Christian, came to the prison and ministered to Trophimus. When the torturer learned of this, he began to torture both of them in the same way, and finally threw them to the wild beasts, but the wild beasts did not touch them. Holy Dorymedon even shouted at the she-bear, pulling her ears so that she would tear him apart, but in spite of all that, the bear became gentler. In the end, the torturer ordered that Saints Trophimus and Dorymedon be beheaded with the sword. The souls of both of these holy martyrs now reign in heaven.
! THE HOLY MARTYR ZOSIMAS THE HERMIT
Dometian, a Sicilian prince, went hunting in the mountains with his servants. There he saw an old man surrounded by wild beasts as tame as lambs. Asked who and what he was, the elder replied that his name was Zosimas, that he was a Christian, and that he had lived long among the wild beasts, who were better than those who lived in the city and torturered Christians. This offended Dometian, who was himself a cruel persecutor of Christians. He chained Zosimas and sent him ahead to Nazareth, as he especially wanted to torture him there, to intimidate those who believed in Christ. When Dometian had wounded and bloodied Zosimas with blows, he tied a stone around his neck and suspended him from a tree. Then the prince mocked him, saying: "Command that a wild beast come forth so that we may all believe!" The holy martyr prayed to God, and, indeed, an enormous lion appeared, drew near to Zosimas, and placed his head under the stone to alleviate the martyr's suffering. In great fear, the prince freed Zosimas, but the latter soon rendered his spirit into the hands of his Lord.
! SAINT THEODORE, PRINCE OF YAROSLAVL
Theodore was a righteous and merciful man. He received the great schema before his repose, and entered into rest in the year 1298 A.D.
! HYMN OF PRAISE
! THE HOLY MARTYR ZOSIMAS THE HERMIT
To the arid wilderness, far from men,
Early in life, St. Zosimas had fled.
In solitude he conversed with God,
And spent his life in many labors--
In prayer, fasting, all-night vigils,
And in salvific contemplation of God.
He was like an angel in vigil, like a giant in faith.
Even the beasts sensed his innocence.
The beasts, despisers of cruel men, loved the saint,
And obeyed him as children obey their father.
The merciful saint tamed them with mercy,
And the beasts responded with goodness to goodness,
Since beasts remember goodness, and repay it in kind,
With gratitude to their benefactors.
Persecuted by men, but dear to the beasts,
Among the beasts Zosimas took up his habitation.
But the beastly men discovered his home
And killed his body by cruel torture.
Now St. Zosimas rejoices in heaven;
In Paradise, he exults with the saints.
He prays for us, that we may overcome our hardships
And rejoice with him in Paradise.
! REFLECTION
Even the dead sense and know the good deeds that are performed for them. Christians need not have any doubt in this. A good deed spreads through the heavenly world like an electrical current. An imperial clerk, Magistrian, was sent by the emperor on an important errand. Along the way, Magistrian saw a poor dead man, completely naked. He was moved with pity, removed his shirt, dressed the dead man, and buried him honorably. After a while, Magistrian had an unfortunate accident: he fell from his horse and broke his leg, and lay sick in bed for a long time. On one occasion, several doctors gathered around him to take counsel concerning his illness. The doctors agreed that his leg would have to be amputated. That night Magistrian could not sleep, but grieved and wept. At midnight a man suddenly appeared in his room and asked him: "Why are you weeping?" When Magistrian explained his condition, the unknown man then rubbed the infected leg with his hand and the leg was healed. "For God's sake, tell me--who are you?" asked Magistrian. The unknown man replied: "Look at me, and see, is not this your shirt? I am he whom you saw naked and dead, and whom you dressed in this shirt. And behold, for your good deed God has sent me to heal you. Give thanks to God!"
! CONTEMPLATION
Contemplate the sin of King Asa, and God's punishment on him (II Chronicles 16):
# How Asa, frightened of a neighboring king, took God's gold out of the Temple in order to buy an alliance with the King of Syria;
# How the Syrian king took the gold, but betrayed him;
# How God allowed a grave illness to befall Asa.
! HOMILY
! on the sorrow of Christ
Now is My soul troubled; and what shall I say? Father, save Me from this hour? But for this cause came I unto this hour (John 12:27).
Nothing more real came into this earthly world than the Lord Jesus Christ--nothing more real as God, and nothing more real as man. In truth, besides Jesus Christ, this whole world is like a mirage. Neither earth, nor water, nor air, nor light even comes close to His reality. Behold, all of this will pass, but He will remain. Indeed, He is the cornerstone of the eternal, intransitory world; and only He, and those who cling to Him, will have a part in that eternal, intransitory reality. The stormy but helpless waves of time have furiously assaulted, and continue assaulting, the reality of Christ's divinity and even His humanity. As much effort was needed for Christians to open the eyes of the pagans and to prove the divinity of Christ, as was needed to open the eyes of the heretics to prove His humanity. The omniscient Holy Spirit foresaw this, and, through the Evangelists, prepared the weapons for Christian warriors. //Now is My soul troubled//. Would the Lord feel sorrow if He were not a true man, subject to all the weaknesses of the physical nature except sin? And He would feel not only sorrow, but also fear: //Father, save Me from this hour!//This is said by weak human nature which fears death (for this is about death). However, His human nature was not sinful, but sinless, for our Lord immediately adds: //But for this cause came I unto this hour.// Do you see how important the death of Christ is? By it we are redeemed, and by it we are saved. Therefore, let no one stop at the teachings of Christ; rather, let him take himself to Golgotha, and observe with horror the bloody sacrifice on the Cross that was offered for our sins--for our salvation from the foul jaws of the serpent of the netherworld.
O Lord Jesus Christ, Who suffered for our sake and for the sake of our salvation--have mercy on us, again and again.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR MAMAS
He was born in Paphlagonia of renowned Christian parents, Theodotus and Rufina. His parents were cast into prison for Christ's name. His father died first in prison, and as soon as Rufina bore Mamas, she also died. Thus the newborn child was left alone between the dead bodies of his parents. However, God the Provider sent an angel to a noble widow, Ammia. Ammia saw the angel in a dream: he told her to go to the prison and take the child in. The local eparch granted Ammia permission to bury the dead and to take the child to her home. When Mamas reached his fifth year, he began to talk and his first word was "Mama!''--for which he received the name "Mamas.'' In school, Mamas displayed unusual intelligence, and as he had been reared in a Christian spirit, he did not hide his faith, but confessed it to the other children and laughed at the idols. During the reign of Aurelian there was a bitter persecution of Christians. The pagans did not even spare the Christian children. Mamas was fifteen years old when he was brought before the emperor. The emperor told him that he needed only to deny Christ verbally. Mamas replied: "Neither in my heart nor with my lips will I renounce my God and King, Jesus Christ.'' The emperor ordered him to be beaten, burned with torches, and finally thrown into the sea. But an angel of God saved him, and took him to a high mountain near Caesarea. There he lived in solitude and prayer. Even the wild beasts were tamed by his sanctity. He was finally discovered by his persecutors and subjected to torture again. When he had overcome torture both by fire and by wild beasts, St. Mamas was run through with a trident by a pagan priest. Thus he gave his holy soul to God, to Whom he had been faithful during all of his tortures. From his relics many healings of the sick have taken place.
! SAINT JOHN THE FASTER, PATRIARCH OF CONSTANTINOPLE
He is also celebrated on August 30. He was at first a goldsmith, but because of his great and many acts of mercy--and by God's providence--he was ordained a priest. Once, when he was a young man, John was walking with Eusebius, an old monk from Palestine. Suddenly, a bodiless voice spoke to Eusebius: "Abba, do not walk to the right of the great John.'' It was the voice of God, foretelling the great service to which John would shortly be called.
After the Blessed Eutychius, John was chosen to be Patriarch of Constantinople. He did not want to accept this but, having been frightened by a certain heavenly vision, he accepted. He was a great faster, intercessor and miracle-worker right up to his death. He reposed in the year 595 A.D. After his death, his only personal possessions were found to be a wooden spoon, a linen shirt and an old garment. His writings on repentance and confession are well known.
! SAINT ELEAZAR
Eleazar was the son of Aaron, and second in order of the high priests of Israel. He assisted Moses during the census of the people of Israel, and assisted Joshua the son of Nun in apportioning the Promised Land among the Twelve Tribes. He faithfully guarded the Ark of the Covenant in Shiloh and reposed peacefully.
! THE FEAST OF THE MIRACLE OF THE KALUGA ICON OF THE MOTHER OF GOD.
[See the "Reflection'' below.]
! HYMN OF PRAISE
! The Holy Martyr Mamas
Mamas the pious was born in prison,
And was kindred with Christ from his first day;
His father and mother, martyrs for God,
Birthed their only child in prison darkness.
For fifteen years, orphaned Mamas
Was alone in the prison of the world.
His only comfort and his only light
Shone upon him from the countenance of the Son of God:
This was his fulfillment and his wealth.
Mamas glorified Christ his God,
He glorified Him in word and in deed
By his prayerful soul and innocent body.
His friendship with God was more dear to him
Than the devious world that torments and lies.
He loved God and His pure Christ
And he became a friend to pure nature--
To the wilderness and forest and wild beasts,
To wild goats and fierce lions.
And God endowed his friend
With wondrous gifts of the Holy Spirit.
And Mamas shamed his persecutors,
And turned many torturers to Christ.
The emperor and the empire were against this boy,
But the right hand of God sustained him--
And, enduring torments, Mamas glorified the Savior.
The emperor and the empire collapsed to nothing,
While Mamas reigns, even now, with Christ,
And rejoices with the angels of God in heaven.
! REFLECTION
The life of the Orthodox Church provides us with numerous examples of how Almighty God manifests His power through small and lifeless things--especially those things that serve as signs of the Incarnation, life and suffering of our Lord Jesus Christ. Such things include the Cross, icons of the Theotokos and the saints, holy water, oil, myrrh, and so forth. For example, a miracle was wrought through an icon of the Holy Mother of God in the year 1748 A.D., in the home of a boyar named Khitrov, near the Russian city of Kaluga. Two of the boyar's servants, rummaging in Khitrov's attic one day, came upon a rolled-up piece of cloth that depicted the beautiful image of a woman's face. The image emanated holiness and piety. One of the servants was humble and modest, while the other was vain and talkative. The former, looking at the image on the cloth, called it "The Abbess.'' Evdokia--the vain and talkative one, whose name we know--did not honor this name, but coarsely mocked her humble companion. To give even more force to her vulgarity, she spat on the painting. At that instant Evdokia fell to the ground, writhing with her whole body, blind and dumb, and began foaming at the mouth. That night the Theotokos appeared to the parents of the unfortunate girl, and told them what had happened to their daughter. She told them to get a priest and have him pray before the image that had been found and sprinkle the girl with holy water, and then she would be healed. When this was done, Evdokia was healed, and from then on she amended her disposition and was more modest. Thus was a miracle-working icon of the Holy Theotokos discovered. This icon was taken to a church in Kaluga, where it can be found today, still working miracles.
! CONTEMPLATION
Contemplate God's punishment of David for his adultery and murder (II Samuel 12):
# How God, speaking through the prophet Nathan, told David that because he took another's wife, his own wives would be taken by other men;
# That his son would die;
# That the sword would not depart from his house--all of which came to pass.
! HOMILY
! on the Word of God, the Creator of the world
It [the Word] was in the beginning in God. Everything came into existence by Him (John 1:2-3). //)
Brethren, the Evangelist is speaking of the wondrous Logos of God, of the rational, intelligent Word, of the eternal Wisdom of God, of the co-eternal Son of God. This wondrous Word is of one Essence with the Father and the Holy Spirit, yet hypostatically different from the Father and the Spirit, for He was begotten of the Unbegotten Father. He always was, is, and shall be. When was the Word in God? The Evangelist says: //In the beginning//. What does //In the beginning//mean? It means the same as "first'' or "first of all.'' So, first of all, the Word of God was in God, and has always been of one being with the Father, and has always been the Son, in hypostasis, but not yet incarnate. Later, the Word of God became incarnate, and appeared in a body for the sake of mankind. When He was still the unincarnate Word in God, //everything came into existence by Him//. Heaven and earth, and the whole inhabited heavenly and earthly worlds--//everything came into existence by Him//, by the Word of God, when He was in God, and not yet incarnate. Without the Word of God, no created thing came into existence. He was Life and Light, and the Light shone in darkness, //and the darkness comprehended it not// (John 1:5). First of all, death and sin represent darkness. That darkness did not overcome the Son of God. The whole created world itself is darkness before God, yet in this darkness shines the Word of God, the Wisdom of God, rational, intelligent and majestic. All of creation would be in utter darkness if the mystical light of the Son of God--by Whom all things were created--did not illuminate it.
//It [the Word] was in the beginning in God//--then what happened? //And the Word was made flesh// (John 1:14). The history of the creation of the world leads up to this point, and from this point the history of man's salvation begins. In taking on flesh, the Word of God did not estrange Himself from God the Father and God the Holy Spirit--for the Divine Trinity is undivided--but, rather, He clothed Himself in the body and soul of man, so that, in the shadow of the body, He, the Sun of suns, could draw near to men and save men
O my brethren, how sweet and inexpressibly wonderful is the mystery of the Incarnation of God. If we embrace this mystery with our heart, it will be easier to approach it with our mind.
O Lord, gentle Savior, the glory of the Father and the joy of the Holy Spirit, have mercy on us and save us.
To Thee be glory and praise forever. Amen.
---------------------------
//) According to the Slavonic text.
! THE HOLY GREAT-MARTYR EUSTATHIUS (PLACIDAS)
Eustathius was a great Roman general during the reigns of Emperors Titus and Trajan. Though he was a pagan, Placidas (for that was his pagan name) was a just and merciful man, similar to Cornelius the Centurion, who was baptized by the Apostle Peter (Acts 10). Out hunting one day, he pursued a stag. By God's providence, a cross appeared between the antlers of the stag and the voice of the Lord came to Placidas, directing him to go to a Christian priest and become baptized. Placidas was baptized, along with his wife and two sons. At baptism, he received the name Eustathius; his wife, Theopiste ("faithful to God"); and his sons, Agapitus and Theopistus. After his baptism, he returned to the place where he had experienced the revelation of the stag and, kneeling, gave thanks to God that He had brought him to the truth. Just then, the voice of the Lord again manifested itself to him, foretold that he would suffer for His name, and strengthened him. Then Eustathius secretly left Rome with his family, intending to hide among the simple people and serve God in humble and unknown surroundings. Arriving in Egypt, he was immediately beset by trials. An evil barbarian abducted his wife, and both of his sons were seized by wild beasts and carried away. However, the barbarian soon lost his life, and the children were saved from the wild beasts by shepherds. Eustathius settled in the Egyptian village of Vadisis and lived there for fifteen years as a hired laborer. Then barbarians attacked the Roman Empire, and Emperor Trajan grieved that he did not have the brave General Placidas, who had carried the victory whenever he fought. The emperor sent two of his officers to seek the great commander throughout the empire. By God's providence, these officers (who were once companions of Eustathius), came to the village of Vadisis, found Eustathius and brought him back to the emperor. Eustathius amassed an army and defeated the barbarians. On the way back to Rome, Eustathius found his wife and both sons. Meanwhile, Emperor Trajan had died and Emperor Hadrian was on the throne. When Hadrian summoned General Eustathius to offer sacrifices to the gods, Eustathius declined, declaring himself a Christian. The emperor subjected him and his wife and sons to torture. They were thrown to the wild beasts, but this did them no harm. Then they were cast into a red-hot metal ox. On the third day their dead bodies were removed, but they were unharmed by the fire. Thus, this glorious commander rendered unto Caesar the things which are Caesar's, and unto God the things that are God's (Luke 20:25), and took up his habitation in the Eternal Kingdom of Christ our God.
!
# SAINT MICHAEL THE PRINCE AND SAINT THEODORE THE BOYAR
Prince Michael of Chernigov visited the Tartar horde with Theodore, his Boyar, at the invitation of Khan Batu. Since they refused to follow the Tartar custom of passing through fire and worshiping idols before gaining audience with the king, they were beheaded. This occurred in the year 1244 A.D. Their relics, witnesses of their martyric death for Christ the Lord, repose in the Church of the Archangel in Moscow.
! THE VENERABLE MARTYR HILARION
Hilarion was an Athonite monk. He willingly suffered for the Christian Faith at the hands of the Turks in Constantinople on September 20, 1804 A.D. His miracle-working relics repose in the Church of the Transfiguration on the island of Proti.
! HYMN OF PRAISE
!
! THE HOLY GREAT-MARTYR EUSTATHIUS
!
Eustathius, a wonder among generals,
Gave his life for the Living Lord.
Authority and glory and royal honor
He discarded as refuse and chaff,
For the sake of Christ, the Immortal King,
For the sake of true eternal life.
When the voice of Jesus greeted him,
He was infused with ardent love
For Christ the All-glorious God--
The All-glorious Lover of Mankind.
That voice remained deep in his soul,
And the world could not drown it out;
And the radiant cross which the general saw,
Never left his soul.
The Cross gave him wondrous fearlessness.
The Cross saved him from the enemy's power,
And saved his spouse, faithful as a rock,
And his children, heroic and virtuous.
Eustathius gave his body over to the fire,
And his blessed spirit to the Lord.
O Eustathius, glorious martyr,
Invincible soldier of Christ,
Help and strengthen the Church of God
That the malicious demon not slander it.
Let the Church shine as a star,
And glorify her Sun, Christ.
!
REFLECTION
Suicide is a mortal sin and an act of defiance against the Holy Spirit, Who gives life. Suicide is a much greater sin than murder, since for the sin of murder a man can still repent; but for the sin of suicide there is no repentance. Here are two examples of overwhelming misfortune, in the face of which a fainthearted man would commit suicide, yet in which holy men of God showed themselves to be heroes.
St. Eustathius found himself in the following predicament: he left one of his sons on the bank of a river, while he carried the other son to the opposite bank and returned for the first son. Halfway back across the river, he saw that a lion had seized his son and carried him away. He looked at the other bank and saw a wolf seize the second son and carry him away. A fainthearted man in such a situation would have drowned himself in the water, and made an end to his life. Even though drowning in sorrow, Eustathius did not commit suicide, but with hope in God lived as a hireling for fifteen years. This patient man lived to see his two sons again. Thus, God rewarded his faith and patience.
As a young man, St. Hilarion was forced to become a Moslem, but his conscience began to torment him cruelly, and he had no peace at all. He returned to the Christian Faith, was tonsured a monk, and gave his body over to intense fasting and every difficult ascetic labor. Even so, his peace of soul did not return to him. A fainthearted man of little faith would have committed suicide. But Hilarion chose an incomparably better path. He went to Constantinople with his spiritual father Bessarion, and not only openly confessed the Christian Faith at the sultan's court, but even counseled him to go to Russia and be baptized. After being subjected to mockery and torture, this courageous young man was beheaded, and God glorified him both in heaven and on earth. Even today, his holy relics are miracle-working. But where is the glory of those who commit suicide? Where are their relics?
! CONTEMPLATION
Contemplate the righteousness of King Jehoshaphat, and God's reward (II Chronicles 17):
# How Jehoshaphat was zealous for God's truth, and how he destroyed the idols in his land;
# How God granted him riches, glory, peace and victory over his enemies.
! HOMILY
! on the only Way, Truth and Life
I am the Way, the Truth, and the Life: no man cometh unto the Father, but by Me (John 14:6)
Brethren, these words were not merely spoken, but were soaked with blood, confirmed by the Resurrection, instilled by the Holy Spirit in the hearts of the faithful, and proven again and again by the Church through ages and ages. Of all the treasures on earth, men love life the most--and they love life more than they do truth, even though there is no life without truth. Thus, the highest good is life, but truth is the foundation of life. He who loves life, must also love truth. But where is the way to truth? Our Lord says: I am the Way. He did not say: "I am a way,'' so that none would think there is another way to truth besides the Lord Jesus. And He is not only the Way, but also the Truth and the Life, so that none would think that there is some other truth and some other life besides the Lord Jesus. For this He was born as a man, to show men the way; for this He was crucified, to mark the way by His blood. No man cometh unto the Father, but by Me. This addresses those who deceive themselves by thinking that they can know God and acquire the Kingdom of God without the Lord Jesus Christ. The Lord entirely cut off this false hope and desperate self-deception by these words. The apostle who heard and wrote these words in the Gospel, expressed them in his Epistle in this way: Whosoever denieth the Son, the same hath not the Father (I John 2:23).
O Blessed Lord Jesus Christ, Source of all blessings--truly Thou art for us the only Way, the only Light, the only Truth, the only Life and Life-giver. We acknowledge Thee before men and angels as our only God and Savior. Have mercy on us and save us.
To Thee be glory and praise forever. Amen.
! THE HOLY APOSTLE QUADRATUS
Quadratus, one of the Seventy, was a disciple of the Great Apostles. He preached the Gospel in Athens and was at first bishop of Athens after St. Publius, and afterward bishop of Magnesia. Quadratus was highly educated in secular wisdom, and rich in the grace of the Holy Spirit. His biographer says of him: //He was as the morning star among the clouds// (Sirach 50:6). The clouds were the darkness of Hellenic paganism, without the light of piety. The Holy Apostle Quadratus, through the word of God, shone upon the Hellenes as a great light, illuminating the darkness, destroying the foul sacrifices, crushing the idols, and destroying the demonic temples by his prayer. However, darkness always hates the light, and the pagans hated holy Quadratus. First they stoned him, as once the Jews did St. Stephen. Then they threw him into prison and gave him no bread until he gave up his holy soul, and went to dwell in the Kingdom of Christ, his God.
St. Quadratus wrote an Apologia for Christianity and gave it to Emperor Hadrian. This Apologia had such an effect on the pagan emperor that he ordered that Christians not be persecuted without specific cause. St. Quadratus suffered in about the year 130 A.D. He is buried in the city of Magnesia, where he suffered.
! THE HIEROMARTYRS HYPATIUS, BISHOP OF EPHESUS, AND ANDREW THE PRESBYTER
Both Hypatius and Andrew were born in Lycia, and were friends from childhood. When they matured, both of them dedicated themselves wholeheartedly to the service of God--Hypatius as a strict monk and ascetic, and Andrew as a priest among the people and a preacher of God's word. Because of their great virtues, Hypatius was consecrated bishop of Ephesus, and Andrew was ordained a presbyter. Both suffered martyrdom under the reign of the iconoclast Emperor Leo the Isaurian. After horrible tortures for holy Orthodoxy they were beheaded in 730 A.D., and passed from this transitory life to life eternal.
! SAINT DIMITRI, BISHOP OF ROSTOV
St. Dimitri's life is celebrated on October 28, but today we commemorate the finding of his miracle-working relics in 1752 A.D.
! THE SYNAXIS OF THE SAINTS OF THE MONASTERY OF THE KIEV CAVES
The blessed work of asceticism begun by the industrious and great God-pleaser Anthony grew throughout the centuries like a fruitful olive tree. The numerous saints who shone as stars in Anthony's Caves are each celebrated on their own day. Today, however, the whole assembly of them is commemorated together and called upon by the faithful for aid.
! HYMN OF PRAISE
!
! THE HOLY APOSTLE QUADRATUS
St. Quadratus, like the morning star,
Shone forth the light of the Holy Gospel,
Shone forth rays through the thick darkness,
And grace upon empty hearts.
Quadratus dispelled the confusion of men's thoughts,
Illumining the forebodings in men's hearts,
Illumining them with the light of Christ,
And enlightening the world with Christ's wisdom.
Unbelievers converted to the Most-high God,
And received cruel wounds for Christ.
To Hadrian, the persecutor of the Cross,
Quadratus wrote a great defense
With the eloquence and the skill of the Hellenes
And the simplicity of Christian truth.
Quadratus succeeded: the emperor was persuaded
To protect the Holy Church from evil.
O Quadratus, Christ's disciple,
Wise defender of the Holy Church,
In word and deed, you were God's servant--
With unfading glory, you are now crowned!
To you, we Christians pray fervently:
Help us, O holy Apostle!
Help us to overcome misfortunes,
And to endure all sufferings for Christ.
! REFLECTION
If only we begin with the firm intention to live according to God's law, we need not be afraid of any assaults by unreasonable men. For he who truly begins to live according to God's law finds that all things done to him by men happen for his benefit, and to the glory of God. One especially need not fear being compelled to move from a place that he loves to a place that he doesn't care for. Instead of empty fear and fruitless lamentation, it is better to seek out God's intention for us. What harm did the evil actions of Joseph's brothers do to him? Did not his involuntary departure to Egypt glorify him, save his brothers from famine, and create the necessary conditions for all the wondrous things God worked through Moses in Egypt and in the wilderness? The pagans and heretics often drove Orthodox Christians into barbarian regions. What did they accomplish by that? Did they destroy Orthodoxy? No--rather, they strengthened it even more in the souls of the persecuted, and spread it among the barbarian peoples. The evil heretic Lucius exiled the glorious Macarius, with several Tabennisiot ascetics, from Egypt to a barbarian island, where the entire population worshiped idols. But by the teachings and example of these holy men, the entire populace of the island was soon baptized. That island was later renamed the "Island of Repentance.''
! CONTEMPLATION
Contemplate God's miraculous saving of Jerusalem because of the righteousness of Jehoshaphat (II Chronicles 20):
# How a multitude of Moabites and Ammonites set off against Jerusalem;
# How King Jehoshaphat prayed to God, and it was revealed to him through the prophet that //the battle is not yours, but God's// (II Chronicles 20:15);
# How the Moabites and the Ammonites fought among themselves, and perished to the last man.
! HOMILY
! on the divinity of the Son and His unity of Essence with the Father
He that hath seen Me hath seen the Father (John 14:9).
//Philip saith unto Him, Lord, show us the Father, and it sufficeth us//(John 14:8). To these words, the Lord Jesus replied: //Have I been so long time with you, and yet hast thou not known Me, Philip? He that hath seen Me hath seen the Father// (John 14:9). Thus replied the Lord to His disciple. Philip wanted to see God with his bodily eyes. Yet, for three years he looked upon Christ, and did not recognize Him as God. Why? Because, before the descent of the Holy Spirit, Philip looked with the body at the body. In other words, he perceived with bodily eyes, and saw the Lord Jesus Christ as a man. He still had not seen the divinity in the Son of God Incarnate, and yet he sought to see God the Father! //He that hath seen Me hath seen the Father//. By this the Lord did not want to say that He was God the Father, but that He and the Father are of one Essence. Insofar as God could reveal Himself to men, He revealed Himself through the Son, who appeared to men as a man. God the Father did not become incarnate; God the Holy Spirit did not become incarnate; but God the Son did become incarnate. How, then, could He show His Father to the bodily eyes of a mortal man? This is precisely why the Son became incarnate, to reveal Himself to men--Himself, the Father, and the Holy Spirit: consubstantial unity, in three Persons. //He that hath seen Me hath seen the Father//. Here, the Lord speaks of His divine nature. In that, he is completely equal and of one Essence with the Father. So it is that, had Philip perceived the divine nature of Christ, he would not have made the request: //Show us the Father//. Naturally, he could not have seen the divine nature, as it is spiritual and invisible; but he could see--and see clearly--the great works of Christ as a manifestation of His divine nature. Brethren, even today, some men say: "Show us God and we will believe!" We should say to them: "Behold, we show you the Lord Jesus--believe!" "I have been with you for nineteen centuries, O men, and have you not recognized Me?" Nineteen centuries filled with His glory, miracles, power, grace, mercy, saints and martyrs! And there are still imbeciles who ask: "Where is God?"
O Lord Christ our God, open the spiritual eyes of those who still do not see, that they may see the majesty of Thy glory.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR PHOCAS, BISHOP OF SINOPE
Phocas exercised himself in all the Christian virtues from his youth. As bishop in his birthplace, the town of Sinope on the shores of the Black Sea, he strengthened the faith of the true believers by his example and divine words and converted many idol-worshipers to the true Faith. The hard-hearted pagans were filled with rage against holy Phocas. Through a vision granted him by the Lord, he foresaw his martyrdom: Phocas saw a white dove fly down from heaven carrying a beautiful wreath of flowers in its beak, and lowered the wreath onto his head. And Phocas heard a voice, saying: "Your cup is full and you should drink it!" From this vision the God-pleaser realized that he was soon to suffer for Christ. He was not afraid, but with gratitude toward God prepared himself for suffering. Soon after, a certain prince, Africanus, took Phocas for interrogation, and subjected him to harsh tortures. The torturers beat and wounded his whole body, and after a time of imprisonment threw him into boiling water, where this brave soldier of Christ ended his earthly life and settled in the joy of his Lord. Phocas suffered during the reign of Emperor Trajan.
! THE HOLY PROPHET JONAH
Jonah lived more than eight hundred years before Christ. It is said that he was that son of the widow of Zarephath in Sidon whom the Prophet Elias had raised from the dead. By his three-day sojourn in the belly of the whale, he prefigured the three days that Christ lay in the tomb; and, by his deliverance from the belly of the whale, he prefigured the Lord's Resurrection from the dead. Everything else concerning this wonderful prophet can be read in the Book of Jonah.
! THE HOLY MARTYR PHOCAS THE GARDENER
Phocas was a compatriot of the Hieromartyr Phocas. He had a garden in Sinope, near the Black Sea, that he himself cultivated. He treated all passers-by with the fruits of his garden, not missing an opportunity to feed their souls with the word of God. But a certain prince who persecuted Christians heard of him, and sent soldiers to kill him. Phocas treated the soldiers so cordially that they hesitated to kill him. However, by his own insistent request, they carried out the command and beheaded him. In that place, over his miracle-working relics, a church was soon built in his name. St. Phocas is especially venerated by sailors, and is invoked for help by all who travel by sea. Phocas suffered in the year 320 A.D.
! THE VENERABLE COSMAS OF ZOGRAPHOU
Cosmas was of a noble family from Bulgaria. When his parents wanted him to marry, Cosmas fled to Mount Athos. He was a hermit and miracle-worker. He labored ascetically in a cave near the Monastery of Zographou. The Holy Theotokos appeared to him on more than one occasion. He is known as the greatest ascetic and miracle-worker of Zographou. The formidable cell in which Cosmas labored in silence and struggled with demons exists even today to the northwest of the Monastery of Zographou. With spiritual sight and clairvoyance, he described events in distant times and places. He died in old age, on September 22, 1323 A.D., and after a life of much labor took up his habitation in the joy of his Lord.
! SAINT PETER THE MERCIFUL
Peter was a God-pleaser of the sixth century. (See "Reflection" below.)
! SAINT JONAH THE PRESBYTER
Jonah was the father of St. Theophanes, the writer of canons, and St. Theodore the Branded. Jonah was a miracle-worker and died in the Monastery of St. Sava the Sanctified in the ninth century.
! HYMN OF PRAISE
! THE HOLY PROPHET JONAH
Nineveh! Nineveh resounds with sin,
And God sends Jonah to heal Nineveh.
Jonah does not want to, and flees from God!
Oh, where will you go, Jonah, to hide from the Most High?
Jonah sleeps; he sleeps and the tempest rises.
God moves slowly, but He will find you in time.
Hurled into the waves, swallowed by the whale,
"From whom did I flee?" Jonah asks himself.
"I fled from Him, from Whom one cannot hide!"
God chastises Jonah and yet delivers him,
And, by His providence, glorifies him forever.
Jonah, you do not want to speak to the Ninevites,
But through your punishment you will prophesy the immortal Christ.
You do not want to by words? Then you must, by deeds,
Prophesy Christ and the death and resurrection of the body!
Your deeds, Jonah, will not fade away,
And Christ the Lord will speak of you to men,
That, through you, the mercy of the Living God might be revealed,
By which you will be saved, as well as Nineveh.
Through you, the power of repentance shall be revealed--
The power of repentance and God's forgiveness.
You pitied the gourd, and God pitied men.
Help us to repent, O God, and save us from condemnation.
! REFLECTION
When a man clearly senses God's mercy toward him, he is startled, as from a dull and senseless dream, and becomes ashamed of his long blindness to God's unceasing compassion. In the time of Emperor Justinian, the chief imperial tax collector in Africa was a certain Peter, a very wealthy but very hard and merciless man. The beggars grumbled among themselves, that not one of them had ever received alms from Peter. Then, one of them bet that he would succeed in getting alms from Peter. He persistently begged alms of the miser until Peter, in a rage, hit him with a loaf of bread, since he had nothing else close at hand. Joyfully the beggar took the bread and fled. Immediately after this Peter became seriously ill and had this vision: He was being interrogated by demons in the other world. There was a scale, and on one side of it, the demons heaped Peter's sins, making that side extremely heavy. On the other side--which was empty--angels stood, sorrowing that they had not even one good deed in Peter's life to help balance the scale. One of them said: "We have nothing to place on the scale except one loaf of bread, with which he struck a beggar the day before yesterday." The angels placed this one loaf of bread on the empty side of the scale, and that loaf of bread outweighed the other side of the scale, laden with all of Peter's sins. When the vision was over Peter said to himself: "Indeed, this was not an apparition but the living truth, for I saw all my sins from my youth. And when I can be helped so much by one loaf of bread that I threw at a beggar, how much help would I receive from many deeds of almsgiving, performed from the heart and with humility?" And from that time, Peter became the most compassionate man in his town. He distributed all of his possessions to the poor, and when he had finished distributing his possessions, he sold himself into slavery for thirty gold pieces and distributed even his own price as a slave to the poor as alms in the name of Christ. He was, thereafter, called Peter the Merciful.
! CONTEMPLATION
Contemplate the wrath of God against King Jehoshaphat (II Chronicles 18-20):
# How Jehoshaphat allied himself with the apostate King Ahab, and almost perished;
# How he allied himself with King Ahaziah, and again suffered a great loss;
# How God does not wish the faithful to unite with unbelievers.
! HOMILY
! on God the Holy Spirit, the Comforter
And I will pray the Father and He shall give you another Comforter, that He may abide with you forever (John 14:16).
Brethren, where there is love, there are no commands; requests take the place of commands. Among those who love one another, a request has greater power than does a command among those who do not love. The Holy Trinity represents the supreme kingdom and majesty of love. Isaiah refers to the Holy Trinity as //Mighty Counsel//(Isaiah 9:6) and the Incarnate Son of God as //Angel of Great Counsel//--that is, messenger. How does this counsel relate to the unity of God? You yourself are one being, but you still take counsel with yourself. Your mind asks your will, "Can you?" and asks your heart, "Do you want to?" And the will and the heart ask your mind: "Do you know how?" And, yet, even with this internal counseling with yourself, you are still one--one man, one person. Naturally, this is but a pale illustration and shadow of the Holy Trinity and Their perfect counsel, for there is complete equality and harmony of Persons in the Holy Trinity. That which the Father wills, the Son and the Holy Spirit immediately will. //And He shall give you another Comforter//. See how confident the Son of God is--that whatever He would request and counsel would immediately be confirmed in the great Divine Counsel? The Father will agree to send, and the Spirit will agree to be sent. The Son of God does not say: "I will pray to the Father to give you, and I believe that He will give you." Rather, He says: "I will pray and He will give you." He knows in advance that the Father will give what He asks. He knows this--if it can be thus said--from His own eternal experience. For through all eternity harmony reigns, has reigned and will reign between the Father and the Son and the Holy Spirit. //He shall give you another Comforter//. By these words, the complete equality of the Son and the Holy Spirit is revealed. In other words, "The Father will send you //another Comforter//--equal in power with Me, of one Essence with Me and equal in honor with Me. He will be able to fully act for Me in His way in accordance with His Divine Person, which is uniquely different from My Person as the Son."
O my brethren, do you see how the undivided Holy Trinity participates in our salvation? Do you see Whose we are? Do you see what dignity is given to us mortal and sinful ones? O Most-holy and Most-glorious Trinity our God, have mercy on us and save us.
To Thee be glory and praise forever. Amen.
! THE CONCEPTION OF SAINT JOHN THE BAPTIST
On this day the mercy, miracles and wisdom of God are celebrated: His mercy toward the devout and righteous parents of St. John, the aged Zacharias and Elizabeth, who all their lives had wished for and begged a child from God; His miracle, that of John's conception in the aged womb of Elizabeth; His wisdom, in the dispensation of man's salvation. God had an especially great intention for John: namely, that he be the Prophet and Forerunner of Christ the Lord, the Savior of the world. Through His angels, God announced the births of Isaac to the childless Sarah, Samson to the childless wife of Manoah, and John the Forerunner to the childless Zacharias and Elizabeth. All of these were those for whom He had special intentions, and he foretold their birth through his angels. How could children be born of aged parents? If someone desires to understand this, he should not ask men about it, for men do not know; nor should he study natural law, for this is beyond natural law. Rather, he should turn his gaze upon the power of the Almighty God, Who created the whole world from nothing, and Who needed no parents--old or young--for the creation of the first man, Adam. Instead of being curious, let us give thanks to God, Who often reveals His power, mercy and wisdom to us in ways that are beyond natural law--in which we would be imprisoned without these special miracles of God, and would fall into despair and forgetfulness of God.
! THE HOLY FEMALE MARTYR IRAIDA
In some places Iraida is called Rhais or Raida. She was a maiden from the town of Batan in Egypt, and was therefore probably an Egyptian. Once, Iraida went out to draw water from a well near the sea, and saw a ship laden with bound Christians: priests, deacons, monks, women and maidens. Inquiring, she learned that all of these people were being transported by the pagan persecutors to torture and death for the name of Jesus Christ. Young Iraida's heart suddenly flared up with the desire to suffer for the Lord. Leaving her pots by the well, she boarded the ship and confessed that she too was a Christian. They immediately bound her with the others and took them all to the Egyptian city of Antinopolis. After various tortures, Iraida was the first to be beheaded, followed by the others. She suffered honorably and was glorified at the beginning of the fourth century.
! THE HOLY NEW MARTYR NICHOLAS PANTOPOLIS
As a young man, Nicholas suffered for the Christian Faith at the hands of the Turks in Constantinople in 1672 A.D. His father had come to Constantinople from Thessaly and, as his father owned a variety shop, he was called Pantopolis. After much pressure to become a Moslem, and after much torturing because he refused, Nicholas was beheaded and took up his abode in the Kingdom of God. His relics repose in the Monastery of Xeropotamou, on the Holy Mountain.
! THE HOLY NEW MARTYR JOHN
John was born in a place called Konitsa in Albania. He was a Moslem of Moslem parents. After witnessing the miraculous power of the Christian Faith in various places and situations, he accepted baptism. For this, he was denounced and brought before the Turkish court. Tortured by the Turks for the Christian Faith in Aitolia, he was beheaded in the year 1814 A.D. Before his death, John cried out: "Remember me, O Lord, in Thy Kingdom!"
! HYMN OF PRAISE
!
! THE HOLY MARTYR IRAIDA
Virtuous virgin Iraida went to fetch water,
And returned not to her mother, but went to the Lord.
Iraida sought suffering willingly;
Christ the Lord was more precious to her than was her mother.
A boat full of martyrs was ready to depart.
"Receive me also!" Iraida quickly cried.
"I too am a servant of Christ, for He is everything to me,
And I wish to be an instrument of His hymn,
A song of torture and suffering for the truth.--
Oh, receive me, let me perish!"
And Iraida perished for her God,
And was made an heir of life eternal.
By her prayers, O Lord, now save us also.
Thanks be to holy Iraida, and glory to God!
! REFLECTION
He who gives to the poor, gives to Christ. This is the meaning of the Gospel teaching, and it has been confirmed in the experience of the saints. Upon his repentance, Peter the Merciful gave alms to the poor wherever the opportunity presented itself. On one occasion Peter encountered a shipwrecked man who had barely managed to save his naked body from the wreck. The man begged him for some clothing. Peter removed his costly cloak and clothed the naked man with it. Shortly afterward, Peter saw his cloak in the shop of a merchant, who had it displayed for sale. Peter was very saddened that the shipwrecked man had sold his cloak instead of using it for himself. Peter thought: "I am not worthy; the Lord does not accept my alms." But later, the Lord appeared to him in a dream. He appeared as a handsome man, brighter than the sun, with a cross on His head, wearing Peter's cloak. "Peter, why art thou sad?" asked the Lord. "My Lord, why would I not be sad, when I see that which I gave to the poor being sold at the market?" Then the Lord asked him: "Dost thou recognize this garment on Me?" Peter replied: "I recognize it, Lord; that is my garment with which I clothed the naked man." Then the Lord spoke to him again: "Therefore do not be sad; thou gavest it to the poor man, and I received it, and I praise thy deed."
! CONTEMPLATION
Contemplate the sins of King Jehoram and God's punishment of him (II Chronicles 21):
# How Jehoram slew all his brothers, and restored idolatry in the groves and the hills;
# How his enemies plundered and enslaved the land;
# How he was smitten with a grave illness of the bowels and died, and no one mourned for him.
! HOMILY
! on God the Holy Spirit, Who proceedeth from the Father
But when the Comforter is come, Whom I will send unto you from the Father, even the Spirit of Truth, which proceedeth from the Father, He shall testify of Me (John 15:26).
Brethren, the depths of the Essence of God are unfathomable. But God has neither hidden all from us, nor did He reveal all to us. He has revealed to us as much as our weakness can bear, and as much as is necessary for our salvation. Concerning the Holy Spirit, it has been revealed to us that He //proceedeth from the Father//and is sent by the Son. Let no one seek further, lest they fall into error. Since He //proceedeth from the Father//, He is of one Essence with the Father; since He is sent by the Son to continue the Son's work, He is equal to the Son. The Lord said earlier: //The Father … beareth witness of Me// (John 8:18); and now He says of the Spirit of Truth that //He shall testify of Me//. Both these witnesses are the same; that is why the Lord cites one at one time and the other at another time. He Who has borne witness and He Who will bear witness are equal in Essence--for the Lord would not have the witness for the future be less than the witness for the past. Thus, we are speaking in human terms with regard to time; but in reality, the Three bear witness eternally in heaven, according to the words of the Evangelist: //For there are Three that bear record in heaven, the Father, the Word, and the Holy Spirit: and these Three are One// (I John 5:7).
There are men who assert that the Holy Spirit proceeds from the Father and the Son. Who revealed this to them, and when? We know that the Holy Spirit proceeds from the Father, for that was revealed to us by the Son of God, our Lord Jesus Christ. Therefore, we reject such an addition to our Orthodox Faith, as it does not agree with the words of the Lord Himself. Yet, if we are to truly understand the words of the Most-pure Lord, our hearts must be made very pure. Therefore, we must make more of an effort to cleanse our hearts from passions, rather than obeying vain curiosity by prying into the endless depths of God's being with unclean hearts--for those who do that fall into heresy and lose their souls.
O Lord God, great and mighty, we thank Thee that Thou hast come to us through our Savior Jesus Christ; and thereby, we know that we are not the children of darkness, but rather the sons of light.
To Thee be glory and praise forever. Amen.
! THE HOLY FEMALE PROTOMARTYR THECLA, EQUAL TO THE APOSTLES
Thecla was born in Iconium of eminent but pagan parents. As a girl of eighteen, she was betrothed to a young man at the same time that the Apostle Paul arrived in Iconium with Barnabas to preach the Gospel. Hearing Paul's testimony for three days and nights, Thecla converted to the Christian Faith, and vowed to live in virginity. Her mother, seeing that she was now ignoring her betrothed and no longer thought of marriage, tried to dissuade her, and then beat her and tortured her by starvation. Finally, this wicked mother turned Thecla over to the judge and demanded that Thecla be burned. The judge threw her into the fire, but God preserved her unharmed. Then, Thecla followed the Apostle Paul, and went to Antioch with him. Attracted by Thecla's external beauty, a certain elder of the city wanted to take her for himself by force, but Thecla escaped his grasp. The pagan elder accused her to the eparch as a Christian who disdained marriage. The eparch condemned her to death, and had her thrown to wild beasts, but the wild beasts did not touch the body of this holy virgin. Amazed by this, the eparch asked her: "Who are you and what kind of power is in you, that nothing can harm you?" Thecla replied: "I am a servant of the Living God." The eparch then released her, and she departed to preach the Gospel. She succeeded in converting many to the true Faith, among whom was Tryphena, a prominent and honorable widow. Then, having received the blessing of the Apostle Paul to do so, Thecla withdrew to a secluded place near Seleucia. There she lived a life of asceticism for a long time and, by healing the sick with wonderworking power, she converted many to Christianity. The doctors and soothsayers in Seleucia were envious of her, and sent some young men to defile her, hoping that the loss of her virginity would also mean the loss of her miraculous power. Thecla fled from these arrogant young men, but as they were about to catch her, she prayed to God for help. A large rock opened up and hid this holy virgin and bride of Christ. This rock was her refuge and her tomb. St. John Chrysostom says of this wonderful Christian heroine and saint: "It seems to me that as I see this blessed virgin, in one hand she offers Christ virginity, and in the other hand, martyrdom."
! SAINT STEFAN, THE FIRST-CROWNED KING OF SERBIA
Stefan was crowned at his royal foundation Žiča by St. Sava, his brother and spiritual father. He was a devout Christian and a wise and peace-loving ruler. Stefan, with St. Sava, elevated Orthodoxy to great glory among his people. According to his wish, St. Sava tonsured him a monk before his death, and gave him the name Simon. He entered into rest in the Lord on September 24, 1224 A.D., and his miracle-working relics repose in Studenica Monastery.
St. David, (formerly Prince Dimitrije) the son of Stefan's brother Vukan, built the Monastery of Lim where he himself was tonsured a monk.
The holy King Vladislav, son of King Stefan, built the Monastery of Mileševo, to which he translated the relics of St. Sava from Trnovo. He distinguished himself by a special compassion for the poor. On the coinage of his time, he had inscribed: "Vladislav, the servant of Christ."
! HYMN OF PRAISE
! THE HOLY PROTOMARTYR THECLA, EQUAL TO THE APOSTLES
St. Thecla, Equal to the Apostles,
The first martyr of the virgins,
Submitted her body to her spirit,
And her spirit and body to Almighty Christ.
Therefore all things submitted to her.
Terrible fire and fierce beasts,
Demons and the infirmities of men--
All submitted to faith and purity,
All were obedient to holy innocence,
The innocence of Christ's bride.
Is not a mother a most great treasure?
Yet what is a mother compared to Christ?
And the betrothed, made of the earth,
Is as dust before the glory of Christ.
Riches and earthly beauty--
A passing dream and wind that blows away.
Only one Rock stands forever,
And fears neither tempest nor time,
And is the Bridegroom of Thecla the martyr:
He is Christ, the King of kings.
Holy Thecla, illumined in Paradise,
Pray to Christ the Savior,
And save us sinners from our sins.
! REFLECTION
Every saint is close to the place where he is invoked for help, or where his sanctity is commemorated and glorified. Those who are clairvoyant see the saints. If those who are not clairvoyant truly believe, they will see them in due time. Even as a young monk, St. Cosmas of Zographou had this gift. Once, on the Feast of the Annunciation, he went with several other monks to the Monastery of Vatopedi for this, their main feast. During the church service, and during the meal in the refectory, Cosmas saw a woman of royal beauty and majesty, who authoritatively organized, directed, and even served. This was not a momentary vision, but continued for a long time, both in the church and in the refectory. Cosmas was perplexed and startled by this vision. It was not at all proper for a woman to be in a monastery of the Holy Mountain. When he related this vision to his brother monks at Zographou, all the while protesting the presence of women on the Holy Mountain, the astonished monks explained to him that she was the Queen of the Holy Mountain, the Most-holy Theotokos. Then the perplexed heart of Cosmas was filled with great joy. St. Cosmas was so gifted with spiritual sight that, later, as an old hermit in his cave, he saw the soul of the abbot of Hilandar ascending to heaven, struggling to pass through the tollhouses, tormented by demons. Cosmas immediately sent someone to ask the brethren at Hilandar to pray to God for the soul of their reposed abbot. Matins had just been dismissed, and the monks and the abbot had just left the church. Hearing Cosmas's message, the monks laughed, saying that their abbot had just gone to his cell to prepare for Divine Liturgy. But when they entered the cell they found their abbot dead.
! CONTEMPLATION
Contemplate the sin of King Ahaziah and God's punishment of him (II Chronicles 22):
# How Ahaziah did that which is evil in the sight of the Lord, and associated with the sinful house of Ahab;
# How Ahaziah was slain with many of his kinsmen.
! HOMILY
! on God the Holy Spirit, the Glorifier
He [the Holy Spirit] shall glorify Me: for He shall receive of Mine, and shall show it unto you (John 16:14).
The Holy Spirit is equal in might with the Father and the Son. All that the Father can do, the Son can do, and so can the Holy Spirit. All that the Father knows, the Son knows, and so does the Holy Spirit. But, according to Their infinite love for one another, and according to Their infinite wisdom with regard to the dispensation of man's salvation, They appear in turn to men from the point of view of time. As the Father glorifies the Son, so the Son glorifies the Father, and the Holy Spirit glorifies the Son. He shall glorify //Me//. Did not the Son glorify Himself? Yes, He did, but not to the extent that He could have; rather only to the extent that men of that time could receive and endure it. In time, the Holy Spirit will reveal an even greater glory of the Son of God, when He, the All-gracious One, will fill the faithful with His gifts of grace. //He shall glorify Me//. Brethren, the Lord also speaks these words as a lesson to us, so that if we perform some good work, we shall leave it to others to glorify us, and not seek to glorify ourselves. //For He shall receive of Mine, and shall show it unto you//.
With these words, the Lord revealed the unity of the Spirit of God with Him, and not the subordination of the Spirit. Before this, He said: //He will guide you into all truth//(John 16:13). So that the disciples would not think that the Spirit knows more of the truth than the Son, or that the Spirit is greater than the Son, He revealed that the Spirit //shall receive of Mine, and shall show it unto you//. Christ was able to guide the disciples into all truth, but at the time, the disciples were not prepared to receive all truth. Therefore, the Holy Spirit will guide them into all truth, at the proper time. Yet, in revealing all truth to them, the Spirit will reveal nothing that is not known to the Son, let alone anything that is contrary to the knowledge and will of the Son. That is why the Lord said: //For He shall receive of Mine, and shall show it unto you//.
O wondrous unity of the Holy Trinity, O power of the Triune Flame, light and love from one and the same fire! O Holy and Most-holy Trinity, kindle divine love in our hearts.
To Thee be glory and praise forever. Amen.
! THE VENERABLE EUPHROSYNE
Euphrosyne was the daughter of Paphnutius, a wealthy and distinguished man of Alexandria. Her childless parents had besought God with prayer for the birth of a child, and they were given her. Her devout parents raised their daughter in the Christian Faith. Not wanting to enter into marriage, the young Euphrosyne hid from her father, changed into men's clothing, and presented herself to the abbot of a monastery as a eunuch of Emperor Theodosius, giving the name Smaragdus. The abbot received her, and turned her over to the spiritual father Agapitus for guidance. By her fasting and prayerful asceticism, Smaragdus quickly surpassed all the monks in that monastery. When she had completed thirty-eight years of strict asceticism, her father Paphnutius visited that monastery, and the abbot directed him to Smaragdus for prayer and counsel. Smaragdus recognized Paphnutius, but Paphnutius did not recognize Smaragdus. When the father confessed his grief for his lost daughter, Smaragdus told him not to lose hope, for he would see his daughter again in this life, and besought him to come again within three days. When Paphnutius came again, Smaragdus was on her deathbed. The dying one said to Paphnutius: "I am Euphrosyne, your daughter; you are my father!" For a long time, the father was unable to come to himself due to his severe shock. Then, the Blessed Euphrosyne breathed her last, and her father wept over her. After burying her, Paphnutius himself entered the monastery, and settled in the cell of his holy, reposed daughter. After ten years of asceticism, Paphnutius also entered into rest in the Lord.
! THE VENERABLE SERGIUS OF RADONEZH
Sergius was a great ascetic and light of the Russian Church. He was born in 1313 A.D., in Rostov, of devout parents, Cyril and Maria. After his parents' deaths, Bartholomew--for that was his baptismal name--became a monk, and founded the Monastery of the Holy Trinity in the forests of Radonezh. As a quiet and gentle servant of God, he knew only labor and prayer. Because of the purity of his heart he was made worthy of the gift of miracle-working, even resurrecting the dead in the name of Christ. The Holy Theotokos appeared to him many times. Princes and bishops came to him for advice. He blessed Prince Dimitri Donskoy, and foretold his victory in the battle for the liberation of Russia from the Tartars. He saw into the hearts of men as well as future events. His monastery was full of monks, even during his lifetime and, century after century, has been one of the most important centers of spiritual life and God's miracles. St. Sergius entered into rest in the year 1392 A.D. Following his repose, he appeared many times to various people.
! THE VENERABLE EUPHROSYNE OF SUZDAL
Euphrosyne's baptismal name was Theodula. She was the daughter of Michael Vsevolodovich, and the betrothed of Menas, the Prince of Suzdal. She did not at all desire to marry, and prayed to God to preserve her as a virgin until death. When they took her to Suzdal to be married, her betrothed, Menas, suddenly died. Euphrosyne did not return to the home of her parents but entered a convent, where she labored in asceticism until her repose. God endowed her with the gift of working miracles. She entered into rest in the year 1250 A.D.
! HYMN OF PRAISE
! THE VENERABLE SERGIUS OF RADONEZH
An example of prayerful meekness
From his youth, holy Sergius
Loved God and God's beauty,
And instilled serenity and goodness in himself.
He filled the wilderness with ceaseless prayer,
And transformed the forest into a holy place of God.
He cared not for worldly vanity,
Nor was he ever angered.
He was utterly quiet and meek with everyone,
Yet not meek toward the wicked adversary.
With the foe of God, the father of all lies,
Who seeks to devour the souls of men,
Sergius bravely waged a bitter struggle,
Tireless and powerful unto the final victory.
Thus the elder reposed, but the saint remained
As a fiery pillar for the Russian people,
Beseeching God for every blessing
And bringing blessings down from heaven to his people.
Holy Sergius, do not cease to shine,
Do not cease to pray to the Most-high God
For the good of the Church, for the good of Russia,
In the glory of Christ, O Saint Sergius!
! REFLECTION
A saint does not shine outwardly. All of his riches are within, in his soul. A peasant came from afar to the monastery to see St. Sergius. When he asked the monks for the abbot, they told him he was working in the garden. The peasant went to the garden, and there saw a man in poor, ragged clothes, digging like any other peasant on a farm. The peasant returned to the monastery dissatisfied, thinking that the monks had made fun of him. So, to make things clear, he asked again for the glorious holy father, Sergius. Just then, Sergius returned to the monastery, and welcomed the peasant, serving him at the table. The saint saw into the heart of his guest, and knew the low opinion he had of his appearance. He consoled him by promising that he would see Sergius in a little while. A prince and his boyars then arrived at the monastery, and they all bowed low to St. Sergius, and asked his blessing. The monks then removed the peasant from the room in order to make room for the new guests. In amazement the peasant looked on from a distance, to see that the one he had sought had been nearby all the time. The peasant rebuked himself for his ignorance, and was greatly ashamed. When the prince departed, the peasant quickly approached the saint, fell at his feet and began to beg his forgiveness. The great saint embraced him and said to him: "Do not grieve, my son, for you are the only one who knew the truth about me, considering me to be nothing--while others were deluded, taking me for something great."
! CONTEMPLATION
Contemplate the righteousness and sin of King Joash, and God's reward and punishment (II Chronicles 24):
# How, at first, Joash hearkened to the high priest Jehoiada, and did that which is right in the sight of the Lord;
# How God blessed Joash with a long and peaceful reign;
# How Joash changed, and slew the righteous son of Jehoiada, and committed other evils;
# How a small Syrian army defeated Joash, and plundered the land; and, how Joash, gravely ill, was slain in bed by his servants.
! HOMILY
! on the shared riches of the Father and the Son
All things that the Father hath are Mine (John 16:15).
These are some of the last words of Christ the Lord before His passion. They are the weightiest words--for they reveal the divinity of Christ the Savior to the world, and in connection with the words, //He shall receive of Mine, and shall show it unto you//(John 16:14), also reveal the equality of the Holy Spirit with the Father and the Son. That which the Spirit will receive of Mine cannot be different or contrary to that which is the Father's, for //All things that the Father hath are Mine//. Why did our Lord not say, "He will take Mine," but rather, //He shall receive of Mine?// Because the Holy Spirit will not reveal everything to men, but only a part of everything--as much as men can bear, and as much as is necessary for them. One part of God's gifts are given to the faithful on earth, and another part will be given to them in the Heavenly Kingdom.
This heavenly part is that which the visionary Apostle describes: //Eye hath not seen, nor ear heard, neither have entered into the heart of man, the things which God hath prepared for them that love Him// (I Corinthians 2:9). All this, and incomparably more, is part of Christ's possession. His possession encompasses not only this world, but also the other world, and it is incomparably greater and more precious than both worlds. Eternity is His, immortality is His, perfect might is His, perfect wisdom is His, perfect love is His, and perfect goodness is His, as are mercy and justice and truth. What else can we think of or express that is good? All perfection is His, and it transcends everything that earthly man can ever conceive of. The Father has all this, the Son has all this, and the Holy Spirit has all this. All things that the Father hath are Mine. By these words, the indescribably wealthy One, the unequaled Son of the King, Jesus Christ, revealed His boundless and inconceivable riches to His disciples on the dark night when He was about to stand barefoot before the Jewish elders to be scourged and spat upon.
O our God, Most-holy and Most-abundant Trinity, have mercy on us sinners, and save us.
To Thee be glory and praise forever. Amen.
! SAINT JOHN THE THEOLOGIAN, APOSTLE AND EVANGELIST
John was the son of Zebedee the fisherman and Salome the daughter of Joseph, the betrothed of the Holy Theotokos. Called by the Lord Jesus, John immediately left his father and his fishermen's nets and, with his brother James, followed Christ. From then on, he was not separated from his Lord until the end. With Peter and James, he was present at the raising of Jairus's daughter and the Transfiguration of the Lord. At the Last Supper, he inclined his head on Jesus' breast. When all the other apostles had abandoned the crucified Lord, John and the Holy Mother of God remained beneath the Cross. In obedience to the Lord, he was as a son to the Holy Virgin Mary, and carefully served and watched over her until her Dormition. After her Dormition, John took his disciple Prochorus to preach the Gospel in Asia Minor. He lived and labored mostly in Ephesus. By his inspired preaching and miracles he converted many to Christianity and shook paganism to its foundation. The embittered pagans bound him and sent him to Rome, to face Emperor Dometian. Dometian had him tortured and flogged, but neither the bitterest poison he was given to drink, nor the boiling oil into which he was thrown, did him any harm. This terrified the emperor and, thinking him immortal, Dometian sent him into exile to the island of Patmos. There St. John converted many to Christianity by words and miracles, and confirmed well the Church of God. He also wrote his Gospel and Revelation on Patmos. In the time of Emperor Nero, who granted freedom to all prisoners, John returned to Ephesus, where he lived for some time, confirming the work he had begun earlier. He was over one hundred years old when he went to the Lord. When his disciples later opened his grave, they did not find his body. On May 8 of every year, a fine dust, fragrant and healing, rose from his grave. After a long, laborious and fruitful life on earth, this beloved disciple of Christ, a true pillar of the Church, took up his habitation in the joy of His Lord.
! THE VENERABLE NILUS OF CALABRIA
Nilus was a great ascetic among the Greeks of Calabria. The founder of several monasteries, he was a miracle-worker and a defender of the purity of the Orthodox Faith. He undertook a long journey to save a man from grave punishment. He had an ardent love for his neighbor, and entered into rest in the year 1005 A.D. Nilus left many worthy disciples, among whom was the distinguished St. Bartholomew, the writer of several canons, who reposed in 1044 A.D.
! HYMN OF PRAISE
! SAINT JOHN THE THEOLOGIAN, APOSTLE AND EVANGELIST
St. John the Evangelist,
Son of Zebedee the fisherman,
Was young when the love
Of Jesus greatly warmed him.
The most faithful friend of the Lord,
With a pure, virginal soul,
With a soul pure and loving,
Visionary and heroic.
He proclaimed wondrous mysteries
And removed the seal from eternity.
He saw the destiny of the world,
from the beginning to the end.
He preached love,
And in love he walked;
To the throne of the Most-high God
He was raised up in love.
And with love he was exalted
Like a snow-capped mountain:
The Son of Thunder, an awesome prophet,
But meek and tender in heart.
O John, seer of wonders,
O thundering saint--
Bear our small petitions
To your Friend, the Savior!
Bring us close to Him,
The powerful God, the sweet God;
And though we are not worthy of His bosom,
At least bring us close--to His feet!
! REFLECTION
Thus writes the Apostle James: //Let him know, that he which converteth the sinner from the error of his way shall save a soul from death, and shall hide a multitude of sins// (James 5:20). The apostles of Christ did not simply speak thus, but confirmed it by their work. St. Clement of Alexandria relates that, somewhere in Asia Minor, St. John the Apostle had baptized a pagan youth and entrusted him to the care of the local bishop, while he went on further to preach the Gospel. In John's absence, this young man became corrupt, and began to drink and steal, and finally joined a band of thieves in the forest, who attacked men and robbed them. After a while John returned, and heard from the bishop what had happened to this young man. Then Apostle John, not wasting a moment, found a horse and a guide and rushed to the forest where the robbers were to be found. Searching through the forest the saint found them, and confronted their leader. When the young man recognized John, he began to flee. Though aged, John chased him and, despite his old age, caught him. The young man fell at the feet of the apostle and, in shame, could not look him in the eye. John embraced and kissed him, as a shepherd does upon finding his lost sheep. The saint brought him back to town and confirmed him anew in the Faith and in virtuous life. Thereafter pleasing God, this young man entered into rest in due time.
! CONTEMPLATION
Contemplate the divided heart of King Amaziah toward God, and God's punishment (II Chronicles 25):
# How Amaziah at first did that which was right in the sight of the Lord, and God granted him victory over the Edomites;
# How Amaziah brought the Edomite idols (which had not helped the Edomites) to Jerusalem, and worshiped them;
# How God permitted the Israelites to defeat him, and a rebellion was raised against him and killed him.
! HOMILY
! on prayer inspired by love
Sanctify them by Thy truth. Thy word is truth (John 17:17).
When a mother is led to death, she worries more about the children whom she leaves behind than about herself. Such is the bond of great love. The Lord Jesus Christ had an even greater love for His disciples than that of a mother for her children. Going to His death, the Lord prayed to His heavenly Father for His disciples. He prayed, not because He lacked power to help them, but prayed to the Father to show the unity of His being with, and love for, His Father. But why did He then ascribe Truth to the Father, when before that He referred to //the Spirit of Truth//(John 14:17), saying to the disciples: //The Spirit of Truth … will guide you into all truth// (John 16:13)? To demonstrate the equality of the Father and the Holy Spirit. Did He not first say of Himself: //I am the Truth// (John 14:6)? And, afterward, did He not call the Holy Spirit the Comforter, //the Spirit of Truth//? And He now ascribes truth to the Father as well: //Sanctify them by Thy truth!// He who would see any contradiction in this does not comprehend God as Unity and Trinity--Unity of Essence and Trinity of Persons. In that He ascribes truth as something essential to each Person of the Divine Trinity, the Lord demonstrates the equality of the Father, and the Son, and the Holy Spirit. For if one Person of the Divine Trinity would possess less truth, He would be lesser, in Essence, than the other two Persons. With a lessening of truth, there is also a lessening of power, love and wisdom. Therefore, the Lord referred to Himself, the Father, and the Holy Spirit as Truth, so that men would know and believe in Their complete, essential unity. Therefore let none of the faithful be deluded by any lie asserting an inequality of the Persons of the Holy Trinity. Everyone should endeavor to wipe his heart clean of sin, as one cleans a mirror: only then can we truly perceive the great truth of the equality of the Father, the Son and the Holy Spirit.
O Triune and Divine Truth, enlighten us with Thyself, and save us.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR CALLISTRATUS
Callistratus was born in Carthage. He was a Christian from birth, for his father and grandfather were Christians. One of Callistratus's ancestors, Neochorus by name, was a soldier in Jerusalem under Pontius Pilate, at the time of the Crucifixion of our Lord and Savior Jesus Christ. Witnessing the many miracles at the time of Christ's death, Neochorus believed in Him, and was instructed in the Faith and baptized by an apostle. Returning home to Carthage, Neochorus brought his Christian Faith with him as a precious pearl. So it was that in time Callistratus was born, baptized and raised a Christian. While he was in the army there were no other Christians in his regiment besides him. One of his companions, seeing how St. Callistratus arose at night and prayed to God, reported him as a Christian to the commander, Persentinian. Persentinian was a cruel torturer of Christians. In order to confirm that Callistratus was indeed a Christian, the commander ordered him to offer sacrifice to the idols, which Callistratus straightway refused to do. He was then severely beaten and thrown into the sea. However, the power of God saved him, and he emerged from the sea in sound health. Seeing Callistratus's endurance and miracles, forty-nine other soldiers came to believe in Christ. They were beaten and thrown into prison with Callistratus. In prison Callistratus taught his companions the Faith, and strengthened them. They displayed great bravery in suffering, and the Lord manifested great power through them. Then the evil torturer sent soldiers to the prison by night, and they slew St. Callistratus and his forty-nine companions. They suffered for the truth in the year 304 A.D. A church was later built over their relics.
! THE HOLY APOSTLES MARK, ARISTARCHUS AND ZENAS
Mark, Aristarchus and Zenas were apostles of the Seventy. St. Mark was also known as John. The holy apostles gathered for prayer at the house of his mother Mary in Jerusalem (Acts 12:12). He preached the Gospel with the Apostles Paul and Barnabas (Acts 12:25). After that, Mark was bishop in the town of Byblos. St. Aristarchus, a fellow traveler of the Apostle Paul, was bishop in Syrian Apamea (Acts 19:29). St. Zenas (or Zena) was described as a lawyer by the Apostle Paul (Titus 3:13). He was bishop in Palestinian Lydda. They shone as stars in the darkness of paganism, and brought many to the Christian Faith. Now they shine as stars in the Kingdom of Christ, their Beloved.
! THE HOLY NEW MARTYR AQUILINA
Aquilina was from the village of Zaklivera, in the Diocese of Jedrene. She was a girl of eighteen. Her father embraced Islam, and even pressured her to become a Moslem, but her mother supported her in the Christian Faith. After many torments, totally wounded and bloodied, she breathed her last on her mother's lap, and received the victor's wreath of martyrdom on September 27, 1764 A.D.
! THE VENERABLE SABBATIUS OF SOLOVKI
Sabbatius is commemorated together with St. Zosimas on April 17. Today is commemorated the fact that he reposed in the Lord on September 27, 1435 A.D.
! HYMN OF PRAISE
!
! THE HOLY MARTYR CALLISTRATUS
St. Callistratus prayed to God,
He prayed to God and gave thanks to Him.
During torture for the Christian Faith,
The torturer mocked Callistratus:
"You believe in Christ the Crucified One!
When I send you from this world,
There will not remain one Christian
In all of this great city."
St. Callistratus prayed to God,
He prayed to God, and said to the judge:
"You will crush my sinful body,
And stain the earth with my blood,
But a church will be built upon that blood.
By your sword I will attain my goal!"
As St. Callistratus spoke, so it happened:
His blood, like a clear trumpet-call
Quickly awakened the conscience of men.
The city was baptized, the church was built,
And the martyr achieved his goal.
Now in heaven, in the heavenly army,
The soldier of Christ, St. Callistratus
And his companions, among the angels,
Pray to God to deliver us as well,
That through us too the Lord would be glorified!
! REFLECTION
All our riches, glory and honor are as a brief repast that ends at death. No one takes a single crumb of this meal into the other world. Blessed is the one who understands that the soul is his only possession that is not diminished by anything, not even by death. Such a one thinks only of three realities: death, the soul, and God the Judge. Abba Evagrius teaches: "Hold your approaching death and the Judgment constantly in your mind, and you will preserve your soul from sin." All our bodily cares in this life are like cares about a meal which must soon be cut short. St. Isaiah the Solitary says: "Have death before your eyes every day: think constantly about how you will separate from the body, how you will pass through the region of the powers of darkness who will meet you in the air, and how you will present yourself before God. Prepare yourself for the Dread Day of answering to the Judgment of God, as though you already behold it now." One day, John, a rich merchant, came to St. Sabbatius of Solovki and brought him many alms. Sabbatius did not accept any of it, but rather told the donor to distribute all of it to the needy. John became very sad at this, and the saint, in order to comfort him and make everything clear to him said: "John, my son, stay here and rest until tomorrow, and then you will see the grace of God." John obeyed. The next day, John entered the cell of Sabbatius and saw the elder in final repose, and sensed a wonderful fragrance in the cell. He who foresees the end of his life does not think of worldly goods.
! CONTEMPLATION
Contemplate the righteousness of King Uzziah, and God's reward (II Chronicles 26):
# How the king did that which is right in the sight of the Lord;
# How, //as long as he sought the Lord, God made him to prosper//.
! HOMILY
! on Christ's last prayer for the faithful
That they all may be one, as Thou, Father, art in Me and I in Thee (John 17:21).
Brethren, God's mercy is great. When a righteous man feels it, he weeps; but when a sinner feels it, he is ashamed. By the mercy of God, we are cleansed, illumined, saved, adopted and united with God Himself. However, no one should construe that, by this unity with God, we become of the same Essence with God and equal to God. We will never be of one Essence with God, nor equal to God, in the way in which the Father, Son and Holy Spirit are of one Essence and equal in being. //That they all may be one//the Savior says to His Father on behalf of His disciples, //as Thou, Father, art in Me and I in Thee//, and here He is thinking of the unity of love and not of the unity of nature. From love flows mutual obedience, mutual help, mutual mercy, meekness, humility, goodness, good will and sacrifice. And when the Lord says, //Be ye therefore perfect, even as your Father which is in heaven is perfect// (Matthew 5:48), He does not mean that men can be equal to God, but means to show them the supreme example of perfection in every good thing. For many teachers of men have pointed to examples of perfection in some thing or some person, but not in God. Often enough, they have taught men evil, and pointed to it as an example of perfection. That is why the Lord teaches men to take the Heavenly Father as an example of every perfection, and to labor and strive for that true perfection, and not some other. By the grace of God, we are all adopted of God and become //one in Christ Jesus// (Galatians 3:28). However, we do not become gods; we do not become equal with the Persons of the Holy Trinity. Do not forget that it is said in the Scriptures: //The heavens are not clean in His sight// (Job 15:15). The majestic powers of the heavens are not even equal to Him, so what then of man? However, by the grace of God, and because of the sufferings of the Lord Jesus, the faithful are raised up into unity with God, in love and spirit. Therefore, let us make an effort to do the will of God, that we in truth may be raised up to such majestic heights.
O Lord Jesus Christ our God, Who art the God of every mercy and goodness; uphold us in Thy mercy to the end, and be not angry with us, but rather forgive us.
To Thee be glory and praise forever. Amen.
! THE VENERABLE CHARITON THE CONFESSOR
Chariton was a distinguished and devout citizen of the city of Iconium. Imbued with the spirit of his compatriot, St. Thecla, Chariton openly confessed the name of Christ. When a bitter persecution of Christians began during the reign of Emperor Aurelian, Chariton was immediately brought to trial before the eparch. The judge ordered him to worship the gods, but Chariton replied: "All your gods are demons, and were cast from the heavens into the nethermost hell." Chariton clearly proclaimed his faith in the One Living God, the Creator of all, and the Lord Jesus, the Savior of mankind. The eparch ordered that he be tortured and beaten, until his whole body was like one great wound. When Aurelian's evil deeds caught up with him and he died an evil death, Chariton was freed from torture and prison. He then set out for Jerusalem. On the way he was seized by robbers, but escaped from them by God's providence. Chariton, not wanting to return to Iconium again, withdrew to the wilderness of Pharan, where he founded a monastery and gathered monks. He established a rule for the monastery and then, to avoid the praise of men, withdrew to another wilderness near Jericho. There he founded another monastery called the Monastery of Chariton. Finally, he founded a third monastery, Souka, which the Greeks called the Old Lavra. Chariton died at a great old age, and took up his abode in the glory of his Lord on September 28, 350 A.D. His relics repose in his first monastery. The composition of the rite of monastic tonsure is attributed to St. Chariton.
! THE HOLY PROPHET BARUCH
He was a disciple and faithful friend of the great prophet Jeremiah. He prophesied the return of the Jews from the Babylonian Captivity, the destruction of Babylon, and the coming of the Son of God to earth. It is held that he was slain by the Jews in Egypt, as was the Prophet Jeremiah, in the seventh century before Christ.
! THE HOLY MARTYR MARK THE SHEPHERD
At the time of Diocletian, Magnus, the magistrate of Antioch, went hunting with his soldiers. Pursuing a wild beast, the soldiers saw that it fled to the shepherd Mark, who was tending his flock there. The beast fawned around Mark, a man of God. Seeing this, thirty soldiers listened to Mark's explanation of the Faith, and believed in Christ. They were soon beheaded. The magistrate then bound Mark, took him to town and summoned three brothers, Alexander, Alphaeus and Zosimas, who were blacksmiths. He ordered them to make instruments of torture with which to torment Mark. All three of them, after conversing with St. Mark, confessed the Christian Faith, and ignored the magistrate's order. The magistrate sentenced them to death, and ordered that molten lead be poured into their mouths. After this, the saintly Mark was beheaded, and his head was mockingly placed in the temple of Artemis. Because of this, that temple was destroyed by the power of God.
! THE HOLY MARTYR VATSLAV [WENCESLAUS], KING OF THE CZECHS
Vatslav was the grandson of St. Ludmilla. As king, he labored in the Faith like the great ascetics, and strengthened the Orthodox Faith among his people. He was strict in ensuring that no innocent person suffer in the courts. In his zeal for the Christian Faith and in his love for his fellow man, St. Vatslav purchased pagan children who were being sold as slaves, and immediately baptized them and raised them as Christians. He translated the Gospel of St. John into the Czech language, and transported the relics of St. Vitus and St. Ludmilla to Prague. His brother Boleslav invited him to be his guest, and then killed him in his court. Immediately after this, Boleslav brought in German priests and had the services celebrated in Latin. St. Vatslav suffered in the year 935 A.D. and his relics repose in Prague.
! HYMN OF PRAISE
!
! THE HOLY MARTYR VATSLAV, KING OF THE CZECHS
From a wicked mother, good fruit was born:
St. Vatslav, who pleased God.
His wicked mother gave him only a body,
But his grandmother--light and faith and hope.
The glorious grandmother, pious Ludmilla,
Nurtured Vatslav's soul.
As a white lily, Vatslav grew,
And adorned himself with innocence.
As the king reigned, the people rejoiced,
And with their king they honored God.
Yet the adversary of man never sleeps or dozes,
Laying sinful snares for every soul,
And he incited Boleslav against Vatslav.
"For what, my brother, do you want my head?"
Vatslav asked, but was still beheaded!
But the evildoer did not escape God.
The soul of St. Vatslav went
Before the Most-high God, the Just,
The One he had always adored,
And with Ludmilla, Vatslav now prays
For his people, that they be strengthened in faith.
St. Vatslav, beautiful as an angel!
! REFLECTION
In guiding the dispensation of this world, and especially of His Holy Church, God often makes unexpected moves, and changes the evil destiny of His servants to the good. This occurred many times in the life of St. Chariton. Following cruel tortures, Chariton was thrown into prison and was promised certain death. Then, Emperor Aurelian died unexpectedly, and the new emperor freed the Christian captives. Thus, Chariton escaped death. Then, when he was traveling to Jerusalem, robbers seized him and took him to their cave. They left him there, and went off to rob and plunder, with the intention of killing him when they came back. In this cave there was a wine cask into which a poisonous snake had crawled, drunk of the wine, and vomited its venom into the cask. When the robbers returned, tired and thirsty from the heat, they drank the venomous wine and, one by one, fell dead. And thus, St. Chariton was saved from death by yet another unexpected event. The Lord heaped misfortunes upon His servant, in order that by these misfortunes He would temper and purify him as gold is tempered and purified by fire, and that He might bind him even more securely to Himself. He delivered him from death, because Chariton had yet to establish several monasteries where, by his ascetic example, he would direct many human souls on the path of salvation.
! CONTEMPLATION
Contemplate King Uzziah's turning to evil (II Chronicles 26):
# How Uzziah became proud and corrupt when, with God's help, he became strong;
# How he violated the Law, took the censer, and strove to serve in the Temple against the protests of the priests.
! HOMILY
! on Christ's last prayer for the faithful
Father, I will that they also, whom Thou hast given Me, be with Me where I am (John 17:24).
Behold the recompense of God's laborers! Behold the glorious reward of the followers of Christ! That which the Son of God desires, the Father desires and the Holy Spirit also desires. And that which the Holy Trinity desires, comes to pass. What does the Lord, the Son of God, desire? He desires that His disciples be together with Him in the Heavenly Kingdom--and not only His twelve disciples, but also all those //which shall believe on Me through their word//(John 17:20). My brethren, we who are baptized and who have received the Faith of the apostles and have kept it, are also numbered among these--but only under the condition that we ourselves do not disown that great treasure by our misdeeds, by apostasy from the Faith, by the impurity of sin, or by blasphemous words and thoughts. The Lord further says: //Father I will … that they may behold My glory, which Thou hast given Me// (John 17:24). No one should conclude from these words that the Son is less than the Father. For the Lord Himself said to His Father: //I have glorified Thee// (John 17:4). Do you see the equality of the Father and the Son, and the boundlessness of Their mutual love? //I have glorified Thee … and now, O Father, glorify Thou Me// (John 17:4, 5). But the fact that Christ's glory did not begin on earth or in time is shown by these words of the Lord Christ: //the glory which I had with Thee before the world was// (John 17:5). Therefore, this is not an earthly or temporal glory: it is not worldly and human glory, but rather a heavenly, eternal, lasting and inexpressible glory. How does the Son of God want the Father to glorify Him? In such a way that He will show the heavenly and eternal glory to all those who have obeyed His Son, and who have followed after Him, and who have fulfilled His commandments. The man-loving Lord wills that, not only the apostles, but all of us who are called by His name, participate in this glory. Oh what mercy! Oh what love for mankind! Brethren, the dogma of our immortality, eternal life and eternal glory is not of men, but of our Lord and Savior Himself. May bodily cares, slothfulness at prayer, and mutual strife not separate us from this glory of Christ, from eternal life!
O gracious and merciful Lord, forgive us our sins, and grant us Thine Eternal Kingdom.
To Thee be glory and praise forever. Amen.
! THE VENERABLE CYRIACUS THE RECLUSE
Cyriacus was born in Corinth, to John and Eudoxia. His father John was a presbyter and Peter, Bishop of Corinth, was his kinsman. In his early youth, the bishop ordained Cyriacus a reader in the cathedral church. Reading the Holy Scripture, the young Cyriacus marveled at God's providence: how God glorified all His true servants and how He arranged the salvation of the human race. At age eighteen, Cyriacus's desire for the spiritual life led him to Jerusalem. There, he entered the monastery of a godly man Eustorgius, who gave him his first instruction in the monastic life. After that, he went to St. Euthymius, who foresaw that he would be a great spiritual father. He clothed him in the schema and sent him to St. Gerasimus at the Jordan, where Cyriacus spent nine years. Following the death of Gerasimus, he returned to the Monastery of St. Euthymius, where he remained in stillness for ten years. Then, fleeing the praise of men, he moved from place to place. He finally lived a life of asceticism in the community of St. Chariton, where he ended his earthly sojourn of 109 years. A celebrated ascetic and miracle-worker, St. Cyriacus was massive and strong in body, and remained such in deep old age, despite strict fasts and vigils. In the wilderness, he sometimes ate only raw greens for years. He was very zealous for the Orthodox Faith, denouncing all heresies, especially that of Origen. He said of himself that, since he became a monk, the sun had neither seen him eat nor become angry with anyone. According to the Rule of St. Chariton, the monks ate only once a day, after the setting of the sun. Cyriacus was a great light, a pillar of Orthodoxy, the adornment of monks, a mighty healer of the sick, and a gentle comforter of the sorrowful. Having lived long for the benefit of many, he took up his habitation in the eternal joy of his Lord in the year 557 A.D.
! THE HOLY MARTYRS DADA AND GABDELAS
Dada was a great Persian nobleman and a kinsman of King Sapor, and Gabdelas was Sapor's son. When St. Dada openly confessed his faith in Christ, King Sapor ordered that he be cruelly tortured. During these tortures, Dada worked great miracles in the name of Christ, and these so strongly influenced Gabdelas that he also believed in Christ. The pagan King did not even spare his own son, but subjected him also to harsh tortures. Both Dada and Gabdelas glorified God with their patient endurance and many miracles, and gave up their souls to God under torture. They suffered in the fourth century. Gabdelas's sister Casdoa, and Gargal the chief pagan priest, suffered with them--for they, too, had come to believe in Christ.
! SAINT THEOPHANES THE MERCIFUL
Theophanes was a wealthy citizen from Gaza. He was so merciful that, in distributing his possessions to the poor, he impoverished himself. Toward the end of his life, he was afflicted with dropsy and died from that illness. Thereafter a healing myrrh flowed from his body, by which the sick were healed.
! SAINT MARY OF PALESTINE
At first, Mary was a reader of the Psalter in the Church of the Resurrection in Jerusalem. Because she was of beautiful countenance, many who gazed upon her were tempted by lustful thoughts. So that she would no longer be a cause of temptation for men, Mary withdrew into the wilderness of Souka with a basket of beans and an earthenware jug of water. St. Mary lived in the wilderness for eighteen years. By God's power, neither the beans nor the water ran out. The disciples of St. Cyriacus found her during her lifetime, and later buried her.
! HYMN OF PRAISE
!
! SAINT MARY OF PALESTINE
The beautiful Mary was born beautiful,
And, faithful to Christ, she prayed to Him:
"Help me, my Lord, a helpless woman,
Show me, the lowly one, the path to salvation.
With Thy help, I struggle not to sin,
But my face is a temptation to the weakness of others."
Mary bowed with tears to the Living God,
And hid in the wilderness from the eyes of men.
Mary conversed with God, and that was her reward.
Her soul shone brighter than pure gold.
Her body withered with the passing years,
And an angel raised the heavenly woman up to Paradise.
She now rejoices, radiant among the angels,
And Saint Mary prays to God for us.
! REFLECTION
In ignorance, many people labor more to avoid suffering in old age and terminal illness than to avoid the torments of hell in the life after old age and death. Such was the case of an unmarried and avaricious man who, from year to year, and with ever greater passion, amassed for himself unnecessary wealth. When asked why he strove so much to pile up excess wealth he replied: "I am gathering it for my old age. This wealth will heal and feed me in old age and sickness." And indeed, his foreboding came true. In old age, a grave and long-lasting illness befell him. He distributed his accumulated wealth to physicians so they would heal him, and to servants so they would care for him and feed him. His wealth was soon spent, and the illness continued. The physicians and servants abandoned him, and he fell into despair. His neighbors brought him bread until his death, and he was buried at the expense of the community. He had used his wealth for that which he had intended it. God had even done for him according to the man's will. God had sent him the illness that he had, in a sense, desired, and for which he had prepared great wealth. Nevertheless, all his wealth was unable to alleviate his sufferings in this world--so with what would he be able to alleviate his sufferings in the other world? Nothing, if he took with him neither faith, nor hope, nor charitable deeds, nor prayers, nor repentance! Someone saw a departed man in the great glory of Paradise, and asked him how he had become worthy of that glory. The man replied: "In my earthly life I was the hireling of an evil-doer who never paid me. But I endured all and served him to the end, with hope in God." Then the onlooker saw another man in even greater glory, and when he asked him, that one replied: "I was a leper, and to the very end I offered gratitude to God for that." But no one saw in the glory of Paradise the man who had amassed money for illness in old age.
! CONTEMPLATION
Contemplate the punishment with which God punished King Uzziah (II Chronicles 26):
# How, in his conceit, Uzziah unlawfully approached the sanctuary of God;
# How leprosy suddenly appeared on his forehead.
! HOMILY
! on knowing the Father through the Son
O righteous Father, the world hath not known Thee: but I have known Thee (John 17:25).
An equal knows his equal best. The lower does not know the higher, or the mortal the immortal. The Old Testament prophets and some of the wise men of ancient times knew God as the Creator and the Provider, but no one knew Him as the Father of the Son. Those who knew Him in ancient times knew Him through creation, and not through birth. Through creation they knew something of the righteousness, wisdom and power of God; but they did not know His love, for love is known through birth. A father knows the mystery of the one born, and the one born knows the love of the parent. It could be put this way: //"The world hath not known Thee,//for the world looked at Thee as Lord and itself as a slave; //But I have known Thee,// for I see Thee as Father and feel Thine inexpressible love. The world looks at Thee through the veil of Thy works; but I look at Thee face to face, in the eternal beauty of Thy love." The Lord brought this illuminating flame of eternal filial and paternal love among men, so that men could see God in this flame, in this new and hitherto unknown light. The Lord passed this new knowledge of God's love to His apostles, and through them to us.
Oh, may this flame of divine eternal love burn in us! May we thus know God as our Father, and ourselves as His children, adopted through the sacrifice of the Only-begotten Son of God.
O God of Triune Flame, Father, Son and Holy Spirit: illumine us also, darkened as we are by sin, with the eternal glory of Thy love.
To Thee be glory and praise forever. Amen.
! THE HIEROMARTYR (PRIESTLY-MARTYR) ANTHIMUS
He was born in Nicomedia, and was raised from childhood as a true Christian. "His body was mortified, his spirit humbled, his envy uprooted, his anger subdued, his sloth banished…. He had love for all and peace with all; he was prudent with all, had zeal for the glory of God and was forthright with all.'' It is no wonder that a man with such virtues was appointed bishop. St. Anthimus governed as Bishop of Nicomedia during the cruel persecution of Christians under the villainous Emperors Diocletian and Maximian. Streams of Christian blood were shed, especially in Nicomedia. One year, on the Feast of Christ's Nativity, twenty thousand martyrs were burned to death in one church (see December 28). This took place during the time of Anthimus's episcopacy. Even so, the persecution did not end with this, but continued, and many Christians were cast into prison and kept there for torture and death. St. Anthimus withdrew to the village of Semana, not because he was fleeing from death, but in order to continue encouraging his flock in the feat of martyrdom, so that no one would fall away out of fear. One of his letters to the Christians in prison was intercepted and turned over to Emperor Maximian. The emperor dispatched twenty soldiers to find Anthimus and bring him to him. The gray-haired and clairvoyant elder came out to meet the soldiers, brought them to his house, and treated them as guests--and only then revealed that he was Anthimus, whom they were seeking. The soldiers, astonished by Anthimus's kindness, suggested that he hide, saying they would tell the emperor that they could not find him. But Anthimus replied that he could not let himself transgress God's commandment against falsehood to save his life, and he went with the soldiers. Along the way, all the soldiers came to believe in Christ and were baptized by Anthimus. The emperor had Anthimus harshly tortured for a long time, and then had him beheaded with an axe. He glorified the Lord and went to his rest at the beginning of the fourth century.
! THE HOLY MARTYR BASILISSA
Basilissa was a nine-year-old girl. She was martyred in Nicomedia not long after the death of St. Anthimus. The torturers covered her whole body with wounds, but she remained faithful to Christ. God preserved her unharmed from fire and wild beasts, which caused her torturer, Alexander, to repent and embrace the Christian Faith. Basilissa then went out into a field, fell to her knees, and prayed thankfully to God that she had endured the tortures, and with that she gave up her spirit to God, in about the year 309.
! SAINT JOANIKIJE, ARCHBISHOP AND FIRST PATRIARCH OF SERBIA
Joanikije was born in Prizren, and initially served as secretary to King Dušan. He became archbishop in 1339, and was elevated to the rank of patriarch in 1346. Joanikije was a zealous archpastor and organizer of the Serbian Church, "a great upholder of the laws of the Church.'' He entered into rest on September 3, 1349. His relics repose in the Patriarchate of Peć.
! THE VENERABLE THEOCTISTUS
He was a faster and fellow ascetic of St. Euthymius the Great. Theoctistus was abbot of Euthymius's Lavra, located some six miles from Jerusalem on the road to Jericho. In all things he was a disciple of St. Euthymius under whose spiritual guidance he governed the monastery until the age of ninety. He pleased God by his life, and reposed in the middle of the fifth century during the reign of Anastasius, Patriarch of Jerusalem.
! HYMN OF PRAISE
! THE HIEROMARTYR ANTHIMUS
Holy Anthimus encouraged his flock:
"My children, my beloved children,
Bearers of Christ's yoke,
Now is the time for great renunciation,
O soldiers of the Crucified Christ,
Who gloriously resurrected from the dead!
Now is the time of cruel persecution;
Now is the time of struggle and patience;
For the harvest of heroes is prepared.
The brilliant wreath is radiant above you:
Fear not the dark executioners
For the power of man does not last forever,
But the power of God lasts unto ages of ages.
Blessed is he who fears God!
Your tears will be wiped away
In heaven by the hands of angels;
Your wounds will be healed
In heaven with paradisal balm.
Death will be transformed into life!
The despised will be crowned with a wreath!
Brief torture, but eternal blessings.
My dear children, do not fear.''
! REFLECTION
He who desires to be saved must be absolutely obedient to spiritual authority. Without this obedience, a man can perish even with the greatest desire for salvation. The great saints, who prescribed obedience as the condition for salvation, also fulfilled the act of obedience to perfection. When St. Simeon chose the pillar for his ascesis, it struck the other ascetics as some kind of novelty. Because they did not know if this form of asceticism was of the Spirit of God or of the spirit of pride, the desert fathers sent spiritual men to determine the answer. The monks were to command Simeon in their name to come down from the pillar. If he did not want to come down, it would have meant that his elevation on the pillar was from the spirit of pride. But if he obeyed the command and began to descend, they were to leave him as he was, for his readiness to obey would show that his asceticism was from the Holy Spirit. When those sent arrived and told Simeon that the council of the holy fathers of the desert commanded him to descend from the pillar, Simeon immediately began to climb down the ladder. Seeing his obedience, they cried out to him rejoicing: "Do not come down, holy Father, but remain where you are. We see now that your asceticism is of God.''
! CONTEMPLATION
Contemplate God's punishment of David for his sins (II Samuel 13):
# How Amnon, David's son, defiled David's daughter, Tamara;
# How Absalom, David's son, slew Amnon his brother because of this;
# How David wept bitterly.
! HOMILY
! on the Word of God revealed in the flesh
And the Word was made flesh (John 1:14).
Here, brethren, is a new, blessed and salvific beginning for us--the beginning of our salvation. Adam was in the flesh when he fell under the authority of sin and death. Now the Creator of Adam has appeared in the flesh, to deliver Adam and Adam's posterity from the power of sin and death. The Son of God--the Word, Wisdom, Light and Life--descended among men in human flesh and with a human soul. He was incarnate but not divided from His Divinity. He descended without being separated from His Father. He retained all that He had been and would be for all eternity, and yet He received something new: human nature. His eternal attributes were not diminished by the Incarnation, neither was His relationship to the Father and the Spirit changed. Lo, the Father testified to this, both on the Jordan and on Mount Tabor: //This is my beloved Son!// He did not say: "This was my Son,'' but "This is my Son.'' The Holy Spirit was with Him at His bodily conception and throughout His mission on earth. The divine and human nature were united in Him, but not intermingled. How? Do not ask, you who do not even know how to explain yourself to yourself, and cannot say how your soul and body are united in you. Only know this: God came to visit the earth, bringing unspeakably rich treasures for mankind--royal gifts, incorruptible, eternal, priceless and irreplaceable gifts. Know this and let your heart dance for joy. Strive to cleanse your hands, purify your senses, wash your soul, whiten your heart, and set your mind straight, that you may receive the royal gifts. For they are not given to the unclean.
O Lord Jesus Christ, help us to cleanse and wash ourselves by Thy blood and Thy Spirit, that we may be made worthy of Thy royal gifts.
To Thee be glory and praise forever. Amen.
! SAINT GREGORY THE ENLIGHTENER, BISHOP OF ARMENIA
Gregory was born of a prominent family which was related to the royal houses of Persia (King Arteban) and Armenia (King Khosrov). When these two houses made war against each other, Gregory withdrew to Caesarea in Cappadocia. It was there that he first learned of the Christian Faith, was baptized and married. He had two sons of this marriage, Bardanes and Aristakes, and dedicated them both to the service of the Church. After the death of his wife, Gregory returned to Armenia and placed himself in the service of King Tiridates. He faithfully served him, and Tiridates loved Gregory. But when the king learned that Gregory was a Christian, he became greatly enraged and pressured him to deny Christ and worship idols. Not succeeding in this, Tiridates subjected Gregory to many harsh tortures, then threw him into a deep pit full of poisonous reptiles to kill him. However, the All-seeing God preserved St. Gregory's life in that pit for fourteen full years. After that, Tiridates set out to persecute all Christians in his kingdom, and attacked a convent where there were thirty-seven nuns, including the abbess, Gaiana. When he had killed all of them by terrible tortures, Tiridates went insane and was like a wild boar. His sister had a dream in which a man, dazzlingly bright, told her that Tiridates would only become well when Gregory was removed from the pit. Taken from the pit, Gregory healed and baptized Tiridates. Then, at the wish of Tiridates, Gregory became Bishop of Armenia. Through God's providence, Tiridates also helped him in enlightening all of Armenia and its surrounding regions with the Christian Faith. St. Gregory ended his earthly life of great labor in old age, in about the year 335 A.D. Meanwhile, his son Aristakes had been consecrated a bishop, and he continued the work of his father, both physically and spiritually. Aristakes was one of the 318 Holy Fathers at the First Ecumenical Council.
! THE HOLY MARTYRS GAIANA, RHIPSIMIA, AND THIRTY-FIVE OTHER NUNS
They were all slain by King Tiridates because of their faith in Christ. Rhipsimia was of unusual beauty, which tempted Emperor Diocletian to take her for his wife. This was the cause of their martyrdom. Rhipsimia refused to go with the emperor, as she had betrothed herself to Christ, her Bridegroom. Then Tiridates too was tempted and wanted to claim her for himself, for he was intoxicated by her beauty. St. Rhipsimia resisted the pagan king with all her strength, "And he who defeated the Princes of the Goths and destroyed the Persians was unable to overcome one virgin of Christ." The enraged king gave her over to cruel tortures--her tongue was cut out, her stomach cut open, and her entrails pulled out--and Rhipsimia gave up her soul to God. After this, the other nuns were seized and beheaded. The famous Monastery of Echmiadzin was built over the relics of these holy martyrs. Situated near Yerevan, it was the main spiritual center of Armenia for many centuries.
! SAINT MICHAEL, FIRST METROPOLITAN OF KIEV
St. Michael was sent to Russia by the Patriarch of Constantinople at the request of the great Prince Vladimir, to baptize the pagan people and establish and organize the Church. St. Michael baptized the people in Kiev, Novgorod, Rostov and many other towns and villages. He organized the Church, appointed bishops and priests, laid the foundation for the Monastery of St. Michael in Kiev, and sent missionaries among the Bulgarians and Tartars, winning many of them for Christ. This saint accomplished all this, and much more of great benefit, in only four years. He went to his reward peacefully, in the year 992 A.D. His relics repose in the Monastery of the Kiev Caves.
! HYMN OF PRAISE
!
! SAINT GREGORY THE ENLIGHTENER
Gregory was a great light
To his people and his nation.
He spurned glory and riches
For the poverty of Christ the Crucified,
Preferring eternal riches in heaven.
He raised his mind to heaven and thoughts of God,
And endured much physical torture,
As if it all were painless.
He was strong with the power of God's grace,
And nourished by God's heavenly food,
And armored against evil by God's providence.
He was lowered into the pit from his glory,
And from the pit he was elevated to the heights--
The heights of eternal glory.
Gregory, great and holy,
Enlightened Armenia with Jesus.
Even the wild boar, Tiridates,
Was baptized under the Cross and became a lamb.
With great glory, the land of Armenia glorifies
Its miracle-worker, St. Gregory.
! REFLECTION
Marvelous changes occur daily in the destiny of men--in the present, as in times past. Those humiliated for the sake of God's righteousness are raised to great heights, and the blasphemers of the Faith are converted to servants of the Faith. King Tiridates threw St. Gregory into a deep pit. The saint spent fourteen years in that pit, forgotten by the entire world, but not by God. Who among men could have thought that the greatest light of the Armenian people was to be found in the darkness of a pit? And who would have ever thought that the powerful and tyrannical King Tiridates would one day save the life of that same Gregory, whom he had condemned to death, and would help him more than the rest of the whole world could help him? After fourteen years, God revealed Gregory as still alive. Gregory then miraculously healed the insane king. King Tiridates, the unrestrained persecutor of Christ, was baptized and became the greatest zealot for the Christian Faith! It could be said that, with God's help, Gregory and Tiridates were both drawn out of the pit of darkness--Gregory a physical one, and Tiridates a spiritual one. Oh, the infinite wisdom of God in governing the destinies of men! The formerly wild and passionate Tiridates was softened and ennobled so much by repentance and the Christian Faith, that he came to resemble St. Gregory more than his old, unrepentant self.
! CONTEMPLATION
Contemplate the righteousness of King Jotham and God's reward for him (II Chronicles 27):
# How Jotham did that which is right in the sight of the Lord, and cared for the Temple of the Lord;
# How God helped him, so that he was successful in war and in peace: in war he conquered, and in peace he enriched and strengthened his people.
! HOMILY
! on the Kingdom not of this world
My Kingdom is not of this world (John 18:36).
He who has great wealth also has little wealth. Therefore, let no one think that Christ the Lord does not have royal authority over this world, even though He told Pilate: //My Kingdom is not of this world//. He who possesses the eternal also rules over the temporal. Here, the Lord speaks of His Eternal Kingdom, independent of time, decay, injustice, illusion and death. It is as if someone were to say: "My wealth is not in paper but rather in gold." If he has gold, can he not afford paper? Is not gold worth more than paper? Therefore, the Lord does not tell Pilate that He is a king, but on the contrary says that He is a higher King than all earthly kings, and that His Kingdom is greater, more powerful and more enduring than all earthly kingdoms. He is indicating His principal Kingdom, upon which all earthly kingdoms depend, in time and in space. //My Kingdom is not of this world//. This does not mean that He has no power over this world, but on the contrary confirms His awesome power over this world. All His works on earth manifest His unparalleled, lordly power over the world. Tell me, in what other king's presence is the wind quieted and the sea calmed? And have you forgotten His words in Gethsemane? //Thinkest thou that I cannot now pray to my Father, and He shall presently give Me more than twelve legions of angels?// (Matthew 26:53). And just one angel has greater power than all the universe! The Lord of the soul is also the Lord of the body. The Lord of eternity is also the Lord of time. The Lord of the greatest good is also the Lord of the lesser good. Brethren, nothing can escape the power of the Almighty Jesus Christ our Lord, Who by His own will suffered for us, and by His own power rose from the grave.
O Lord Jesus Christ, our Almighty Savior, help us to seek Thy Heavenly Kingdom, and to be eternally with Thee where there is neither sin nor death, but life and joy and peace.
To Thee be glory and praise forever. Amen.
! THE HOLY HIEROMARTYR (PRIESTLY-MARTYR) BABYLAS
This "great and wonderful man, if he could be called a man"--as St. John Chrysostom spoke of him--was Bishop of Antioch during the reign of the wicked Emperor Numerian. This Numerian concluded a peace treaty with a barbarian king, who was more noble and peace-loving than he. As a sign of his sincere desire for a lasting peace, the barbarian king gave his young son to be brought up and educated in Numerian's court. One day Numerian stabbed this innocent boy to death with his own hands, and offered him as a sacrifice to the idols. Still hot from the crime and the innocent blood, this criminal with an emperor's crown went to a Christian church to see what was going on there. St. Babylas was at prayer with the people, and heard that the emperor had come with his retinue and desired to enter the church. Babylas interrupted the service, went out in front of the church, and told the emperor that as he was an idolater he could not enter the holy temple where the one, true God was glorified. In a homily about Babylas, St. John Chrysostom said: "Who else in the world would he fear--he who, with such authority, repulsed the emperor?… By this, he taught emperors not to overreach their authority beyond the measure given to them by God, and he also showed the clergy how to use their own authority.'' The shamed emperor turned back, but planned revenge. The following day, he summoned Babylas and berated him, urging him to offer sacrifice to the idols, which, of course, the saint steadfastly refused to do. The emperor then bound Babylas and cast him into prison. The emperor also tortured three children: Urban, age twelve, Prilidian, age nine, and Hippolinus, age seven. Babylas was their spiritual father and teacher, and they, out of love for him, had not run away. They were the sons of Christodula, an honorable Christian woman who had herself suffered for Christ. The emperor first ordered that each child be beaten with a number of blows corresponding to his years, and then had them cast into prison. He finally had all three beheaded with the sword. The chained Babylas was present at the beheading of the children and encouraged them. After that, he laid his own honorable head under the sword. He was buried in his chains by the Christians, in the same grave as those three wondrous children, as he had willed before his martyrdom. Their holy souls flew off to their heavenly habitation, while their miracle-working relics remained for the benefit of the faithful, as a constant witness to their heroism in the Faith. They suffered in about the year 250.
! THE HOLY PROPHET MOSES THE GOD-SEER
Moses was a great leader and the lawgiver of Israel. He was born in Egypt in about 1550 B.C. For forty years, he lived at the court of the pharaoh; for forty years, he lived as a shepherd in contemplation of God and the world; and for his remaining forty years, he led the people through the wilderness to the Promised Land. He beheld the Promised Land, but was not allowed to enter it, for he had once sinned against God (Numbers 20:12). Moses reposed at the age of 120. As a miracle-worker, he was a prefiguring of Christ, according to St. Basil the Great. He appeared from the other world on Mount Tabor during the Lord's Transfiguration. According to the witness of St. John Climacus, he appeared also to the monks in the Monastery of Mount Sinai.
! THE HOLY MARTYRS MARCELLUS AND CASSIAN
Emperor Maximian Hercules once issued a command that all of his soldiers had to offer sacrifices to the idols. Marcellus was a soldier at that time, and Cassian was a notary (secretary). Marcellus, a Christian, declared: "If the military calling is bound up with sacrifice to idols, then I cannot be a soldier!'' He removed his military belt and arms and cast them aside. He was immediately sentenced to death. Cassian's duty was to write Marcellus's death sentence, but he refused to write it. They were beheaded together, and their souls took up habitation in the Kingdom of Heaven.
! HYMN OF PRAISE
! THE HOLY HIEROMARTYR BABYLAS
Before the doors of the holy temple
The wonderful shepherd bravely stood.
The bloody emperor wanted to enter,
But the shepherd would not let him.
"You know nothing of the true God;
You bow down before idols.
What do you seek, foul pagan,
Among right-believing Christians?''
The stubborn emperor turned violent
And chained Babylas.
Yet, smiling at the emperor,
Babylas glorified His Lord.
And the emperor sneered at the saint:
"Behold, these chains fit you nicely--
Just your size, contemptible old man--
Just as if they were tailored for you!''
Thus spoke the emperor, and he fell silent.
And Babylas replied to the emperor:
"I swear to you, that this iron
Is more precious to me than gold.
"These chains have more worth
Than your royal diadem!
O Emperor, I value them more
Than your entire realm.
"Because I wear these chains for Christ.
They are the price of my freedom,
For I shall dwell in eternity,
And by these chains I will enter therein.''
! REFLECTION
A saint's power after his death is often many times greater than in life. "That is why God left us the relics of the saints,'' says St. John Chrysostom in his unsurpassable homily on St. Babylas. St. Babylas was buried in the city of Antioch. At that time, Emperor Gallus--the brother of Julian the Apostate--was reigning together with Constantius, the son of Constantine the Great. Inspired by piety, Gallus translated the relics of St. Babylas to the outskirts of Daphne and built a small church, placing the relics of the martyr in it. There was a famous temple of Apollo in Daphne, built on the spot where, according to a pagan legend, a virgin had turned into a laurel tree in order to be saved from the "god'' Apollo, who was pursuing her out of unrestrained fleshly passion for her. There stood the idol of Apollo, which allegedly could foretell anyone's future. But, as the relics of Babylas now rested in the vicinity of the temple, the demon from the idol fell silent and ceased making prophesies. Later, when Emperor Julian the Apostate set out on his catastrophic war with the Persians, he visited the temple of Apollo and consulted the idol about the outcome of his impending war. The idol responded with trepidation that it could not render a clear response "because of the dead'' buried in its proximity. Of course, that pertained to Babylas, the presence of whose body had silenced the demon. Julian ordered that the relics of Babylas be transported back to Antioch. However, as soon as the relics of the martyr were removed, fire fell from heaven and consumed the temple of Apollo, destroying it forever. Julian set out against the Persians and his blasphemous life came to a horrible end. Such was the power of Christ's martyr after death: he silenced the demon, brought down fire from heaven, destroyed the idolatrous temple, and punished the apostate emperor with a dishonorable death.
! CONTEMPLATION
Contemplate God's punishment of David for his sins (II Samuel 15):
# How Absalom, David's son, raised a rebellion against his father;
# How David fled from Jerusalem before his son, and went barefoot and wept.
! HOMILY
! on the changing of water into wine
This beginning of miracles did Jesus in Cana of Galilee (John 2:11).
Our God is Almighty; and His power has no limit and is beyond description. He created all that was created by His Word: //By the Word of the Lord the heavens were made//(Psalm 33:6). By His Word, He created the body of man. By the Word of God, lifeless earth is transformed into the bodies of men, animals and plants. By the Word of God, flowing water is changed into vapor, and vapor into ice and snow. By this same Word, the water in a vine is changed into wine, //wine that maketh glad the heart of man// (Psalm 104:15). Therefore, how difficult a miracle was it for the Word of God Incarnate--Christ our Lord--to change water into wine in Cana? For us men, darkened by sin, this is a great miracle; for our nature, weakened by sin, it is an unattainable miracle. Yet, isn't the working of miracles the usual occupation of the Creator? When the servants filled the six large vessels with water, the Lord Christ said to them: //Draw out now, and bear unto the governor of the feast// (John 2:8). He did not even say, "Let the water become wine,'' he merely thought it. For God's thoughts have the same power as His words.
Why is it said that this was the "beginning of miracles,'' when it appears that, long before this miracle, the Lord worked other miracles? Because, brethren, the changing of water into wine is the fundamental miracle of Christ, and is the essence of all His miracles. Human nature was diluted with its own tears, and it was necessary to change it into wine. The divine spark in man was extinguished, and it was necessary to rekindle it. Infirmity is like water, health is like wine; the impurities of the evil spirits are like water, purity is like wine; death is like water, life is like wine; ignorance is like water, truth is like wine. Hence, whenever the Lord made the sick whole, the impure pure, the dead alive, and prodigals enlightened, He essentially turned water into wine.
O Lord our God, Thou miraculous Transformer of water into wine: bring Thy divine flame to our extinguished hearth. Transform the water of our being into divine wine, that we may be like unto Thee--and that we may thus abide with Thee in Thine Immortal Kingdom, with Thy radiant angels.
To Thee be glory and praise forever. Amen.
! THE HOLY PROPHET ZACHARIAS
He was the father of St. John the Forerunner. Zacharias was the son of Barachias, from the lineage of Abia, of the sons of Aaron. Zacharias was a high priest who held the eighth degree of service in the Temple at Jerusalem. His wife Elizabeth was the daughter of Sophia and sister of St. Anna, who was the mother of the Holy Theotokos. During the reign of King Herod the child-slayer, Zacharias was serving one day at the Temple of Jerusalem according to his turn. An angel of God appeared to him in the sanctuary, and Zacharias had great fear. The angel said to him: //Fear not, Zacharias//(Luke 1:13), and announced that Elizabeth would bear a son, in answer to their prayers. But both Zacharias and Elizabeth were old. When Zacharias doubted the words of the heavenly herald, the angel said: //I am Gabriel, that stand in the presence of God// (Luke 1:19). Zacharias was struck dumb from that hour, and could not speak until his son was born and he had written on a tablet: //His name is John// (Luke 1:63). Then his speech returned, and he magnified God.
Some time later, when the Lord Jesus had been born and Herod began to slaughter the children of Bethlehem, he sent men to find and kill the son of Zacharias--for Herod had heard all that had happened to Zacharias, and how John had been born. Upon seeing the soldiers coming, Elizabeth took John into her arms--he was a year and a half old at that time--fled from the house with him, and ran to a rocky and desolate place. When she saw the soldiers following her, she cried out to the mountain: "O mountain of God, receive a mother with her child!'' and the rock opened and hid the mother and child. Then Herod, enraged that the child John had not been slain, ordered that Zacharias be slain before the altar. The blood of Zacharias was spilled on the marble and dried solid as stone, and remained as a witness to Herod's evil deed. In the place where Elizabeth hid with John a cave opened, water flowed out of it, and a fruit-bearing palm grew, all by the power of God. Forty days after the death of Zacharias, the blessed Elizabeth died. The child John remained in the wilderness, fed by an angel and protected by God's providence, until the day he appeared at the Jordan.
! THE HOLY MARTYRS JUVENTIUS AND MAXIMINUS
Little is known about the life of these two holy men, but their suffering for Christ is known from a sermon by St. John Chrysostom praising them. They were soldiers during the rule of Emperor Julian the Apostate. In conversation with others during a military feast, they condemned the emperor for his persecution of Christians. Someone told the emperor of this, and he had them thrown into prison. Some of the emperor's men visited them with the intention of turning them away from the true Faith. They told Juventius and Maximinus that many of their companions had denied Christ. To this, the two nobly replied: "Then we must stand bravely, and offer ourselves as a sacrifice for their apostasy.'' They were beheaded with the sword in the dark of night, but their relics were found and were revealed to be miracle-working.
! SEVENTY HOLY MARTYRS
Headed by Urban, Theodore and Medimnus, these men were chosen from among the Christians of Constantinople during the Emperor Valens's persecution of Orthodoxy, as the most respected and distinguished citizens of the capital, to go to Nicomedia to implore the heretical emperor (an Arian) to at least spare the lives of Orthodox Christians. The emperor became enraged and told them to go back, but secretly ordered his sailors to set the boat on fire when they were at sea, and to save themselves in a dinghy. The wicked servants of the even more wicked master did this. The bodies of these glorious seventy martyrs were burned and drowned in the sea, but their souls swam on to the haven of eternal blessedness.
! THE VENERABLE ATHANASIUS
He labored in asceticism in Vilnius, and was later the abbot of a monastery in Brest. Because of his unwavering faith in Orthodoxy, he was beheaded by the Roman Catholics on September 5, 1648. His miracle-working relics repose in Brest.
! HYMN OF PRAISE
! THE SEVENTY HOLY MARTYRS
Why is the midnight sea so bright?
What manner of terrible flame springs from the water?
It is the tongue of malice, which speaks with fire,
And burns a ship at sea.
The heretical emperor mocks Orthodoxy,
And burns seventy friends with fire.
It is the feast of Valens, a bestial emperor--
A heretic is often more cruel than an unbeliever.
Seventy deaths! For what crime?
For having stood before the emperor's face with an appeal,
Imploring that he spare the innocent--
For this, he burned them with fire.
The dry boat burned like straw in a stack,
The flame ascended to heaven like an accusation:
The men all knelt in the flames
And raised up a prayer to God and the saints:
"Accept our sacrifice, O All-seeing God!
Help us to sail to the Heavenly Kingdom!''
In the raging flames, the bodies gave off a fragrance,
Like pure incense before the holy altar.
These are the pure sacrifices of Holy Orthodoxy
Strengthened by torture, and glorifying God.
The sea cools the seventy bodies,
And seventy souls take delight in Paradise!
In the Church, their glory is proclaimed,
But the disgraced Valens faces God's punishment.
! REFLECTION
Men strive in vain to discover those things that God intentionally conceals from them. If God had not permitted, men would never have found gold and silver beneath the earth, or the power of steam or the glow of electrical light. In vain, Herod slaughtered countless children in Bethlehem in order to slay One. That One was hidden from the sight and sword of Herod. In vain did Herod seek John. Behold the wonder: soldiers pursued the aged Elizabeth, who was fleeing with John in her arms--and could not catch up with her! The enraged Herod summoned Zacharias and demanded: "Give me your son John!'' The aged priest meekly replied: "I am now serving the Lord God of Israel. I know not where my son is.'' Insane with rage, Herod ordered Zacharias slain in place of John. The servants of the king entered the Temple and asked Zacharias: "Where have you hidden your son? Give him to us, for the king has so ordered. If you do not give him to us, you yourself will die.'' Zacharias replied: "You will kill my body but the Lord will receive my soul.'' Thus Zacharias was slain, but Herod was not content with that. The wicked king had no peace, day or night, for he was tormented by a foreboding that John could be that newborn king proclaimed by the Magi from the East. Herod tried to find him, but in vain, for God had intentionally hidden him.
! CONTEMPLATION
Contemplate God's punishment of David for his sins (II Samuel 17):
# How Absalom warred with his father and how many people died in that war;
# How Absalom perished;
# How David wept bitterly.
! HOMILY
! on the necessity of a second or spiritual birth
Except a man be born again, he cannot see the Kingdom of God (John 3:3).
Thus the Lord Jesus spoke to Nicodemus, a ruler of the Jews, and Nicodemus asked in amazement: "How can this be?'' That is, how can a man be born again? Even to this day, many ask: "How can a sensual man become a spiritual man?'' "How can a sinner become a righteous one?'' "How can the grace of God enter a man and replace his sensual thoughts and will?'' "How can the Holy Spirit illuminate the heart of man?'' "How can water be changed into wine?'' We know that when the Spirit of God descended upon the apostles, they became different men--new men, reborn men. We also know, from thousands of examples, how men of sensual thoughts and sensual life became spiritual men, regenerated men. Therefore, we know that it happened then and happens now, by the action of the grace of God the Holy Spirit. It is not necessary for us to ask how this happens. It is enough for us to know that it does happen, and to strive that it happen in us, for the grace of the Spirit is given to everyone who seeks it and prepares himself to be able to receive it. There is no more difficult task than to explain spiritual things to men who think and judge only sensually. St. John Chrysostom says: "A soul which is given over to passions cannot achieve anything great and noble, for it suffers from a grievous blindness, like that of eyes darkened by the flow of pus.'' Usually the most sensual men inquire about the greatest divine mysteries. They do not inquire about that in order to know how they can be saved, but rather to confuse the faithful and to ridicule the Faith, and to justify their own sinful and passionate life. Unable to raise themselves to the first rung of the heavenly ladder, they fantasize about the last rung. Brethren, when such as these inquire about the profoundest mysteries of the regeneration of the soul and the Kingdom of Heaven, ask them, first of all, to fulfill the ten basic commandments of God. If they do this, then their souls will be opened to the understanding of the Divine Mysteries, inasmuch as that understanding is necessary for the cleansing of their sins and passions, and for eternal salvation.
O Lord Jesus Christ, our Most-gracious and All-wise Teacher, help us to understand with our minds, and embrace with our hearts, as much of Thy wisdom as is necessary for our salvation. Help us to keep ourselves from undue curiosity.
To Thee be glory and praise forever. Amen.
! THE COMMEMORATION OF THE MIRACLES OF THE HOLY ARCHANGEL MICHAEL
Near Hierapolis, in Phrygia, there was a place called Chonae ("plunging"), and in that place there was a spring of miraculous water. When Apostle John the Theologian, accompanied by Philip, preached the Gospel in Hierapolis, he looked upon that place and prophesied that a spring of miraculous water would open up there, from which many would receive healing, and that the great Archangel of God Michael would visit that place. Soon afterward, this prophecy was fulfilled: a spring of water burst forth and became widely known for its miraculous power. A pagan in Laodicea had a daughter who was mute, which caused him great sorrow. Archangel Michael appeared to him in a dream, and told him to take his daughter to the spring, where she would be cured. The father immediately obeyed, brought his daughter to the spring, and found many people there seeking deliverance from various infirmities. These people were all Christians. The man asked how he should seek healing, and the Christians told him: "You must pray to the Archangel Michael, in the name of the Father and of the Son and of the Holy Spirit.'' The man prayed in this way, gave his daughter a drink of this water, and the girl began to speak. The pagan, his daughter and his whole household were baptized. He also built a church over the spring dedicated to the Archangel Michael.
Later, a young man named Archippus settled there and lived a life of austerity, in fasting and prayer. The pagans did many malicious things to Archippus, for they did not like the fact that this Christian holy place emanated such spiritual power and attracted so many people to it. The pagans, in their wickedness, rerouted the nearest river in order to flood the church and the spring. By the prayers of Archippus, the holy Archangel Michael opened a fissure in the rock beside the church, and the river's water plunged into it. This is how that place was saved and why it was called Chonae, or "of the plunging," for the river's water that plunged into the open fissure. St. Archippus labored in asceticism there until the age of seventy, and peacefully reposed in the Lord.
! THE HOLY MARTYR ROMULUS AND 11,000 SOLDIERS
While Emperor Trajan waged war in the East, he once commanded that the Christians in his army be counted. It was found that there were 11,000 Christians in the imperial army. The emperor then ordered that they all be dismissed from the army and sent to Armenia. St. Romulus was the overseer of the imperial household. He went before the emperor and reprimanded him for this action, declaring himself a Christian. The emperor gave order that Romulus be beheaded. Of those banished soldiers, the emperor had 10,000 of them crucified. The others were slain by various tortures.
! SAINT EUDOXIUS
Eudoxius was a commander in the Roman army. He suffered for Christ during the reign of Diocletian. He was tried and tortured by the governor of Melitene in Armenia. His friends Zeno and Macarius also suffered with him, as well as 1104 other soldiers who had been converted to Christianity by Eudoxius. After his death Eudoxius appeared to his wife Basilissa, who remained faithful to Christ to the time of her peaceful repose.
! THE VENERABLE DAVID
He was the leader of a band of robbers near Hermopolis, in Egypt. He came to his senses only in his later years, when he repented and was tonsured a monk. The Archangel Gabriel appeared to David and granted him miraculous power. After many difficult ascetic practices, David became worthy of the Kingdom of God and reposed peacefully in the sixth century.
! HYMN OF PRAISE
! The Holy Archangel Michael
Archangel of God
Michael the Commander,
The sword-bearing servant
Of the Lord Most-high.
He stands before the Lord
With the heavenly hosts,
With the mighty angels
And the holy souls.
The greatest commander
Of the Greatest King,
Wherever he goes, he conquers
And works miracles.
He is the one whom Satan
Fears like flame,
For the commander of God
Stands for truth.
He stands for truth,
And upholds justice;
Fast as sight
He can be anywhere swiftly.
The commander of light,
He drives the impure away,
And with his wings
Protects the faithful.
! REFLECTION
Christianity has uprooted many barbaric customs from the society of man. But some of those customs--praiseworthy from the pagan point of view, but shameful from the Christian point of view--are, even to the present day, like hidden corruption oozing from a supposedly healed wound. One of these customs is the unlawful kidnapping of maidens. St. Basil wrote powerfully to one of his priests, after one such incident: "Do all in your power to find and rescue this maiden. Then, return her to her parents and excommunicate the perpetrator. Also suspend those who abetted him--including their entire households--from participation in services for three years. Likewise, suspend everyone in the village to which the maiden was taken, where she was hidden or perhaps kept by force--so that all will know that a kidnapper should be driven away from them like a serpent or some other wild beast or common enemy, and that the abused should be protected.''
! CONTEMPLATION
Contemplate the example of David's self-restraint (II Samuel 23):
# How, during battle against the Philistines, David became thirsty, and asked who would bring him water from the well in Bethlehem, which was held by the Philistines;
# How three heroes slipped through the enemy lines, and brought water back to their king;
# How David did not want to drink, but rather poured the water on the ground, saying: //Is not this the blood of the men that went in jeopardy of their lives?//
! HOMILY
! on the two births
That which is born of the flesh is flesh; and that which is born of the Spirit is spirit (John 3:6).
Brethren, these words are not the words of a prophet or an apostle, but are the words of the Lord Himself, uttered with His most pure mouth. As there is power and salvation in every one of the Lord's words, so is there power and salvation in these. That is why it is necessary to study these words with fear and great care and apply them in our lives. By these words the Lord emphasizes the precedence of the spirit over the flesh. And, as the flesh is born of the body, so the spirit must be born of the Spirit. The birth of our spirit is of the Spirit of God, according to the grace of God and not according to nature. It is the new birth that the Lord described to Nicodemus, a ruler of the Jews. Nicodemus did not understand these words of Christ, just as, even today, he whose flesh is stronger than his spirit does not understand them. Men whose flesh has overcome their spirit think and judge everything according to the body. Men whose spirit has overcome their body think and judge everything according to the spirit. All those who think and judge according to the body make their spirits fleshly, while all who think and judge spiritually make their bodies spiritual. Just like someone exchanging gold for paper money, the former convert that which is immortal into that which is mortal. The latter are like someone exchanging paper money for pure gold--for they do not destroy that which is immortal, but convert that which is mortal into that which is immortal. The Jews interpreted the Law and the Prophets according to the flesh, and that is why they did not understand the Lord Jesus, but crucified the Lord of Glory. Those who were enlightened by the grace of the Spirit of God interpreted both the Law and the Prophets spiritually, and understood our Lord Jesus Christ. And through Him, they understood not only the Law and the Prophets, but all of created nature as well, and all of their life on earth. Brethren, although the body is necessarily born of the flesh, it would be unnatural for the spirit also to be born of the flesh. Let our spirit be born of the Spirit of God and then we will be natural, both in body and in spirit. This is that higher and sinless nature that Adam had in Paradise before he sinned. It is not possible or necessary for our body to be born again of the flesh. It is possible and necessary, and never too late, for our spirit to be born again of the Spirit of God.
O Lord Jesus Christ, the Only-begotten Son of God--help us, that before death we may become reborn of the Spirit of God, and that our spirits, in truth, be born of the Spirit.
To Thee be glory and praise forever. Amen.
! THE HOLY MARTYR SOZON
Sozon was born in Lyconia. He was a shepherd and kept all of God's laws, instructing his peers and friends in his pious Faith. In a vision he was shown that he would suffer martyrdom for Christ. This was in the time of Maximian, magistrate of Cilicia, who perpetrated a terrible persecution of Christians in the nearby city of Pompeiopolis. In that city there was a certain golden idol which the pagans worshiped. Sozon left his flock, went to the city, entered the pagan temple and broke the arm off the golden idol. He crumbled it into bits and distributed it to the poor. There was a great uproar because of this, and the pagans sought out the guilty one. So that no one else would suffer for his deed, Sozon went to the magistrate and declared himself to be a Christian and the perpetrator of that act. His torturers first beat him, then suspended him from a tree and scraped his body with iron combs. When he was nearly dead, they cast him into a fire, where St. Sozon gave up his holy soul to God. He suffered in about the year 304. St. Sozon's relics were miracle-working, and a church in his name was built over them.
! THE HOLY APOSTLES EUODUS AND ONESIPHORUS
Euodus and Onesiphorus were apostles of the Seventy. St Ignatius the God-bearer mentions Euodus with great praise in his Epistle to the Antiochians. Euodus was a disciple of the Apostle Peter, and his successor as Bishop of Antioch. The Apostle Peter himself consecrated him. Euodus wrote a work on the Holy Theotokos, in which he related how the Holy Virgin Mary was brought to the Temple at the age of three, and remained in the Temple for eleven years; how, on entering her fifteenth year, she was entrusted to St. Joseph for protection; and how, at age fifteen, she gave birth to the Lord. Euodus also wrote another work entitled "The Beacon." However, both of these works were destroyed during the persecution of Christians. He was slain for Christ during Emperor Vespasian's persecutions in Antioch. The Apostle Paul mentions St. Onesiphorus as his sincere friend and helper (II Timothy 1:16-18). St. Onesiphorus suffered for Christ in Colophon, where he was bishop. It is said that he was tied to wild horses and pulled apart. Thus, these faithful soldiers of Christ honorably served on earth, and entered into the joy of their Lord.
! THE HOLY MARTYR EUPSYCHIUS
Eupsychius was the son of Dionysius, a senator. He was severely tortured for Christ, being beaten and scraped, and was thrown half-dead into prison, where an angel of God came to him and healed him. Released from prison, he distributed all of his possessions--some to the poor and some to his slanderers. He was arrested again, and his body was scraped until he gave up his soul to God. Instead of blood, milk and water flowed from his wounds. He suffered in the time of Emperor Hadrian.
! SAINT JOHN, ARCHBISHOP OF NOVGOROD
John was a priest who was ordained Bishop of Novgorod in 1163. He built seven churches during his lifetime. He had a vision of the Holy Theotokos, and had unusual power over demons, whom he even forced to serve him. He miraculously saved Novgorod from an attack by seventy-two princes. He suffered from diabolical temptations, but by the power of the Cross and much prayer he overcame them all. In old age, he withdrew to a monastery and received the great schema. He reposed peacefully in the Lord on September 7, 1185.
! HYMN OF PRAISE
! THE HOLY MARTYR SOZON
The young Sozon, a right-believing hero,
Stood erect before the unbelievers--
He stood straight, fearing nothing,
Holding his mind immersed in God,
Standing with his mind firm in heaven.
The tormentor subjected him to torture
For breaking the arm of the golden idol.
"I broke it," Sozon replied,
"To see if it would rebuke me,
But the idol's two arms are lifeless.
In vain do you offer sacrifices.
The lifeless idol said not a word to me,
And had no power to keep me from breaking its arm.
This dead thing was mute, as it has no spirit in it,
Nor understanding, nor sight, nor hearing.
I took the arm, not for theft
But to distribute bread to the poor.
O pagans, it was for your salvation
That I distributed this dead stone,
To bring some light into your souls,
That you might recognize the Living Christ as God."
Sozon knelt, and prayed to God,
And shed his blood for truth.
Sozon, the wonderful, unsurpassable hero,
Whose limitless source of strength was God.
! REFLECTION
Victory over anger is one of the greatest victories of a soldier of Christ. We generally become angry either at those we wish to turn back from sin, or at those who slander us. However, in doing so we forget that anger is a mortal sin, and in desiring the salvation of others we lose our own, according to the words of St. Macarius. Anger against our enemies is usually tied to another evil impulse, the desire for revenge. St. Eupsychius so overcame the passion of anger in himself, that before his death, he gave one portion of his great estate to the poor and another portion to his slanderers, because of whom he was being tortured and slain. He considered his slanderers as his benefactors. St. John Chrysostom writes: "Let us clip the wings of anger, and evil will not rise high. Anger is an evil sickness that can destroy our souls…. Anger is a terrible fire which devours everything…. If an angry man could see himself at the moment of his anger, he would need no other counsel not to become angry--because there is nothing more unpleasant than an angry face." Abba Ammon confessed of himself: "I spent fourteen years in Scetis, praying to God day and night, to give me victory over anger."
! CONTEMPLATION
Contemplate Solomon's honoring of his mother (I Kings 2):
# How his mother went to her son to ask something of him;
# How he stood up, met his mother and bowed before her--even though he was king;
# How, when he sat down on his throne, he placed his mother at his right hand.
! HOMILY
! on spiritual food
My meat is to do the will of Him that sent Me (John 4:34).
Behold, here is love! Behold, here is instruction! Behold, here is humility! Behold, here is an example! As there is in good bread all that is needed for our body, so in every word of the Lord Jesus Christ there is all that is needed for our soul. The divine unity of the nature of the Father and the Son is expressed in the love of the Father for the Son, and the Son for the Father. He who loves, obeys. If you want to know how great your love for God is, measure your obedience to the will of God and you will know immediately. A lack of obedience is a sure sign of the lack of love. He who loves, fulfills the will of his beloved. The Son of God loves His Father so much that He regarded fulfilling the Father's will as the sweetest food. What is the will of the Father? The salvation of mankind. Our Lord, the Son of God, felt the insatiable hunger to fulfill the Father's will. When He saved someone, He felt as if nourished with the sweetest food. Do you see how exalted Christ's spirituality is? His disciples brought Him food from the city and urged Him: //Master, eat! //At that moment He was too occupied with His main work, the saving of human souls. There was the Samaritan woman, ready to embrace the teaching of salvation; there was the entire city of Sychar, already drawn to the Kingdom of God; and there was the great field ready for the harvest of salvation. For Christ this was food sweeter than all physical food and worldly sweetness. The body is a vehicle in which man, the king, rides. When the king performs his royal duty--ransoming his heirs from bondage--the vehicle must be put aside and not interfere in the work of the king. The king is so focused on saving his beloved heirs, that this mission is his food, drink, reward, sole satisfaction and dignity. O my brethren, if you could know how much Christ the Lord hungers, even today, for our salvation! If we did, then we would give Him the food that He likes most! Who is a greater guest, closer relative, or more sincere friend than He? When we host far lesser guests, more distant relatives and less sincere friends, we give them the food that we know they like. Then, why do we not host our Lord with the only food that is pleasing to Him? Let us embrace the salvation that He offers us--that, for Him, is the most pleasant food. He turns His head away from all other food.
O Lord Jesus, insatiable Lover of our salvation, have mercy on us and save us.
To Thee be glory and praise forever. Amen.
! THE NATIVITY OF THE MOST-HOLY THEOTOKOS
The Holy Virgin Mary was born of aged parents, Joachim and Anna. Her father was of the lineage of David, and her mother of the lineage of Aaron. Thus, she was of royal birth by her father, and of priestly birth by her mother. In this, she foreshadowed Him Who would be born of her as King and High Priest. Her parents were quite old and had no children. Because of this they were ashamed before men and humble before God. In their humility they prayed to God with tears, to bring them joy in their old age by giving them a child, as He had once given joy to the aged Abraham and his wife Sarah by giving them Isaac. The Almighty and All-seeing God rewarded them with a joy that surpassed all their expectations and all their most beautiful dreams. For He gave them not just a daughter, but the Mother of God. He illumined them not only with temporal joy, but with eternal joy as well. God gave them just one daughter, and she would later give them just one grandson--but what a daughter and what a Grandson! Mary, Full of grace, Blessed among women, the Temple of the Holy Spirit, the Altar of the Living God, the Table of the Heavenly Bread, the Ark of God's Holiness, the Tree of the Sweetest Fruit, the Glory of the race of man, the Praise of womanhood, the Fount of virginity and purity--this was the daughter given by God to Joachim and Anna. She was born in Nazareth, and at the age of three, was taken to the Temple in Jerusalem. In her young womanhood she returned again to Nazareth, and shortly thereafter heard the Annunciation of the Holy Archangel Gabriel concerning the birth of the Son of God, the Savior of the world, from her most-pure virgin body.
! THE FEAST OF THE HOLY THEOTOKOS OF KALIŠTO
In the Monastery of the Holy Theotokos near the village Kališto, west of Struga in Macedonia, the Holy Mother of God manifested her power and mercy through numerous miracles. Many of the sick were miraculously healed, and thieves who thought to plunder or desecrate the monastery were severely punished by an invisible power. There is a miracle-working icon of the Holy Theotokos in the church there; nearby, there are two springs of healing water: that of St. Peter and that of St. Ananias. The Chapel of St. Athanasius is located in a cave not far from the main church.
! THE FEAST OF THE ICON OF THE HOLY THEOTOKOS OF POCHAEV
In the province of Volhynia there is a famous Monastery of the Holy Theotokos, in Pochaev. The Holy Mother of God first appeared in about 1340 to one of two monks who were laboring in asceticism in a cave there. From that time on, the place has been an inexhaustible font of numerous miracles.
! HYMN OF PRAISE
!
! THE NATIVITY OF THE MOST-HOLY MOTHER OF GOD
O greatly desired and long awaited one,
O Virgin, thou hast been obtained from the Lord with tears!
A bodily temple of the Most-holy Spirit shalt thou become,
And shalt be called Mother of the Eternal Word.
The Burning Bush they called thee,
For thou wilt receive within thyself the divine fire:
Ablaze with fire but not consumed,
Thou shalt bear the Golden Fruit and offer it to the world.
Thou shalt be the Bearer of Him Who bears the heavens,
To Whom all of heaven offers up praise!
The Miracle of miracles shall come to pass within thee,
For thou shalt bear heaven, thou who art "more spacious than the heavens!''
Thou art more precious to us, O Virgin, than precious stones,
For thou art the source of salvation for mankind.
For this, may the entire universe glorify thee,
O Most-holy Virgin, O white Turtledove!
The King of Heaven shall desire to enter the world,
And shall pass through thee, O Beautiful Gate!
O Virgin, when thou dost become woman thou shalt bear Christ for us;
From thy body, the Sun shall blaze forth.
! REFLECTION
St. Dionysius the Areopagite writes of the immeasurable joy, the outer and inner radiance, and the indescribable fragrance that he sensed in the presence of the Holy Theotokos when he visited her in Jerusalem. In his zeal, he says that if he had not known the One True God, he would have recognized her, the Holy Virgin Mary, as God. The Holy Virgin made such a powerful and unique impression on men during her earthly life--and she received an incomparably greater power and glory after her physical death when, by the will of God, she was exalted above the heavenly hosts. Her power comes from her ceaseless prayer for the faithful, for all those who turn to her for help. When St. John of Novgorod and his people prayed to her for help against a hostile army, he understood that she was simultaneously praying to the Lord with tears in their behalf, and Novgorod was miraculously saved. As she was compassionate toward her crucified Son, so the Holy Most-pure One is also compassionate toward all those in need, and who turn to her for help. It could be said that the entire earth is covered by the miracles of her mercy. Even today, there lives in Belgrade a café owner (C.J.), who was born in the village of Labunište (Macedonia) outside Struga. His mother brought him blind to the Monastery of Kališto, where, after the priest prayed over him before the icon of the Holy Theotokos, he received his sight. The first monk at Pochaev saw a fiery pillar extending from earth to heaven, and in that flaming pillar he saw the Holy Theotokos. She was standing on a rock. On the spot where she stood, a spring of healing water sprang forth: even today, it heals many of the sick.
! CONTEMPLATION
Contemplate God's wonderful gift to Solomon (I Kings 3):
# How the Lord appeared to Solomon in Gibeon, and asked him his desire;
# How Solomon asked for //an understanding heart//, in order to judge the people and recognize good and evil;
# How God gave him that which he sought, as well as that which he did not seek.
! HOMILY
! on the equality of the Son and the Father
The Son can do nothing of Himself but what He seeth the Father do (John 5:19).
Brethren, how are we to understand these words? In the same way as some heretics understood them--that is, that the Son is lesser and weaker than the Father? In no way. The mouths that interpreted these words of the Lord this way spoke blasphemy. We must understand these words as our Holy Fathers understood them--that the Son is equal to the Father in all things; and that, because of their equality of will, love, and wisdom, the Son can do nothing contrary to the Father's will, or contrary to the love of the Father, or contrary to the wisdom of the Father. Thus, the Father cannot do anything contrary to the Son, and the Holy Spirit cannot do anything contrary to the Father or the Son. Everything that the Father wills and loves and thinks, is also willed, loved and thought by the Son and the Holy Spirit. Harmony unequaled; unity undivided; being inexpressible! Therefore, it is obvious that the Son can and will do //nothing of Himself//--nothing of His own accord, nothing without harmony and unity with the power of the Father and the will of the Father. The Lord Himself further witnesses that this interpretation is true by His words: //For as the Father raiseth up the dead, and quickeneth them; even so the Son quickeneth whom he will// (John 5:21). Do you see the equality of will and power? That which the Father wills, the Son wills also; that which the Father can do, the Son can also do. Therefore, let no one separate Their Divinity, and thus bring down a curse upon himself. God cannot be divided, and one who tries to divide Divinity--and to lessen one Person and to exalt the other Person--cannot be saved.
O Most-holy Trinity, our God, Three in Persons, and One in Essence--Life, Light and Love--look down upon us, and have mercy on us.
To Thee be glory and praise forever. Amen.
! SAINTS JOACHIM AND ANNA
St. Joachim was of the lineage of Judah and a descendant of King David. Anna was the daughter of Matthan the priest, from the lineage of Levi, as was Aaron the high priest. Matthan had three daughters: Mary, Sophia and Anna. Mary married, lived in Bethlehem and gave birth to Salome; Sophia married, also lived in Bethlehem, and gave birth to Elizabeth, the mother of St. John the Forerunner; Anna married Joachim in Nazareth, and in old age gave birth to Mary, the Most-holy Theotokos. Joachim and Anna had lived together in marriage for fifty years, and yet had remained barren. They lived devoutly and quietly, and of all their income they spent one third on themselves, distributed one third to the poor and gave the other third to the Temple, and they were well provided for. Once when in their old age they came to Jerusalem to offer a sacrifice to God, the high priest Issachar reprimanded Joachim, saying: "You are not worthy that a gift be accepted from your hands, for you are childless.'' Others, who had children, pushed Joachim behind them as one unworthy. This greatly grieved these two aged souls and they returned home in great sorrow. Then the two of them fell down before God in prayer, that He work a miracle with them as He once had with Abraham and Sarah, and give them a child as a comfort in their old age. Then God sent His angel, who announced to them the birth of "a daughter most-blessed, by whom all nations on earth will be blessed and through whom the salvation of the world will come.'' Anna straightway conceived, and in nine months gave birth to the Holy Virgin Mary. St. Joachim lived for eighty years and Anna lived for seventy-nine, at which time they reposed in the Lord.
! THE COMMEMORATION OF THE THIRD ECUMENICAL COUNCIL
This Council met in Ephesus in 431 at the time of Emperor Theodosius the Younger. There were two hundred Holy Fathers present at this Council. This Council condemned Nestorius, Patriarch of Constantinople, for his heretical teachings concerning the Most-holy Virgin Mary and the birth of the Lord. Nestorius did not want to call the Holy Virgin the Theotokos (Birth-giver of God), but rather the Christotokos (Birth-giver of Christ). The Holy Fathers condemned the teachings of Nestorius and confirmed that the Holy Virgin be called the Theotokos. Besides this, the Council confirmed the decisions of the First and Second Ecumenical Councils--especially as regarding the Nicaean-Constantinopolitan Creed, commanding that no one take from or add to the Creed.
! THE HOLY MARTYR SEVERIAN
Severian was a nobleman from Sebaste. During the martyrdom of the Forty Martyrs of Sebaste (March 9), he visited them in prison, encouraging and ministering to them. After their glorious repose he too was arrested, beaten and tortured for Christ. Finally, he was hanged from a tree with a heavy stone around his neck and another dangling from his feet. Giving thanks to God for everything, Severian gave up his spirit. This was during the reign of Emperor Licinius, in the year 320.
! SAINT THEOPHANES THE CONFESSOR AND FASTER
After a God-pleasing life and much suffering, Theophanes reposed peacefully in the year 299.
! SAINT NICETAS THE GOD-PLEASER
Nicetas lived in Constantinople in the twelfth century. He so pleased God by his life that the church doors opened of themselves before him, and the icon lamps lit by themselves. Such was the power of his prayer. At the wish of Deacon Sozon, and by the prayer of Nicetas, a priest appeared from the other world, from whom Sozon had been estranged and had remained unreconciled. There first appeared a row of priests vested in white and then another row of priests in red vestments. Sozon recognized his former opponent among them, and made peace with him. This occurred at night, in the Blachernae Church.
! HYMN OF PRAISE
! SAINTS JOACHIM AND ANNA
Be glad, O barren one;
Be glad, O aged Anna.
You will conceive and give birth
To a wondrous child, a chosen one--
As once did the aged Sarah,
And the mother of Samson,
And the mother of Samuel,
And the mother of John--
Yet you will be more glorious than all,
For you will give birth from the womb
To the wonderful Virgin, the only
Wonderful Mother of the Most-high King.
Be glad, O Joachim,
Father of the unprecedented mother,
Of whom the Creator desires
To be clothed with glory.
The Law loses its power
When God wills, and where He wills.
Who can gainsay God?
Can there be any dispute with God?
Not by disputation, but by love
Does God change His laws.
Before love, all laws
Are as if nonexistent.
When men hunger, the Lord
Makes the dry field fertile;
And because of the spiritual hunger of the world,
He makes the barren one fertile.
For the salvation of men, the Lord
Arranges all for the best.
That is why all the Church of the saints
Cries out to Him: Glory! Glory!
! REFLECTION
One should not give alms with pride but rather with humility, considering the one to whom the alms are given to be better than oneself. Did not the Lord Himself say: //Inasmuch as ye have done it unto one of the least of these My brethren, ye have done it unto Me// (Matthew 25:40)? Theophanes the Confessor possessed a mind illumined by the light of Christ, even as a child. Once, while walking along the street, he saw a naked child freezing. He quickly removed his clothes, clothed the child and thus warmed him and brought him back to life. He then returned home naked. His startled parents asked him: "Where are your clothes?'' To this Theophanes replied: "I clothed Christ.'' This is why he was given the grace of Christ, and was later a great ascetic, a sufferer for the Christian Faith and a miracle-worker. Often, when we give alms, either in someone else's name or in our own name, we cannot avoid pride which, as soon as it appears in the heart, destroys all the good deeds performed. When we give to the beggar as to a beggar and not as to Christ, we cannot avoid pride or disdain. What value is there in performing an act of mercy, while taking pride in ourselves and disdaining the man? Virtue is not a virtue when it is mixed with sin, just as milk is not milk when it is mixed with gasoline or vinegar.
! CONTEMPLATION
Contemplate the wisdom of Solomon (I Kings 3):
# How two women disputed over a child, and each said that the child was hers;
# How Solomon ordered that the child be cut in two; and one half be given to each woman;
# How the real mother cried out for the child, and thus made it known that the child was hers.
! HOMILY
! on God's testimony of Himself
If I bear witness of Myself, My witness is not true (John 5:31).
This is how the Lord spoke to a false and lying people. He spoke these words to the elders of the Jews, not as an instruction, but rather as a reproach. They did not believe one man when he spoke for himself, but rather sought two witnesses. Brethren, do not even think that what the Lord says of Himself is not true--but rather, that the Jews did not consider it as true. From this, according to the interpretation of our Holy Fathers, the words //My witness is not true//must be understood to mean that this witness was not true in the eyes of the Jews. That every word that the Lord Jesus spoke about Himself is true He expressed in another place, saying: //Though I bear record of Myself, yet My record is true// (John 8:14). Here the Lord teaches, there He reproaches; here He confirms how a thing is; there, how the thing seemed to be to the Jews. The Jews did not believe His witness about Himself, but sought other witnesses. Therefore, He cited three great witnesses--the witness of His own works: //The same works that I do, bear witness of Me// (John 5:36); the witness of His Heavenly Father, Who bore witness to Him as His Son at the Jordan and on Mount Tabor: //And the Father himself, which hath sent Me, hath borne witness of Me// (John 5:37); and finally, the witness of the Holy Scriptures: //Search the scriptures … they are they which testify of Me// (John 5:39). With a bit of understanding, what other kind of witness would a man require? But the understanding of the Jewish elders was darkened to so great an extent that they were unable to see or understand anything. When the Lord, the Lover of Mankind, did all that was necessary to save the Jewish elders, and when they rejected all the witnesses about Him, thereby rejecting even their own salvation, He then said to them: //Though I bear record of Myself, yet My record is true// (John 8:14).
O my brethren, let us not be stony-hearted as were those blind elders, and let us not reject our only salvation. We do not seek any other witnesses, but rather believe that which the Lord Jesus alone says of Himself. He said of Himself, //I am … the Truth// (John 14:6), and it is by this Truth that we are nourished and saved.
O Lord Jesus, the Living Truth, the Eternal Truth--do not withdraw from us, but enlighten us and save us.
To Thee be glory and praise forever. Amen.
<$list filter="[prefix[Prologue -]days:created[-14]sort[created]first[]]">
<$link to={{!!title}}>Prologue for Today - Old Calendar<br></$link>
</$list>
<$list filter="[prefix[Prologue -]days:created[-1]sort[created]first[]]">
<$link to={{!!title}}>Prologue for Today - New Calendar<br></$link>
</$list>
The Prologue from Ohrid is a publication, usually printed in two volumes, that is compilation of individual entries on lives of saints of the Orthodox Church. The Prologue is the work Nikolai Velimirovic, a bishop and saint of the Orthodox Church who lived from 1880 to 1956.
The entries for individual saints is organized by the date of their feast day. In addition to a short biography or "life of a saint" the Prologue also included hymns, reflections, and homilies, usually related to a particular saint. It was originally written in Serbian and is now available in translation. St. Nikolai is often referred to as the Serbian "Chrysostom".
St. Nikolai wrote the Ochridski Prolog (The Prologue of Ohrid) during a period in 1928 when he was in Serbia. He patterned his work after the ancient hagiographical literature in which he wrote brief Lives and edifying incidents of the lives of the men and women, including ordinary sinners. ^^[[1|https://orthodoxwiki.org/Prologue_from_Ohrid]]^^
<$list filter="[prefix[Prologue -]sort[created]]">
<$link to={{!!title}}> <$view field=title /><br></$link>
</$list>
[[#]] [[Humility]]
* Considers himself least of all.
* Because he considers every man great he considers their honors great.
* No anger can trouble him.
* No love of glory.
* No envy.
* No jealousy.
[[Angels]] [[St Dionysios]]
# Seraphim
# Cherubim
# Powers
# Authorities
# Principalities
# Dominions
# Thrones
# Archangels
# Angels
<$list filter="[!has[draft.of]tag[To read]tag[Read]sort[created]]">
<$checkbox tag="Read"> ~~<$link to={{!!title}}><$view field="created" format="date" template="DDth mmm hh:mm"/> - <$view field="title"/></$link>~~</$checkbox>
</$list>
[[Prayer]] | [[Hail Mary]]
O Hail Mother of God and Virgin, Mary full of Grace, the Lord is with thee. Blessed art thou among women and blessed is the fruit of thy womb, for thou has given birth to the Saviour of our souls. Amen.
[[CRM]]
[[Feynmen Technique]]
[[Source]]
[[The Complete Ante-Nicene & Nicene and Post-Nicene Church Fathers Collection]]
Author: [[Justin Martyr]]
!!Summary:
*
Notes:
Loc 6804
* ➡ The Jews were commanded to abstain from certain foods so they wouldn't fall to gluttony and through gluttony forget God
* ➡ It's a mistake to think any animal is unclean in the way the Jews interpret
<<<
❝ “Moreover, you were commanded to abstain from certain kinds of food, in order that you might keep God before your eyes while you ate and drank, seeing that you were prone and very ready to depart from His knowledge, as Moses also affirms: The people ate and drank, and rose up to play.’ And again: Jacob ate, and was satisfied, and waxed fat; and he who was beloved kicked: he waxed fat, he grew thick, he was enlarged, and he forsook God who had made him.’ For it was told you by Moses in the book of Genesis, that God granted to Noah, being a just man, to eat of every animal, but not of flesh with the blood, which is dead.”
<<<
Loc 6448
* ➡ Philosophy is the most important thing to man
* ➡ The reason there are so many different schools of philosophy is that people esteem their teachers above truth and think whatever their teach says is truth.
* ➡ another reason there are so many schools is that people put passionate desires over the truth
* ➡ It is not right to say that one can know God without experience. Philosophy cannot give us knowledge of God
* ➡ If the soul is life then it is not a quality it possess but one that it bestows. If it has life it is an attribute bestowed upon it and not something it possess of itself
* ➡ True philosophy comes from the Holy Spirit through the prophets
Loc 6653
* ➡ St. Justin says that the old law has indeed been done away with
Loc 6702
* ➡ unleavened bread signifies not committing the old deeds of wickedness
Loc 6731
* ➡ True fasting is not just abstention from food, but doing of good works as well
6741
* ➡ Circumcision of the flesh isn't enough. Circumcision was given to the Jews as a sign that they would be separated from the nations and also from God because their circumcision was only of their flesh and not their heart.
6759
* ➡ the Jews persecuted Christians more than anyone else by spreading rumors to all the nations about Christ.
* ➡ The Jewish rites were given because of the hardness of their hearts and transgressions
* ➡ The Christian's rite is greater than the Jews. It's the rite of Martyrdom.
6787
* ➡ Until Abraham circumcision was not given
* ➡ St. Justin believed Noah's Ark to be a true story
6797
* ➡ Melchizedek was uncircumcised and yet established the order of the everlasting priesthood
[[Source]]
[[The Complete Ante-Nicene & Nicene and Post-Nicene Church Fathers Collection]]
Author: [[St Basil the Great]]
Summary:
* A letter to Gregory on the life of solitude and exposition on how to act.
Notes:
(Loc 560177)
* ➡ Abandoning life in "town" is good because of it's countless temptations. But you bring your problems with you.
(Loc 560186)
* [[Z :: We must strive for a quiet mind]]
* [[Z :: We are never happy with what we have]]
* [[Z :: A mind distracted by a thousand worldly cares cannot ascertain the truth.]]
Loc 560196
* ➡ Care for worldly things creates illusions in the mind that keep us up at night.
* ➡ one way to save us from anxiety is to detach sympathy from the body.
* ➡ Solitude is a good way to detach sympathy from the body
* ➡ It is much easier to control the Passions in Solitude.
Loc 560206
* ➡ the practices of a solitary should be in imitation of the angels.
* ➡ Morning should start with prayer and hymns
* ➡ Prayer should accompany our work throughout the day
* ➡ When God visits, He drives away all earthly cares
* [[Z :: The study of Scripture is most important because we find lives worthy of imitation]]
* ➡ Just like an artist keeps referencing the object he is painting so we should read the lives of holy people
* ➡ Prayer is stronger after spiritual reading because we have roused zeal by examples
* ➡ Prayer is good when we imprint a clear idea of God in the soul
* [[Z :: We become the temple of God when no thought or bodily sensations distracts us from contemplating God]]
Loc 560235
* [[Z :: How One Should Converse]]
* [[Z :: How a Monk Should Act]]
[[Quotes]]
<<<
❝ When God gives good things I think we must thank Him, and not be angry with Him while He is controlling their distribution.
<<< Loc 560,178
<<<
❝ What I do myself, day and night, in this remote spot, I am ashamed to write. I have abandoned my life in town, as one sure to lead to countless ills; but I have not yet been able to get quit of myself. I am like travellers at sea, who have never gone a voyage before, and are distressed and seasick, who quarrel with the ship because it is so big and makes such a tossing, and, when they get out of it into the pinnace or dingey, are everywhere and always seasick and distressed. Wherever they go their nausea and misery go with them. My state is something like this. I carry my own troubles with me, and so everywhere I am in the midst of similar discomforts. So in the end I have not got much good out of my solitude. What I ought to have done; what would have enabled me to keep close to the footprints of Him who has led the way to salvation—for He says, “If any one will come after me, let him deny himself and take up his cross, and follow me”—is this.
<<< Loc 560,185
<<<
❝ We must strive after a quiet mind. As well might the eye ascertain an object put before it while it is wandering restless up and down and sideways, without fixing a steady gaze upon it, as a mind, distracted by a thousand worldly cares, be able clearly to apprehend the truth.
<<< Loc 560,191
<<<
❝ Pious exercises nourish the soul with divine thoughts.
<<< Loc 560,205
<<<
❝ Quiet, then, as I have said, is the first step in our sanctification; the tongue purified from the gossip of the world; the eyes unexcited by fair colour or comely shape; the ear not relaxing the tone or mind by voluptuous songs, nor by that especial mischief, the talk of light men and jesters. Thus the mind, saved from dissipation from without, and not through the senses thrown upon the world, falls back upon itself, and thereby ascends to the contemplation of God.
<<< Loc 560,208
<<<
❝ The study of inspired Scripture is the chief way of finding our duty, for in it we find both instruction about conduct and the lives of blessed men, delivered in writing, as some breathing images of godly living, for the imitation of their good works. Hence, in whatever respect each one feels himself deficient, devoting himself to this imitation, he finds, as from some dispensary, the due medicine for his ailment.
<<< Loc 560,215
<<<
❝ Thus, generally, as painters, when they are painting from other pictures, constantly look at the model, and do their best to transfer its lineaments to their own work, so too must he who is desirous of rendering himself perfect in all branches of excellency, keep his eyes turned to the lives of the saints as though to living and moving statues, and make their virtue his own by imitation.
<<< Loc 560,224
<<<
❝ Prayers, too, after reading, find the soul fresher, and more vigorously stirred by love towards God. And that prayer is good which imprints a clear idea of God in the soul; and the having God established in self by means of memory is God’s indwelling. Thus we become God’s temple, when the continuity of our recollection is not severed by earthly cares; when the mind is harassed by no sudden sensations; when the worshipper flees from all things and retreats to God, drawing away all the feelings that invite him to self-indulgence, and passes his time in the pursuits that lead to virtue.
<<< Loc 560,227
<<<
❝ This, too, is a very important point to attend to,—knowledge how to converse; to interrogate without over-earnestness; to answer without desire of display; not to interrupt a profitable speaker, or to desire ambitiously to put in a word of one’s own; to be measured in speaking and hearing; not to be ashamed of receiving, or to be grudging in giving information, nor to pass another’s knowledge for one’s own, as depraved women their supposititious children, but to refer it candidly to the true parent. The middle tone of voice is best, neither so low as to be inaudible, nor to be ill-bred from its high pitch. One should reflect first what one is going to say, and then give it utterance: be courteous when addressed; amiable in social intercourse; not aiming to be pleasant by facetiousness, but cultivating gentleness in kind admonitions. Harshness is ever to be put aside, even in censuring. [The more you shew modesty and humility yourself, the more likely are you to be acceptable to the patient who needs your treatment. There are however many occasions when we shall do well to employ the kind of rebuke used by the prophet who did not in his own person utter the sentence of condemnation on David after his sin, but by suggesting an imaginary character made the sinner judge of his own sin, so that, after passing his own sentence, he could not find fault with the seer who had convicted him.
<<< Loc 560,232
<<<
❝ From the humble and submissive spirit comes an eye sorrowful and downcast, appearance neglected, hair rough, dress dirty; so that the appearance which mourners take pains to present may appear our natural condition.
<<< Loc 560,242
[[CRM]] | [[Zettelkasten]]
[[https://takesmartnotes.com/]]
Stockton Address: 4114 Coastal Cove Lane, Stockton, CA 95219
[[Deep Reading Process]]
* Something that generates [[Claim]]s, e.g. a [[Book]] or [[Article]]
* Typically of the form [[Source - Name of Piece]]
** If marked TODO (as a string, not a checkbox) and not of this format: this was copied from a source that referred to it in a different way (probably author and year) and hasn’t been converted yet. This will typically happen only in [[Claim]]s. To find the source, go to the Source page of the Claim, and look up the reference in that source’s bibliography.
* Typically has
** Author::
** Category::
** Subject::
** Published::
** Thesis::
** Pagination:: what system I’m following for location references (e.g. kindle loc, epub page number) and what the total is (to account for different editions, iBooks resizing)
** Preparatory Brain Dump::
** Table of Contents::
** Notes::
*** Chapter 1 Pre Read
*** Chapter 1
**** has [[Claim]]s
*** Chapter 1 Summary
[[Source]]
* Author:: [[Elder Ephraim of Arizona]]
* Category:: [[Hesychia]]
* Subject:: [[Spiritual Warfare]]
* Published:: 2010
* Thesis::
* Pagination:: Book pages
* Preparatory Brain Dump::
* Table of Contents::
** On Salvation and Paradise
** On Affliction, Pain, and Labors
* Notes::
** Chapter 1 Pre Read
** Chapter 1
*** [[➡|Claim]] Heaven is incomprehensibly wonderful. We forget this for two reasons: one, because we think we won't make it, two, we are ignorant of it. pg 3
*** [[❝|Quote]] "Everything will pass and will end as if had never existed, whereas works done in God will remain with the soul that worked them so that the worker may reap eternal life from them."
*** [[➡|Claim]] Blessed are they who work now so they may reap their reward in heaven. pg 4
*** [[➡|Claim]] There is no suffering in this life that can out do the joys of the next. pg 4
*** [[❝|Quote]] "The grandeur of man, whom God raises to such heights and glory, is unrivaled! Yet we passionate sinners are unaware of and indifferent to these great riches, and our way of thinking is completely earthly. Just think: this body which is fetid dirt is counted worthy to be conformed to God's glory, to become angelic!" pg 4
*** [[➡|Claim]] Men are material compared to [[Angels]] and angels are somewhat material compared to God. So, the more Godlike we become the more angelic, so to speak. pg 5
*** [[➡|Claim]] This life is temporary and we hold on to it by a thread. Because it will pass away we should not passionately desire anything temporary. Especially knowing what awaits us in heaven. pg 5
*** [[➡|Claim]] Earthly joy is followed by sorrow, but heavenly joy is unending. pg 6
*** [[❝|Quote]] "See what beauty awaits us! If you could only see how beautiful it is! You would disregard everything; you would even become like trash to be stepped on, just as long as you would not be deprived of everything that the sweet love of Jesus has prepared!"
*** [[➡|Claim]] Heavenly beauty far surpasses any earthly beauty. We cannot even fathom the beauty of heaven. pg 7
* Chapter 1 Summary
** [[☩|Crux]] This life will end and the only thing we can bring with us to the next life is the works we do in God. Heaven is more beautiful than we can imagine, so we should not neglect the work we must do to get there.
* Chapter 2 pre read
* Chapter 2
*** [[➡|Claim]] Because all things come from God we are obliged to obey his will - to accept all sufferings that come to us. pg 9
*** [[➡|Claim]] through patience we show our obedience to God. pg 10
*** [[➡|Claim]] Faith, hope and patience is how Christ showed us to endure suffering and affliction. pg 10
*** [[➡|Claim]] God uses suffering and trials and an "excuse" to give us gifts. pg 10
*** [[➡|Claim]] Even trials brought be other people are from God pg 10
*** [[❝|Quote]] "May no trace of evil or hatred be found in ours souls, so that we may be called children of God." pg 10
*** [[➡|Claim]] by fighting the trials we make ourselves worthy to recieve gifts from God. whether the trials come from the enemy, other people, or from our nature. pg 11
*** [[❝|Quote]] "For this reason, my child, endure everything, for a crown is being woven invisibly for the head of each one of us. Winter is bitter but paradise is sweet. Endure the frost of trials, so that your feet my joyfully dance in heaven." pg 11
*** [[➡|Claim]] all trials and afflictions are given in order to make the heart pure and cleanse us of the passions. pg 11
*** [[➡|Claim]] many saints suffered many trials even though sin didn't hold sway over them, so we shouldn't grumble when we have trials because we deserve the trials we receive because of our love for sin. pg 11
*** [[❝|Quote]] "Why are you sorrowful and glum while walking along the way of God? Those who have forgotten God, who have no home in the living and eternal fountain of God, should grieve. But we, who believe in the living God and whose hopes depend upon Him, ought to rejoice that we have such a Father in the heavens, Who loves us more than all fathers and mothers and Who takes infinite care to render us worthy of Him." pg 12
*** [[➡|Claim]] We shouldn't grieve that we sin many times, we are men of clay and are inclined toward evil from our youths, because out good intentions will prevail and God has given us the tools we need to overcome our nature and has saved us by his [[Cross]] and [[Resurrection]]. pg 12
*** [[➡|Claim]] Grief is good when it spurs us to be courageous and put of the armor of righteousness. pg 12
*** [[➡|Claim]] All our lives we go from joy to grief, from blessing to trial over again. This is how God cleanses us. pg 13
- Chapter 2 summary
* [[Source]]
* Author:: [[St John Cassian]]
* Category:: [[Philokalia]]
* Subject:: [[Spiritual Warfare]] [[Virtue]]
* Published::
* Thesis::
* Pagination:: kindle loc
* Preparatory Brain Dump::
* Table of Contents::
** Chapter 1: On Control of the Stomach
** Chapter 2: On the Demons of Unchastity and the Desire of the Flesh
** Chapter 3: On Avarice
** Chapter 4: On Anger
Notes::
* Chapter 1 Pre Read
* Chapter 1
** [[C :: A day's fast is more beneficial than a prolonged one of three to seven days as people tend to overeat afterward. The overfaster either slacks because of the lack of energy or they are slothful from overeating. loc 845]]
**{{[[➡ The Holy Fathers haven't given a single Fasting rule because not everyone has the same strength. but instead a single goal: to avoid overeating and the filling of the stomach. loc 845]]!!title}}
** [[C :: There are eight vices Gluttony Unchastity Avarice Anger Dejection Listlessness Self-Esteem Pride loc 838]]
** ➡ The [[Holy Fathers]] haven't given a single [[Fasting]] rule because not everyone has the same strength. but instead a single goal: to avoid overeating and the filling of the stomach. loc 845
** ➡ At day's fast is more beneficial than a prolonged one of three to seven days as people tend to overeat afterward. The overfaster either slacks because of the lack of energy or they are slothful from overeating. loc 845
** ➡ Some people's stomachs cannot handle greens or beans, while others cannot live on dry bread. and some people need more food and some less loc 853
** ➡ It is not just a variety of food that enkindles the passions but also the amount. Even too much water can make one drowsy. "The Sodomites were destroyed not because of too much wine or too much of other foods, but because of a surfeit of bread, as the Prophet tells us"
*** ❝ [[Ezekiel 16]]:49 "49. Behold, this was the iniquity of thy sister Sodom, pride, fulness of bread, and abundance of idleness was in her and in her daughters, neither did she strengthen the hand of the poor and needy." loc 853
** ➡ "Bodily illness is not an obstacle to purity of heart, provided we give the body what its illness requires, not what gratifies our desire for pleasure." to be moderate in eating is to give the body what it needs to help spiritually. loc 853
** ➡ The fathers say clearly to stop eating when still hungry and don't continue until you are satisified. loc 853
** ➡ abstanance from food alone doesn't make one holy, unless it's accompanied by the other virtues as well. loc 863
** ➡ no one who's stomach is full can fight mentally agaist the demon of unchastity. Fasting is like the entryway to the rest of the virtues. loc 863
** ❝ "No one whose stomach is full can fight mentally against the demon of unchastity. Our initial struggle therefore must be to gain control of our stomach and to bring our body into subjection not only through fasting but also through vigils, labours and spiritual, reading, and through concentrating our heart on fear of Gehenna and on longing for the kingdom of heaven."
* Chapter 1 Summary
** ☩ Stomach is the gatekeeper of the passions and so fasting essential to conquering the passions. However, fasting alone isn't enough it must be accompanied by keeping the rest of the virtues.
* Chapter 2 Pre Read
* Chapter 2
** ➡ The struggle with unchastity starts from youth. It's a harsh struggle that has to be fought on two fronts- in the soul and body. loc 871
** ❝ "Bodily fasting alone is not enough to bring about perfect self-restraint and true purity; it must be accompanied by contrition of heart, intense prayer to God, frequent meditation on the Scriptures, toil and manual labour. These are able to check the restless impulses of the soul and to recall it from its shameful fantasies. Humility of soul helps more than everything else, however, and without it no one can overcome unchastity or any other sin. In the first place, then, we must take the utmost care to guard the heart from base thoughts, for, according to the Lord, 'out of the heart proceed evil thoughts, murders, adulteries, unchastity' and so on ([[Matthew 15]]:19)." loc 871
** ➡ We should not spend all our energy on fasting but also we need to keep watch over our thoughts. [[Matthew 23]]:26
** ❝ "If we are really eager, as the Apostle puts it, to 'struggle lawfully' and to 'be crowned' ([[2 Timothy 2]]:5) for overcoming the impure spirit of unchastity, we should not trust in our own strength and ascetic practice, but in the help of our Master, God. No one ceases to be attacked by this demon until he truly believes that he will be healed and reach the heights of purity not through his own effort and labour, but through the aid and protection of God. For such a victory is beyond man's natural powers. Indeed, he who has trampled down the pleasures and provocations of the flesh is in a certain sense outside the body. Thus, no one can soar to this high and heavenly prize of holiness on his own wings and learn to imitate the angels, unless the grace of God leads him upwards from this earthly mire." loc 880
** ➡ a mind purified of unchastity is as close to an angelic life as you can get. loc 880
** ➡ The sign of having purified yourself of unchastity is not being moved by unchaste thoughts in dreams which includes being unaffected by notcturnal emissions. loc 890
** ➡ The most important thing is the guarding of the heart from unchasty and purity of soul . The guarding of the eyes is a means to this end. loc 890
** ➡ To be watchful and to guard the heart from unchaste thoughts we must expel the fist inkling of the unchaste thought. This includes our female family and pious women. Dwelling on any woman too long can lead our mind to unchaste thoughs. 890
** ❝ "The commandment given by God to the first man, Adam, told him to keep watch over the head of the serpent ([[Genesis 3]]:15. LXX), that is, over the first inklings of the pernicious thoughts by means of which the serpent tries to creep into our souls." loc 898
** ❝ "Early in the morning destroy all the wicked from the earth. [[Psalm 101]]:8" loc 900
** ❝ "While the children of Babylon - by which I mean our wicked thoughts - are still young, we should dash them to the ground and crush them against the rock, which is Christ." [[Psalm 137]]:9 [[1 Corinthians 16]]:4 loc 900
** ➡ The thoughts will grow very strong and it will be a difficult fight if we assent to unchaste thoughts. loc 900
** ➡ We cannot acheive real purity of heart unless we acquire true humility. loc 900
** ❝ "We will not be granted true spiritual knowledge so long as the passion of unchastity lies hidden in the depths of our souls." loc 909
** ➡ The more we strive for purity the stronger the enemy will fight us. So it's important that we acquire [[Humility]] and [[Contrition of Heart]] with frequent [[Prayer]] and [[Repentance]] so the [[Holy Spirit]] will fight with us and give us consolation. loc 909
** ➡ [[Vigil]]s bring us holiness at night just like [[Watchfulness]] does during the day. loc 909
* Chapter 2 Summary
** ☩ Nothing makes us more angelic than chastity. Abstaining from fornication simply externally isn't enough, we must attain to a pure heart. This is the true meaning of chastity.
* Chapter 3 pre read
* Chapter 3
** ➡ The demon of avarice is foreign to our nature. It's brought about by lack of faith in a monk. loc 909
** ➡ The Sexual and [[Incensive Power]]s of the soul are natural. The [[Sexual Power]] is for procreation and the incensive to drive us to salvation. loc 909
** ➡ The natural [[Powers of the Soul]] are not evil but made evil by misuse. loc 909
** ➡ We cannot blame God for the passions because we are the ones who misuse the [[Powers of the Soul]] loc 927
** ❝ "A man who gives someone a knife for some necessary and useful purpose is not to blame if that person uses it to commit murder." loc 929
** ➡ The demon of Avarice tricks monks into holding onto and hide money and to learn new handy crafts to make him more money. from the abbot due to lack of faith and slackness. loc 937
** ➡ After the monk has fallen for the trick of avarice he is then thrown about by all the passions unable to control himself. [[Colossians 3]]:5 loc 937
*** ❝ "5. Mortify therefore your members which are upon the earth; fornication, uncleanness, inordinate affection, evil concupiscence, and covetousness, which is idolatry:"
** ➡ A monk who is enslaved by the idolatry of avarice cannot be obedient and is unsatisfied with everything. He will even find excuses how he cannot endure the monastery anymore. loc 946
** ➡ There are three forms avarice takes with a monk: loc 946
*** One who was previously poor is enticed to store up wealth he couldn't in the world. Gehazi [[2 Kings 5]]
*** One who has sold everything and vowed poverty feels regret for this decision. Judas [[Matthew 27]]
*** One who enters the monastery never renouncing this passion. Ananias and Sapphira [[Acts 5]]
** ➡ Some monks twist the meaning of scripture and think "35. I have shewed you all things, how that so labouring ye ought to support the weak, and to remember the words of the Lord Jesus, how he said, It is more blessed to give than to receive." to mean it is better to have control over their own wealth than to live in poverty. loc 965
** ➡ We should not be so foolish to think that we know better than the [[Apostles]] loc 984
** ➡ It's nearly impossible to uproot avarice without being in a monastery where we don't have to care even for our daily necessities. loc 993
* Chapter 3 Summary
** ☩ Avarice is a passion foreign to the soul. It makes a monk unwilling to be obedient and unable to have peace. It's very difficult to uproot unless you are in a monastery.
* Chapter 4 pre read
* Chapter 4
* Chapter 4 Summary
[[Quotes]]
...no one ought even to permit himself the distribution of his own property, but should leave it in the hands of the person entrusted with the duty of managing the affairs of the poor; and he proved the point from the acts of the apostles, because they sold their property and brought and laid it at the feet of the apostles, and by them it was distributed to each as every man had need. For he said that experience was needed in order to distinguish between cases of genuine need and of mere greedy begging. For whoever gives to the afflicted gives to the Lord, and from the Lord shall have his reward; but he who gives to every vagabond casts to a dog, a nuisance indeed from his importunity, but deserving no pity on the ground of want.
Letter 150 [[The Complete Ante-Nicene & Nicene and Post-Nicene Church Fathers Collection]]
[[Ebooks]]
[ext[Works of St Dionysios PDF|eBooks/Dionysius-Works.pdf]]
[[Quotes]]
Thus those who in our day disbelieve the teaching of the Spirit given through our holy fathers and who revile us when we agree with the fathers, say that if the divine energy differs from the divine essence, even though it is envisaged as wholly pertaining to God's essence, then either there will be many gods or the one God will be composite. They are unaware that it is not activating and energy but being acted upon and passivity that produce composition. God activates without in any way being acted upon or subject to change. Thus He is not composite on account of His energy.
Unless an essence has an energy distinct from itself, it will entirely lack actual existence and will be a mere mental concept. For man as a general concept does not think, does not have opinions, does not see, does not smell, does not speak, does not hear, does not walk, does not breathe, does not eat and, in short, does not have an energy which is distinct from his essence, and which shows that he possesses an individual state of being. Thus man as a general concept entirely lacks actual existence. But when man possesses an inherent energy distinct from his essence, whether it be one or many or all of those activities we have mentioned, it is known thereby that he possesses an individual state of being and does not lack actual existence. And because these energies are observed not only in one or two or three but in a great number of individuals, it is clear that man exists in countless individual states of being.
Let St Maximos now lend us his support. He writes in his Scholia that the providence creating existent things is identical with the processions of God. He says: 'The creative providences and goodnesses' - those that bestow individual essence, life and wisdom - 'are common to the tri-hypostatic differentiated Unity ' By stating that these providences and goodnesses are many and distinct, he shows that they are not the essence of God, since that is one and altogether indivisible. But because they are common to the tri-hypostatic differentiated Unity, he shows us that they are not identical with the Son or the Holy Spirit, for neither the Son nor the Holy Spirit is an energy common to the three hypostases. Yet by stating that they are not only providences and goodnesses but are also creative, he shows them to be uncreated. For if this were not the case, then the creative power would itself be created by another creative power, and that in turn by another, and so on to the uttermost absurdity, not even stopping at infinity. Thus God's processions and energies are uncreated, and none of them is either divine essence or hypostasis.
It is said that on the portals of Plato's academy were inscribed the words, 'Let no man enter who is ignorant of geometry.' A person incapable of conceiving and discoursing about inseparable things as separate is in every respect ignorant of geometry. For there cannot be a limit without something limited. But geometry is almost entirely a science of limits, and it even defines and extends limits on their own account, abstracted from that which they limit, because the intellect separates the inseparable. How, then, can a person who has never learnt to separate in his intellect a physical object from its attributes be able to conceive of nature in itself, for nature is not merely inseparable from the natural elements in which it inheres, but it cannot even exist at any time without them. How can he conceive of universals as universals, since they exist as such in particulars and are distinguished from them only by the intelligence and reason, being perceived intellectually as prior to the many particulars although in truth they can in no way exist apart from these many particulars? How shall he apprehend intellectual and noetic things? How shall he understand us when we say that each intellect also has thought and that each of our thoughts is our intellect? How shall he not ridicule us and accuse us of saying that each man possesses two or many minds? If, then, someone is unable to speak or conceive of things indivisible as distinct, how will he be able to discuss or be taught anything of this sort concerning God, with respect to whom, according to the theologians, there are and are said to be many unions and distinctions? But although the unions pertaining to God prevail over and are prior to the distinctions, they do not abolish them nor are they at all impeded by them. The followers of Akindynos, however, cannot accept nor can they understand the indivisible distinction that exists in God, even when they hear us speaking - in harmony with the saints - of a divided union. For to God pertains both incomprehensibility and comprehensibility, though He Himself is one. The same God is incomprehensible in His essence, but comprehensible from what He creates according to His divine energies: according, that is, to His pre-eternal will for us. His pre-eternal providence concerning us. His pre-eternal wisdom with regard to us, and - to use the words of St Maximos - His infinite power, wisdom and goodness. But when Barlaam and Akindynos and those who follow in their footsteps hear us saying these things which we are obliged to say, they accuse us of speaking of many gods and many uncreated realities, and of making God composite. For they are ignorant of the fact that God is indivisibly divided and is united dividedly, and yet in spite of this suffers neither multiplicity nor compositeness.
For a man to know God, and to know himself and his proper rank - a knowledge now possessed even by Christians who are thought to be quite unlearned - is a knowledge superior to natural science and astronomy and to all philosophy concerning such matters. Moreover, for our intellect to know its own infirmity, and to seek healing for it, is incomparably greater than to know and search out the magnitude of the stars, the principles of nature, the generation of terrestrial things and the circuits of celestial bodies, their solstices and risings, stations and retrogressions, separations and conjunctions and, in short, all the multiform relationships which arise from the many different motions in the heavens. For the intellect that recognizes its own infirmity has discovered where to enter in order to find salvation and how to approach the light of knowledge and receive the true wisdom that does not pass away with this present world.
Unless we bear with patience the afflictions that come to us unsought, God will not bless those that we embrace deliberately. For our love for God is demonstrated above all by the way we endure trials and temptations.
[[Ladder of Divine Ascent]]
[[Quotes]] | [[Holy Fathers]]
“When you want to know God’s will, set your own aside, together with any other thought or plan and, with great humility ask to become aware of it in your prayers. Then, whatever is formed or bears weight in your heart will be from God. Those who have greater boldness and practice in praying for this hear the instruction more clearly within themselves and become more careful in their lives, doing nothing without divine instruction.”
[[Ebooks]]
[[Ambigua by St Maximos PDF|https://anaxios.github.io/eBooks/Ambigua%20TRANSLATION.pdf]]
[[Articles]]
http://orthochristian.com/90545.html
St. Paisios' Love and Defense of St. Isaac the Syrian
Fr. Micah Hirschy
6-8 minutes
[img[icons/StIssacTheSyrian.jpg]]
St. Isaac the Syrian, commemorated on January 28/February 10, is one of the most beloved saints especially among monastics in the Orthodox Church. The sayings and teachings found in his "Ascetical Homilies" show him to have been a man full of the Spirit, divinely illumined by the grace of God in the Church, which he attracted to himself through watchful repentance. His words have served as a continuing, patient inspiration for generations of monks and nuns, and laypeople, down to our very day. Elders of our own modern times, such as Elder Ieronymos of Aegina, have held a deep love for the person and works of St. Isaac and often counseled others to turn to him for instruction. St. Paisios the Athonite, one of the most beloved saints throughout the Orthodox world, held no less of a veneration for St. Isaac:
The Feast Day of St. Isaac the Syrian on September 28th
In the Greek Orthodox calendar there is no official feast day for St. Isaac the Syrian. Traditionally, however, he has been celebrated on January 28th together with the other great Syriac Father of the Church, St. Ephraim the Syrian. The Slavic Churches celebrate St. Isaac officially on January 28th.
Not too many years ago Elder Paisios (+1993) sought to change this fact due to his great veneration for St. Isaac. He commissioned a service to be written in his honor and chose to celebrate his feast on September 28th. The Service was written by the eminent hymnographer Fr. Gerasimos Mikragiannanites (+ 2002). Today the feast of St. Isaac is celebrated on Mount Athos on September 28th.
Furthermore, the first church dedicated to St. Isaac was built on Mount Athos, in the cell of a monk of the brotherhood of Elder Paisios in Kapsala.
Elder Paisios, who would read the Ascetical Homilies of St. Isaac beneath the icon of the saint, would say of St. Isaac: "If anyone went to a psychiatric hospital and read to the patients Abba Isaac, all those who believed in God would get well, because they would recognize the deeper meaning of life."
He also said:
"First you must read the Gerontikon, Philotheos History, and Evergetinos. All these books are practical not theoretical. Their simple patristic spirit and holiness will help you remove secular logic from your mind. Next, you should read Abba Isaac, and this way you will not see him as a philosopher, but as a man illumined by God."
It should also be noted that before the establishment of September 28th as the feast of St. Isaac by Elder Paisios, when he heard rumors that scholars accused St. Isaac of being a Nestorian, he prayed about this situation. Through divine revelation it was revealed to him that in fact St. Isaac was Orthodox and he wrote in his Menaion for January 28th the following words after the description of the feast of St. Ephraim the Syrian: "...and Isaac the Great Hesychast and much unjustly accused."
The text of the service dedicated to St. Isaac, commissioned by St. Paisios, can be found here. It is distributed by the Kalyva of the Resurrection of Christ in Kapsala on Mount Athos, where lived Fr. Isaac of Lebanon, a spiritual child of Elder Paisios. His ascetical tradition is maintained by Fr. Euthymios and his brotherhood.
Mystagogy
St. Isaac the Nestorian Saint?
One day, sitting at the bench outside of Stavronikita, the Elder was visiting with pilgrims, among whom was a high school teacher of theology. The theology teacher, repeating a popular Western error, claimed that Abba Isaac the Syrian was a Nestorian. Father Paisios tried to persuade him that Abba Isaac was not only Orthodox but also a saint, and that his Ascetical Homilies possess great grace and strength. But the Elder’s words were in vain: the theology teacher stubbornly insisted on his views. The Elder left for his hermitage, praying and so sad that he was in tears.
When he had come to a spot on the path near a large plane tree, something happened to him. These words, “something happened”, were the only description he gave us of the incident, not wanting to reveal the exact details. According to one testimony, he saw in a vision the choir of the holy fathers passing before him, and one of them, stopping, said to him, “I am Isaac the Syrian. I am completely Orthodox. The Nestorian heresy was indeed present in my region, but I fought against it.” We are not in a position to endorse or to reject the reliability of this witness. We know for certain only that the Elder experienced a supranatural occurence that confirmed with perfect clarity the holiness and total Orthodoxy of Abba Isaac.
Originally appeared in Elder Paisios of Mount Athos by Hieromonk Isaac p. 226, The Holy Monastery of Saint Arsenios the Cappadocian (2012).
---
The saints know one another, and recognize in one another the presence of Christ which divinizes the saint. Understanding that St. Isaac wrote, and lived, under the inspiration of the Spirit, St. Paisios could not abide the fashionable scholastic idea that St. Isaac was in fact not a member of the one, true Orthodox Church, but rather of the Nestorian Assyrian Church of the East. While many scholars today hold to this idea and believe it is some wonderful confirmation of the "openness" and fluid borders of the Orthodox Church, we see in St. Paisios how we should, in fact, approach this teaching. Love and truth are always inseparable and so St. Paisios, so full of love, also lived wholly dedicated to truth, and so, rather than rejoicing at such a notion, sought from God confirmation of the strictness and purity of not only St. Isaac himself, but thereby the boundaries of the Orthodox Church. Glorified as he is by the Orthodox Church, we know that St. Paisios was not a monk in delusion, and so in his testimony we know is found the truth.
---
For more information see Fr. John Photopoulos' "Abba Isaac the Syrian, the 'Unjustly Accused Saint'"
[[St Paisios Love and Defense of St Issac the Syrian]]
[[Cornell CS312]] | [[Functional Programming]] | [[Coding]]
https://www.cs.cornell.edu/courses/cs312/2008sp/recitations/rec05.html
<h1 align="center">Recitation 1: Introduction to SML Syntax</h1>
<p>We will use the Standard ML (SML) programming language this semester. SML
is a
functional language rather than a procedural language; the key difference
between these two classes of languages is the <i>execution model</i>---the way
in which programs are executed. <i>Procedural</i> (or <i>imperative</i>)
languages, such as C and Java, are based on commands that change the state of
the machine on which they execute. For example, the assignment statement
(in both C and Java) explicitly changes the value stored in some memory
location. <i>Functional</i> languages, in contrast, are based on
evaluating expressions to produce values. SML provides good ways to build
correct, understandable, and large expressions. The focus of this lecture
is understanding expressions.</p>
<p>For real applications, programming with expressions may seem like a stretch.
After all, applications often do not "compute" anything; instead, they allow
you to "do" something. Later in the course, we will introduce the notion of <i>side-effects</i>:
evaluate <b>this</b>, and do <b>that</b> while you're at it---e.g., evaluate an expression, and
(as a
side-effect) display a window on the screen. But for the moment, we will live in
a <i>pure</i> world, one without side-effects.</p>
<p>To start learning SML, you should begin playing with the SML language by
writing toy expressions. Like most programming languages, SML has a
compiler that can be run on source files to produce object files. But to
really understand expressions, there is a better way to interact with the SML compiler, called the
<i>SML</i><i> interactive system</i>. This system is
something like a very fancy calculator---you interact with it by typing in an
expression, and it responds by evaluating that expression and telling you the
resulting value. </p>
<hr>
<p><b>Starting the SML interactive system. </b> There are several
implementations of SML, and the one we use in CS312 is SML/NJ. Start an interactive session with
SML/NJ by typing <tt>sml</tt> at the command line (in a Unix shell or Windows console),
or by clicking on Start/Programs/SML of New Jersey (in Windows). You will get a
<i>top level prompt</i>
"-", which indicates that the compiler is ready to accept
expressions and evaluate them. To exit the interactive system, enter the
end-of-file character for your platform (Ctrl-D on Unix, Ctrl-Z + Return on
Windows).</p>
<p><b>Using the</b><b> SML interactive system.</b> Type in an expression (possibly on multiple
lines, which after the first line will have a secondary prompt "="), then
type <tt>;</tt> and press Return. Note that the <tt>;</tt> is not part of the
expression to be evaluated. It is simply an indication to the compiler that you
have finished typing in the expression and that you are ready to evaluate.
Before evaluating the expression, the compiler will type check it.</p>
<p><b>TIP</b>: The interactive system is very picky about some things when reading input,
and will accept a request to exit only if it is sitting exactly at the top level
prompt--- i.e. if nothing else has been already typed in. When in doubt
(especially if input seems to be behaving strangely), press Ctrl-C to interrupt and reset the prompt to a sane state.</p>
<p><b>TIP</b>: It can be useful to put expressions into a file so that you're
not stuck entering them over and over again at the prompt. Just use an editor
to edit a file, and you can load it into SML with the operation <tt>use
"file";</tt> which behaves as though the expressions have been entered
at the top level prompt (don't forget the semicolons!). The big question is where should the
file be stored. Operation <tt>use</tt> by default looks for files in the
current working directory. The "magic invocation":<br>
<tt> </tt><tt>OS.FileSys.getDir();</tt><br>
will return the current working directory. To change it, use the "magic
invocation":<br>
<tt> OS.FileSys.chDir "<i>path</i>";<br>
</tt>where <i>path</i> is
the path where you want to go to. Use the Unix convention (even on Windows): the
path separator is "/". </p>
<p><b>TIP</b>: Operation <tt>use</tt> is really just a lazy person's
way of using the top level prompt. Soon in the course, we will see a much
better way of managing programs.</p>
<hr>
<h2>Basic Expressions and Types</h2>
<p>Expressions evaluate to <i>values</i>. Values can be classified according to their
type:</p>
<div align="center">
<center>
<table border="1" cellpadding="2">
<tr>
<th>Type</th>
<th>Example values</th>
</tr>
<tr>
<td>int</td>
<td><tt>0</tt>,<tt>1</tt>,<tt>2</tt>,<tt>~1</tt>,<tt>~2</tt> (~ is the negative
sign)</td>
</tr>
<tr>
<td>bool</td>
<td><tt>true</tt>, <tt>false</tt></td>
</tr>
<tr>
<td>real</td>
<td><tt>3.141592, 1.618034</tt></td>
</tr>
<tr>
<td>string</td>
<td><tt>"Hello world!","xyzzy"</tt></td>
</tr>
<tr>
<td>char</td>
<td><tt>#"A",#"Z"</tt></td>
</tr>
</table>
</center>
</div>
<p>Let us start looking at simple expressions, with the following syntax: </p>
<blockquote>
<i>e</i> ::= <i>c</i> | <i>unop</i> <i>e</i> | <i>e1</i>
<i>binop</i> <i>e2</i> | <span class="keyword">if</span> <i>e1</i>
<span class="keyword">then</span> <i>e2</i> <span class="keyword">else</span> <i>e3</i>
| (<i>e</i>)
</blockquote>
<p>where <i>c</i> are constants (the values described above), <i>unop</i> are
unary operations, <i>binop</i> are binary operations. We expressed this
syntax using <i>Backus-Naur Form</i> (BNF), a common notation for the grammar of
computer languages. <b>NOTE TO INSTRUCTOR:</b> The BNF for expressions, and later for
declarations, should be put on one side of the board, and kept there as we will
be adding expression types and declaration types as the lecture goes.</p>
<p>Unary operators include:
</p>
<div align="center">
<center>
<table border="1" cellpadding="2">
<tr>
<th>Operator</th>
<th>Meaning</th>
</tr>
<tr>
<td><tt>~</tt></td>
<td>take an int (or a real) and return its negation</td>
</tr>
<tr>
<td>
<tt>not</tt></td>
<td>take a bool and return its negation</td>
</tr>
<tr>
<td><tt>size</tt></td>
<td>take a string and return its size</td>
</tr>
</table>
</center>
</div>
<p>Binary operators include:
</p>
<div align="center">
<center>
<table border="1" cellpadding="2">
<tr>
<th>Operator</th>
<th>Meaning</th>
</tr>
<tr>
<td><tt>+</tt>,<tt>-</tt>,<tt>*</tt></td>
<td>take two ints (or two reals)
and return their sum, difference, or product</td>
</tr>
<tr>
<td><tt>div,mod</tt></td>
<td>take two ints and return their integer
quotient or remainder</td>
</tr>
<tr>
<td><tt>></tt>,<tt>>=</tt>,<tt><</tt>,<tt><=</tt></td>
<td>take two ints (or two reals) and return their comparison</td>
</tr>
<tr>
<td><tt>=</tt></td>
<td>take two values and return whether they are equal</td>
</tr>
<tr>
<td>
<tt>^</tt></td>
<td>take two strings and return their concatenation into a new string</td>
</tr>
</table>
</center>
</div>
<p>Expressions are transformed into values by the application of <i>evaluation rules</i>.
The evaluation rules for simple expressions are:</p>
<ul>
<li>Constants are already values. </li>
<li> Unary and binary operators first evaluate their
arguments to values, and then perform the operation. </li>
<li> A conditional <span class="keyword">if</span>
<i>e1</i> <span class="keyword">then</span> <i>e2</i> <span class="keyword">else</span>
<i>e3</i> evaluates <i>e1</i> to a value: if it is <tt>true</tt>, <i>e2</i> is
evaluated, if it is <tt>false</tt>, <i>e3</i> is evaluated.</li>
</ul>
<p>Evaluation of operators only makes sense if the types of the operands agree.
For example, the <tt>+</tt> operator is
defined if both operands are integers or reals, but adding an integer to a
boolean is meaningless. So type checking is performed to ensure that
expressions are meaningful, and this requires giving a type to every
expression. How do we determine the type of an expression?</p>
<p>Every constant has a type (<tt>42</tt> has type <tt>int</tt>, <tt>true</tt>
has type <tt>bool</tt>, etc). Operators also have types (which we gave
informally above); in SML syntax, these types are:
</p><blockquote>
<pre> ~ : int -> int real -> real
not : bool -> bool
size : string -> int
+ : (int * int) -> int (real * real) -> real
> : (int * int) -> bool (real * real) -> bool
^ : (string * string) -> string</pre>
</blockquote>
<p>Every operator specifies the types of values it takes and the type of the value
it returns. Notice the <tt>*</tt> when more than one argument is
expected. </p>
<p>Now we can give rules for determining the types of expressions. The principle
embodied in these rules is:
<blockquote>
<b>The type of an expression is always the type of its result.</b>
</blockquote>
<ul>
<li>For expression <i>unop</i> <i>e</i>, if <i>e</i> has type <i>t1</i>
and <i>unop</i> has type <i>t1</i> <tt>-></tt> <i>t2</i>, then <i>unop</i>
<i>e</i> has type <i>t2</i>. </li>
<li> For expression <i>e1</i> <i>binop</i> <i>e2</i>,
if <i>e1</i> has type <i>t1</i>, and <i>e2</i> has type <i>t2</i>, and <i>binop</i>
has type (<i>t1</i> * <i>t2</i>) <tt>-></tt> <i>t3</i>, then <i>e1</i> <i>binop</i>
<i>e2</i> has type <i>t3</i>.</li>
<li>For conditional <span class="keyword">if</span> <i>e1</i> <span class="keyword">then</span>
<i>e2</i> <span class="keyword">else</span> <i>e3</i>, if
<i>e1</i> has type <tt>bool</tt>, and then if <i>e2</i> and <i>e3</i> both
have the same type <i>t</i>, then the conditional itself has type <i>t</i>.
<ul>
<li> Why must <i>e2</i> and <i>e3</i> have the same type? From the
compiler's point of view, either branch could be taken. If the <span class="keyword">then</span>
branch is taken, the resulting value will have the same type as <i>e2</i>.
Similarly, the <span class="keyword">else</span> branch produces a value of the same type as <i>e3</i>.
So the type of the conditional must somehow generalize the types of <i>e2</i>
and <i>e3</i>. A safe way to guarantee that this is possible is to
require that both branches return the same type.</li>
</ul>
</li>
</ul>
<p>If the conditions in these rules are not satisfied by an expression, then it is not possible to give a
type to that expression. It does not type check, and the compiler rejects
it as a program. This prevents the evaluation of meaningless expressions.
It is important to do so, because such programming errors could otherwise cause run-time crashes.</p>
<h2>Declarations</h2>
<p>Value can be given names. This is not a form of
expression, but rather an indication to the compiler that you are <i>declaring </i>a
new name.</p>
<blockquote>
<i>d</i> ::= <span class="keyword">val</span> <i>id </i>=<i> e</i>
</blockquote>
<p>For example, <span class="keyword">val </span><tt>pi = 3.141592</tt> is a
declaration. A declaration indicates to the compiler to evaluate expression <i>e</i>,
produce a value, and <i> bind</i> that value to the name <i>id</i>. In subsequent expressions, <i>id</i> can be used
to refer to that value. We therefore extend our syntax for expressions with:</p>
<blockquote>
<i>e</i> ::= ... | <i>id</i>
</blockquote>
<p>Evaluating <i>id</i> means to lookup what value it is bound to. The
type of <i>id</i> is the type of the value which it is bound to.</p>
<blockquote><b>TIP</b>: In the SML/NJ interactive system, expressions typed at the top level are treated as
definitions.<br>
<tt>- e;</tt><br>
is treated as<br>
<tt>- val it = e;</tt><br>
so that <i>e</i> gets evaluated and bound to the identifier <tt>it</tt>, meaning
you can always refer to the last expression evaluated.</blockquote>
<p>Declarations last until another declaration of the same name is encountered (which
<i> shadows</i>---i.e., replaces---the previous declaration). We can also introduce local
declarations that last only for the evaluation of an expression.</p>
<blockquote>
<i>e</i> ::= ... | <span class="keyword">let </span><i>d</i><i> </i><span class="keyword">in</span>
<i>e </i>
<span class="keyword">end </span>
</blockquote>
<p>To evaluate a <span class="keyword">let</span> expression, declaration <i>d</i>
is
evaluated, then <i>e</i> is evaluated, taking the binding from the declaration into account.</p>
<blockquote><b>QUESTION</b>: what is the type of <span class="keyword">let</span> <i>d</i>
<span class="keyword">in</span> <i>e </i><span class="keyword">end</span>? Answer: The type of <i>e</i>, since the type of an expression is the type of
the result.</blockquote>
<p>At this point, we can write large expressions, but we can't easily reuse
expressions. Thus, we introduce functions. A function declaration is a new form of
declaration:</p>
<blockquote>
<i>d</i> ::= ... | <i> </i><span class="keyword">fun </span><i>id</i> (<i>x1</i>:<i>t1</i>,
..., <i>xn</i>:<i>tn</i>):<i>t</i> = <i>e</i>
</blockquote>
<p>In this new form of declaration, <i>e</i> is called the <i>body</i> of function <i>id</i>.
For example, <tt><span class="keyword">fun</span> square (x:int):int = x * x
</tt>is a function definition, and its body is <tt> x * x</tt>. Functions
have types that are similar to the types of operators. For
example, the type of <tt>square </tt>is<tt> int -> int</tt>.</p>
<p>How do we use functions? We introduce a new expression called <i>function
application</i>:</p>
<blockquote>
<i>e</i> ::= ... | <i>id</i> (<i>e1</i>,...,<i>em</i>)
</blockquote>
<p>How do we type check a function application <i>f </i>(<i>e1</i>,...,<i>em</i>)?
As follows:</p>
<ol>
<li>If <i>f</i> has type (<i>t1</i> * ... * <i>tn</i>) <tt>-></tt> <i>t</i>,
and</li>
<li>If the number of arguments supplied to the function is the same as the
number of arguments the function expects, meaning <i>m </i>equals <i>n</i>, and</li>
<li>If <i>e1</i> has type <i>t1</i>, and <i>e2</i> has type <i>t2</i>, and ... <i>en</i> has type <i>tn</i>,</li>
<li>Then <i>f</i>
(<i>e1</i>,...,<i>em</i>) has type <i>t</i>.</li>
</ol>
<p>So <tt>square (10)</tt> type checks, but <tt>square (true)</tt> does not.</p>
<p>How is function application <i>f </i>(<i>e1</i>,...,<i>em</i>) evaluated? Evaluate <i>e1</i>,...,<i>em</i>
to values <i>v1</i>,...,<i>vm</i>, then evaluate the body of <i>f</i> with <i>x1</i> bound to <i>v1</i>, ..., <i>xm</i> bound to <i>vm</i>.
So <tt>square (10+10)</tt> <tt>--></tt> <tt>square (20)</tt> <tt>--></tt>
<tt>20*20 --></tt> <tt>400</tt>. We'll see many more details on
evaluation in a week. For now, we just want to give you an intuition about the
simple cases.</p>
<p>Function bindings can be used within a
let expression to obtain a local function (like Pascal, unlike C). For
example:</p>
<blockquote>
<pre><span class="keyword">fun</span> fourth (y:int):int =
<span class="keyword">let</span>
<span class="keyword">fun</span> square (x:int):int = x * x
<span class="keyword">in</span>
square (square (y))
<span class="keyword"> end </span></pre>
</blockquote>
<p><b>TIP</b>: It is not strictly necessary to annotate functions with types.
Most of the time, SML can time infer the type of a function from its
definition. For example, given function <tt><span class="keyword">fun</span>
inc (x) = x + 1</tt>, the compiler can infer type <tt>inc : int -> int</tt>.
The reasoning it uses, intuitively, is: since <tt>1</tt> is an integer, and <tt>+</tt> takes two integers, <tt>x</tt>
must be an integer, and thus <tt>x+1</tt> must be an integer as well.</p>
<p><b>PITFALL</b>: As you
will quickly notice, it can be extremely hard to debug a
program that does not type check. It is very difficult to figure out why the compiler
inferred <b>this</b> type for <b>that</b> expression.
Solution: use type annotations to catch type errors!</p>
<p><b>PITFALL</b>: Type inference and overloading don't mix well. The compiler, trying to infer a type for <tt><span class="keyword">fun</span> add (x,y) = x +
y</tt>, will return type <tt>(int * int) -> int</tt>. But you may wish
for it to be of type <tt>(real * real) -> real</tt>. Solution: use type
annotations on functions!</p>
<p><b>?BER-TIP</b>: It is very good practice always to annotate
functions with types. We will require you to do this in programming
assignments.</p>
[[Cornell CS312]] | [[Standard ML course - Recitation 1]]
<h1 align="center">Recitation 2: Tuples, records and datatypes</h1>
<h2>Tuples</h2>
<p>Every function in SML takes exactly one value and returns exactly one result.
For instance, our <code>square_root</code> function takes one real value and returns
one real value. The advantage of always taking one argument and returning
one result is that the language is extremely uniform. Later, we'll
see that this buys us a lot when it comes to <i>composing</i> new functions out
of old ones.</p>
<p>But it looks like we can write functions that take more than one argument!
For instance, we may write:</p>
<blockquote>
<pre><span class="keyword">fun</span> max(r1:real, r2:real):real =
<span class="keyword">if</span> r1 < r2 <span class="keyword">then</span> r2
<span class="keyword">else</span> r1</pre>
<pre>max(3.1415, 2.718)</pre>
</blockquote>
<p>and it appears as if max takes two arguments. In truth max takes one
argument that is a <i>2-tuple</i> (also known as an ordered pair.) </p>
<p>In general, an <i>n-tuple</i> is an ordered sequence of <i>n </i>values
written in parenthesis and separated by commas as (<i>expr, expr, </i>..., <i>
expr</i>). For instance, <code>(42, "hello", true)</code> is a 3-tuple that contains
the integer <code>42</code> as its first component, the string <code>"hello"</code>
as its second component, and the boolean value <code>true</code> as its third
component. As another example, <code>()</code> is the empty tuple. This
is called "unit" in SML.</p>
<p>When you call a function in SML, if it takes more than one argument, then you
have to pass it a tuple of the arguments. For instance, when we write:</p>
<blockquote>
<pre>max(3.1415, 2.718)</pre>
</blockquote>
<p>we're passing the 2-tuple <code>(3.1415, 2.718)</code> to the function max.
We could just as well write:</p>
<blockquote>
<pre><span class="keyword">val</span> args = (3.1415, 2.178);</pre>
<pre>max args <span class="comment">(* evaluates to 3.1415 *)</span></pre>
</blockquote>
<p>The type of an n-tuple is written <code> (</code> <i class="math">t</i><sub>1</sub><code>*</code>...<code>*</code><i class="math">t<sub>n
</sub></i><code>)</code>. For instance, the type of args above is <code> (real*real)</code>.
This notation is
based on the Cartesian product in mathematics (i.e., the plane is R^2 = R * R).</p>
<p> Similarly, the
3-tuple <code>(42, "hello", true)</code> has type (int * string * bool).
Notice that <code>max</code> has type <code> (real*real)->real</code>, indicating that it
takes one argument (a 2-tuple of reals) and returns one result (a real).</p>
<p>The above grammar for types is a simplification, in fact. A more complete
grammar is as follows:</p>
<blockquote>
<p><i class="math">t</i> ::= <code>int</code> | <code>real</code>
| <code>bool</code>
| <code>string</code> | <code>char</code>
| <i class="math">t</i><sub>1</sub><code>*</code>...<code>*</code><i class="math">t<sub>n</sub></i> | <i class="math">t</i><sub>1</sub><code>-></code><i class="math">t</i><sub>2</sub> | <code>(</code>
<i class="math">t </i><code>)</code></p>
</blockquote>
<p>So the types <code> (real*real)->real</code> and <code>real*real->real</code>
are exactly the same type.</p>
<p>You can extract the components of a tuple by using the form "<code>#</code><i class="math">n</i> <i class="math">e</i>"
where <code>n</code> is a number between 1 and the size of the tuple. For
instance, <code>#2 (1, "hello", true)</code> evaluates to <code>"hello"</code>,
whereas <code>#1 (3.1415, 2.178)</code> evaluates to <code>3.1415</code>. </p>
<p>So, for instance, we can rewrite the max function as follows:</p>
<blockquote>
<pre><span class="keyword">fun</span> max(pair: real*real):real =
<span class="keyword">if</span> (#1 pair) < (#2 pair) <span class="keyword">then</span>
(#2 pair) <span class="keyword">else</span> (#1 pair);</pre>
</blockquote>
<p>and this is completely equivalent to the first definition. This emphasizes that <code>max</code> really does take just one argument -- a pair
of real numbers. But of course, it's a lot less readable than the first
definition. We can get closer to the first definition by declaring local
values r1 and r2 and bind them to the appropriate components of the pair:</p>
<blockquote>
<pre><span class="keyword">fun</span> max(pair: real*real):real =
<span class="keyword">let</span> <span class="keyword">val</span> r1 = #1 pair
<span class="keyword">val</span> r2 = #2 pair
<span class="keyword">in</span>
<span class="keyword">if</span> r1 < r2 <span class="keyword">then</span> r2 <span class="keyword">else</span> r1
<span class="keyword">end</span></pre>
</blockquote>
<h3>Pattern-matching tuples</h3>
<p>This is a little better because we avoid re-computing the same expressions
over and over again. However, it's still not as succinct as our first
definition of max. This is because the first definition uses <i>pattern
matching</i> to implicitly de-construct the 2-tuple and bind the components to
variables <code>r1</code> and <code>r2</code>. You can use pattern matching in a <span class="keyword"><code>val</code></span>
declaration or in a function definition to deconstruct a tuple. A tuple
pattern is always of the form <code>(</code><i class="math">x</i><sub>1</sub>:<i class="math">t</i><sub>1</sub>, <i class="math">x</i><sub>2</sub>:<i class="math">t</i><sub>2</sub>,..., <i class="math">x<sub>n</sub></i>:<i class="math">t<sub>n</sub></i><code>)</code>.
For instance, here is yet another version of max that uses a pattern in a <span class="keyword"><code>val</code></span>
declaration to deconstruct the pair:</p>
<blockquote>
<pre><span class="keyword">fun</span> max(pair: real*real):real =
<span class="keyword">let</span> <span class="keyword">val</span> (r1:real, r2:real) = pair
<span class="keyword">in</span>
<span class="keyword">if</span> r1 < r2 <span class="keyword">then</span> r2 <span class="keyword">else</span> r1
<span class="keyword">end</span></pre>
</blockquote>
<p>In the example above, the <span class="keyword"><code>val</code></span> declaration
matches the pair against the tuple-pattern <code>(r1:real, r2:real)</code>.
This binds <code>r1</code> to the first component of the pair <code>(#1 pair)</code> and
<code>r2</code> to the second component <code>(#2 pair)</code>. A similar thing
happens when you write a function using a tuple-pattern as in the original
definition of max:</p>
<blockquote>
<pre><span class="keyword">fun</span> max(r1:real, r2:real):real = <span class="keyword">if</span> r1 < r2 <span class="keyword">then</span> r2 <span class="keyword">else</span> r1</pre>
</blockquote>
<p>Here, when we call max with the pair <code>(3.1415, 2.718)</code>, the tuple is
matched against the pattern <code> (r1:real, r2:real)</code> and <code>r1</code> is bound to the <code>3.1415</code>
and <code>r2</code> to <code>2.718</code>. As we'll see later on, SML uses pattern
matching in a number of places to simplify expressions.</p>
<p>Suppose we wanted to extract both the minimum and the maximum of two numbers in a
single function. With tuples, this is easy: we just return a tuple containing
both results. Using a let, we can extract both results into separate variables
conveniently, too:</p>
<pre><span class="keyword">fun</span> minmax(a: real, b: real): real*real =
<span class="keyword">if</span> a < b <span class="keyword">then</span> (a, b) <span class="keyword">else</span> (b, a)</pre>
<pre>val (mn: real, mx: real) = minmax(2.0,1.0)</pre>
<p>This binds <code>mn</code> to <code>1.0</code> and <code>mx</code> to <code>2.0</code>. The
type of <code>minmax</code> is <code>(real*real)->(real*real)</code>, which we can
write without the parentheses because <code>*</code> has a higher precedence than <code>-></code>
when writing type expressions.</p>
<p>In summary:
<ul>
<li>every function in SML takes 1 argument and returns 1 result.</li>
<li><code>(</code><i class="math">e</i><sub>1</sub><code>,</code> ...<code>,</code> <i class="math">e<sub>n</sub></i><code>) </code> creates an
<i class="math">n</i>-tuple.</li>
<li>tuple types look like <i class="math">t</i><sub>1</sub><code>*</code>...<code>*</code><i class="math">t<sub>n</sub></i></li>
<li><code>#</code><i class="math">n</i><i> </i><i class="math">e</i> extracts the
<i class="math">n</i>th component of a tuple <i class="math">e</i>.</li>
<li> <span class="keyword"><code>val</code></span><code>(</code><i class="math">x</i><sub>1</sub>:<i class="math">t</i><sub>1</sub>, <i class="math">x</i><sub>2</sub>:<i class="math">t</i><sub>2</sub>,..., <i class="math">x<sub>n</sub></i>:<i class="math">t<sub>n</sub></i><code>)</code><i>=
</i><i class="math">e</i><i> </i>matches the tuple expression <i class="math">e</i>
against the tuple-pattern <code>(</code><i class="math">x</i><sub>1</sub>:<i class="math">t</i><sub>1</sub>, <i class="math">x</i><sub>2</sub>:<i class="math">t</i><sub>2</sub>,..., <i class="math">x<sub>n</sub></i>:<i class="math">t<sub>n</sub></i><code>)</code>
and binds the identifiers
in the pattern to the appropriate components of the tuple.</li>
<li> <span class="keyword"><code>fun</code></span>
<i class="math">y</i><code>(</code><i class="math">x</i><sub>1</sub>:<i class="math">t</i><sub>1</sub>, <i class="math">x</i><sub>2</sub>:<i class="math">t</i><sub>2</sub>,..., <i class="math">x<sub>n</sub></i>:<i class="math">t<sub>n</sub></i><code>)</code><i>= </i><i class="math">e
</i>is a function declaration that takes an<i> </i><i class="math">n</i>-tuple as an argument and
matches the tuple against the tuple-pattern <code>(</code><i class="math">x</i><sub>1</sub>:<i class="math">t</i><sub>1</sub>, <i class="math">x</i><sub>2</sub>:<i class="math">t</i><sub>2</sub>,..., <i class="math">x<sub>n</sub></i>:<i class="math">t<sub>n</sub></i><code>)</code>.</li>
</ul>
<h2>Records</h2>
<p>Records are similar to tuples in that they are data structures for holding
multiple values. However, they are different from tuples in that they
carry an <i>unordered</i> collection of <i>labeled</i> values. In
general, record expressions are of the form <code><b>{</b></code><i class="math">x</i><code><sub>1</sub>=</code><i class="math">e</i><sub>1</sub><code>,</code>...<code>,</code><i class="math">x<sub>n</sub></i><code>=</code><i class="math">e<sub>n</sub></i><code><b>}</b></code> where the identifiers x are labels.
For example,
the expression </p>
<blockquote>
<pre><b>{</b>first = "John", last = "Doe", age = 150, balance = 0.12<b>} </b></pre>
</blockquote>
<p>is a record with four fields named first, last, age, and balance. You
can extract a field from a record by using <code>#</code><i>id expr </i>where <i>exp </i>is
the record and <i>id</i> is the field that you want to extract. For
instance, applying <code>#age</code> to the record above yields 150, whereas applying
<code>#balance</code>
yields 0.12. </p>
<p>When creating a record, it does not matter in what order you give the fields.
So<b> </b>the record</p>
<blockquote>
<pre><b>{</b>balance = 0.12, age = 150, first = "John", last = "Doe"<b>}</b></pre>
</blockquote>
<p>is equivalent to the example above. Note that when you type in one of
these records to the SML top-level, it sorts the fields into a canonical order:</p>
<blockquote>
<pre>- <span class="keyword">val</span> pers = <b>{</b> first = "John", last = "Doe",
age = 150, balance = 0.12 <b>}</b>;
<i><span class="keyword">val</span> pers = <b>{</b>age=150,balance=0.12,first="John",last="Doe"<b>}
: {</b>age:int,balance:real,first:string,last:string<b>}</b></i></pre>
</blockquote>
<p>The type of a record is written as <code><b>{</b></code><i class="math">x</i><sub>1</sub>:<i class="math">t</i><sub>1</sub>, <i class="math">x</i><sub>2</sub>:<i class="math">t</i><sub>2</sub>,..., <i class="math">x<sub>n</sub></i>:<i class="math">t<sub>n</sub></i><code><b>}</b></code><i>
. </i></p>
<p>Just as you can use pattern-matching to extract the components of a tuple,
you can use pattern matching to extract the fields of a record. For
instance, you can write:</p>
<blockquote>
<pre><span class="keyword">val</span> <b>{</b>first:string,last:string,age:int,balance:real<b>} = </b>jgm</pre>
</blockquote>
<p>and SML responds with:</p>
<blockquote>
<pre><i><span class="keyword">val</span> age = 150 : int
<span class="keyword">val</span> balance = 0.12 : real
<span class="keyword">val</span> first = "Greg" : string
<span class="keyword">val</span> last = "Morrisett" : string</i></pre>
</blockquote>
<p>thereby binding the identifiers <code>age</code>, <code>balance</code>, <code>first</code>,
and <code>last</code> to the respective components of the record. You can also
write functions where the argument is a record using a record pattern. For
example:</p>
<blockquote>
<pre><span class="keyword">fun</span> full_name{first:string,last:string,age:int,balance:real}:string<b> =
</b> first ^ <span class="string">" "</span> ^ last <span class="comment">(* ^ is the string concatenation operator *)</span></pre>
</blockquote>
<p>Calling <code>full_name</code> and passing it the record <code>jgm</code> yields <code>
"John Doe"</code> as an answer.</p>
<p>It turns out that we can think of tuples as short-hand for records. In
particular, the tuple expression <code>(3.14, "Greg", true)</code> is like
the record expression <code><b>{</b>1=3.14, 2="Greg", 3=true<b>}</b></code>.
So in some sense, tuples are just syntactic sugar for records.</p>
<p>In summary:
<ul>
<li>record expressions are of the form <b><code>{</code></b><i class="math">x</i><sub>1</sub>
<code>=</code> <i class="math">e</i><sub>1</sub><code>,</code> <i class="math">x</i><sub>2</sub>
<code> =</code> <i class="math">e</i><sub>2</sub><code>,</code> ...<code>,</code>
<i class="math">x<sub>n</sub></i> <code>=</code> <i class="math">e<sub>n</sub></i><b><code>}</code></b>.</li>
<li>record types are of the form <code><b>{</b></code><i class="math">x</i><sub>1</sub>:<i class="math">t</i><sub>1</sub>, <i class="math">x</i><sub>2</sub>:<i class="math">t</i><sub>2</sub>,..., <i class="math">x<sub>n</sub></i>:<i class="math">t<sub>n</sub></i><code><b>}</b></code>.</li>
<li>you can extract a field from a record by writing <code>#</code><i class="math">x</i><i>
</i><i class="math">e</i><i> </i>where <i class="math">x</i> is the name of
the field.</li>
<li>you can pattern match records using a pattern of the form <code><b>{</b></code><i class="math">x</i><sub>1</sub>:<i class="math">t</i><sub>1</sub>, <i class="math">x</i><sub>2</sub>:<i class="math">t</i><sub>2</sub>,..., <i class="math">x<sub>n</sub></i>:<i class="math">t<sub>n</sub></i><code><b>}</b></code>.</li>
</ul>
<p>We'll cover more kinds of types (datatypes) and more pattern matching
constructs next week.</p>
<hr>
<h2>Simple Datatypes and Case Expressions</h2>
<p>Datatypes are used for two basic purposes which we'll describe by example.
The first example of a datatype declaration is as follows:</p>
<blockquote>
<pre><span class="keyword">datatype</span> mybool = Mytrue | Myfalse</pre>
</blockquote>
<p>This definition declares a new type (mybool) and two constructors (Mytrue and
Myfalse) for creating values of type mybool. In otherwords, after entering
this definition into SML, we can use Mytrue or Myfalse as values of type mybool
and indeed, these are the <i>only</i> values of type mybool. So one
purpose of datatypes is to introduce new types into the language and to
introduce ways of creating values of this new type. In fact, the builtin <b>bool</b>
type is simply defined as:</p>
<blockquote>
<pre><span class="keyword">datatype</span> bool = true | false</pre>
</blockquote>
<p>Notice that a datatype definition is a lot like a BNF grammar. For
instance, we can think of bool as consisting of true or false. We'll
use this built-in grammar fracility in SML to good effect when we start building
implementations of languages.</p>
<div style="border:solid 0.5pt black">
<b>Side note:</b> the logical operators for conjunction and disjunction are as
follows:
<blockquote>
<p><i>exp</i> ::= ... | e1 <span class="keyword">andalso</span> e2 | e1 <span class="keyword">orelse</span>
e2</p>
</blockquote>
<p>Note that <span class="keyword">and</span> is not for logical conjunction,
although it is a keyword. These appear to be like binary operators;
however, they are different from infix functions as all the other binary
operators evaluate both expressions. These two logical constructs have a
special capability called short-circuiting. If the result of the logical
formula can be determined by evaluating the left-hand expression, the
right-hand expression will remain unevaluated.</p>
</div>
<p>Another example of a datatype declaration is as follows:</p>
<blockquote>
<pre><span class="keyword">datatype</span> day = Sun | Mon | Tue | Wed | Thu | Fri | Sat</pre>
</blockquote>
<p>This declaration defines a new type (day) and 7 new constructors for that
type (Sun-Sat). So, for example, we can write a function which maps a
number to a day of the week:</p>
<blockquote>
<pre><span class="keyword">fun</span> int_to_day(i: int):day =
<span class="keyword">if</span> i mod 7 = 0 <span class="keyword">then</span> Sun <span class="keyword">else</span>
<span class="keyword">if</span> i mod 7 = 1 <span class="keyword">then</span> Mon <span class="keyword">else</span>
<span class="keyword">if</span> i mod 7 = 2 <span class="keyword">then</span> Tue <span class="keyword">else</span>
<span class="keyword">if</span> i mod 7 = 3 <span class="keyword">then</span> Wed <span class="keyword">else</span>
<span class="keyword">if</span> i mod 7 = 4 <span class="keyword">then</span> Thu <span class="keyword">else</span>
<span class="keyword">if</span> i mod 7 = 5 <span class="keyword">then</span> Fri <span class="keyword">else</span> Sat</pre>
</blockquote>
<p>This sequence of <span class="keyword">if</span> expressions where we test
the value i is rather tedious. A more concise way to write this is to use
a <span class="keyword">case</span> expression:</p>
<blockquote>
<pre><span class="keyword">fun</span> int_to_day(i: int):day =
(<span class="keyword">case</span> i mod 7 <span class="keyword">of</span>
0 => Sun
| 1 => Mon
| 2 => Tue
| 3 => Wed
| 4 => Thu
| 5 => Fri
| _ => Sat)</pre>
</blockquote>
<p>The <span class="keyword">case</span> expression is similar to the <span class="keyword">switch</span>
statement in languages such as Java or C. In the example above, we perform
a case on the value of (i mod 7) and match it against a set of number patterns
(i.e., 0, 1, 2, etc.) The last pattern is a wildcard and matches any
value. In Java, we would write the above as something like:</p>
<blockquote>
<pre><span class="keyword">switch</span> (i % 7) {
<span class="keyword">case</span> 0: <span class="keyword">return</span> Sun;
<span class="keyword">case</span> 1: <span class="keyword">return</span> Mon;
<span class="keyword">case</span> 2: <span class="keyword">return</span> Tue;
<span class="keyword">case</span> 3: <span class="keyword">return</span> Wed;
<span class="keyword">case</span> 4: <span class="keyword">return</span> Thu;
<span class="keyword">case</span> 5: <span class="keyword">return</span> Fri;
<span class="keyword">default</span>: <span class="keyword">return</span> Sat;
}</pre>
</blockquote>
<p>So much for mapping integers to days. How about mapping days to
integer? </p>
<blockquote>
<pre><span class="keyword">fun</span> day_to_int(d: day):int =
(<span class="keyword">case</span> d <span class="keyword">of</span>
Sun => 0
| Mon => 1
| Tue => 2
| Wed => 3
| Thu => 4
| Fri => 5
| Sat => 6)</pre>
</blockquote>
<p>With <span class="keyword">case</span> expressions lying around, we
technically don't need an <span class="keyword">if</span> expression form.
In particular, an expression of the form <span class="keyword">if</span> <i>exp1</i>
<span class="keyword">then</span> <i>exp2</i> <span class="keyword">else</span> <i>exp3</i>
is equivalent to:</p>
<blockquote>
<pre><span class="keyword">case</span> <i>exp1</i> <span class="keyword">of</span>
true => <i>exp2</i>
| false => <i>exp3</i></pre>
</blockquote>
<p>In fact it turns out that with the general form of datatypes and case
expressions, we can encode a lot of things that appear to be built in to the
language. This is a good thing because it simplifies the number of special
forms that we have to reason about. </p>
<p>In summary:</p>
<ul>
<li><span class="keyword">datatype</span> <i>id </i>= <i>id1 | id2 | id3 | ...
| idn</i><b> </b>declares a new type (<i>id1</i>) with <i>n data </i>constructors
(<i>id1 id2 id3 ... idn). </i></li>
<li><span class="keyword">case</span> <i>exp</i> <span class="keyword">of</span>
<i>pat1 => exp1 | pat2 => exp2 | ... | patn => expn </i>evaluates <i>exp</i>
and then successively matches it against the patterns. That is, the
first pattern (<i>pat1</i>) is tried first and if matching succeeds, then we
evaluate the corresponding expression (<i>exp1</i>). If matching
fails, then we proceed to the next pattern <i>pat2</i> and so on. </li>
<li>So far, patterns can be made up of integers (e.g., 12, ~4), identifiers
that are variables (e.g., x), tuple patterns, record patterns, or
identifiers that are data constructors (e.g., Sun, Mon, true, etc.)</li>
<li>The <span class="keyword">if</span>-expression is a syntactic sugar for a <span class="keyword">case</span>-expression.</li>
</ul>
<hr>
<h2>Algebraic Datatypes and Even More Pattern Matching:</h2>
<p>A record (or tuple) is logically like an "and". For instance,
a tuple of type (int,real,string) is an object that contains an int <i>and</i> a
real <i>and </i>a string. Datatypes, in the most general form, are
used for defining "or" types -- when something needs to be one type or
another. In particular, suppose we want to define a new type
"number" that includes both ints and reals. This can be
accomplished in SML by the following datatype definition:</p>
<blockquote>
<pre><span class="keyword">datatype</span> num = Int_num <span class="keyword">of</span> int | Real_num <span class="keyword">of</span> real</pre>
</blockquote>
<p>This declaration gives us a new type (num) and two constructors <tt>Int_num</tt>
and <tt>Real_num</tt>. The <tt>Int_num</tt> constructor takes an int as an
argument and returns a num, while the <tt>Real_num</tt> constructor takes a real
as an argument and returns a num. In this fashion, we can create a type
that is the (disjoint) union of two other types. </p>
<p>But how do we use a value of type num? We can't apply an operation such
as + to it, because + is only defined for either ints or reals. In order
to use a value of type num, we have to use pattern matching to deconstruct it.
For example, the following function computes the maximum of two nums:</p>
<blockquote>
<pre><span class="keyword">fun</span> num_to_real(n:num):real =
(<span class="keyword">case</span> n <span class="keyword">of</span>
Int_num(i) => Real.fromInt(i)
| Real_num(r) => r)</pre>
<pre><span class="keyword">fun</span> max(n1:num, n2:num):num =
<span class="keyword">let</span> <span class="keyword">val</span> r1:real = num_to_real(n1)
<span class="keyword">val</span> r2:real = num_to_real(n2)
<span class="keyword">in</span>
<span class="keyword">if</span> r1 >= r2 <span class="keyword">then</span> Real_num(r1) <span class="keyword">else</span> Real_num(r2)
<span class="keyword">end</span></pre>
</blockquote>
<p>The strategy is simple: convert the numbers to reals and then compare
the two real numbers, returning the larger of the two. In order to make
the return value a num (as opposed to a real), we have to put the result in a <tt>Real_num</tt>
constructor. We could just have well written this as:</p>
<blockquote>
<pre><span class="keyword">fun</span> max2(n1:num, n2:num):num =
<span class="keyword">let</span> <span class="keyword">val</span> r1:real = num_to_real(n1)
<span class="keyword">val</span> r2:real = num_to_real(n2)
<span class="keyword">in</span>
Real_num(<span class="keyword">if</span> r1 >= r2 <span class="keyword">then</span> r1 <span class="keyword">else</span> r2)
<span class="keyword">end</span></pre>
</blockquote>
<p>Here, we've wrapped the whole <span class="keyword">if</span>-expression with
the <tt>Real_num</tt> constructor. This is one advantage of treating <span class="keyword">if</span>
as an <i>expression </i>as opposed to a statement. </p>
<p>Notice that in the function num_to_real, we use a <span class="keyword">case</span>-expression
to determine whether the number <i>n</i> is an integer or real. The
pattern <tt>Int_num(i)</tt> matches <i>n</i> if and only if <i>n</i> was created
using the <tt>Int_num</tt> data constructor, whereas <tt>Real_num(r)</tt>
matches <i>n </i>if and only if it was created with the <tt>Real_num</tt> data
constructor. Also, notice that in the<tt> Int_num(i)</tt> case, we have
bound the underlying integer carried by the data constructor to the variable <tt>i</tt>
and that this is used in the expression <tt>Real.fromInt(i)</tt>.
Similarly, the <tt>Real_num(r)</tt> pattern extracts the underlying real value
carried by the data constructor and binds it to <tt>r</tt>. </p>
<p>So, for instance, calling <tt>num_to_real(Int_num(3))</tt> matches the first
pattern, binds <tt>i</tt> to 3, and then returns <tt>Real.fromInt(i)</tt> = <tt>Real.fromInt(3)</tt>
= <tt>3.0</tt>. Calling <tt>num_to_real(Real_num(4.5))</tt> fails to match
the first pattern, succeeds in matching the second pattern, binds the r to 4.5,
and then returns r = 4.5. </p>
<p>Here is an alternative definition of max on numbers.</p>
<blockquote>
<pre><span class="keyword">fun</span> max2(n1:num, n2:num):num =
(<span class="keyword">case</span> (n1, n2) <span class="keyword">of</span>
(Real_num(r1), Real_num(r2)) =>
Real_num(Real.max(r1,r2))
| (Int_num(i1), Int_num(i2)) =>
Int_num(Int.max(i1,i2))
| (_, Int_num(i2)) =>
max2(n1, Real_num(num_to_real(i2))
| (Int_num(i1), _) =>
max2(n2, Real_num(num_to_real(i1)))</pre>
</blockquote>
<p>Notice that that <span class="keyword">case</span> expression in <tt>max2</tt>
matches a tuple of the numbers n1 and n2. Thus, all of the patterns in the
case expressions are of the tuple form. For example, the pattern <tt>(Real_num(r1),
Real_num(r2)) </tt>matches if and only if both the numbers are reals. </p>
<p>In the third and fourth patterns, we've used a "wildcard" (or
default) pattern. For instance, the third pattern <tt>(_, Int_num(i2)) </tt>matches
iff the first number is anything, but the second is an integer. In this
case, we simply convert the integer to a real and then call ourselves
recursively. Similarly, the fourth pattern <tt>(Int_num(i1), _) </tt>the
first number is an integer and the second number is anything. In this
case, we convert the first number to a real and call ourselves recursively.</p>
<p>Now suppose we call max2 with two integers <tt>max2(Int_num(3), Int_num(4))</tt>.
It appears as if this matches any of the last three cases, so which one do we
select? The answer is that we try the matches in order. So the second
pattern will succeed and the other patterns won't even be tried.</p>
<p>Another question is, how do we know if there is a case for every situation?
For instance, suppose we accidentally wrote:</p>
<blockquote>
<pre><span class="keyword">fun</span> max3(n1:num, n2:num):num =
(<span class="keyword">case</span> (n1, n2) <span class="keyword">of</span>
(Int_num(i1), Int_num(i2)) =>
Int_num(Int.max(i1,i2))
| (_, Int_num(i2)) =>
max3(n1, Real_num(num_to_real(i2))
| (Int_num(i1), _) =>
max3(n2, Real_num(num_to_real(i1)))</pre>
</blockquote>
<p>Now there is no case for when n1 and n2 are both reals. If you type
this in to SML, then it will complain that the pattern match is inexhaustive.
This is wonderful because it tells you your code might fail since you forgot a
case! In general, we will <i>not</i> accept code that has a match
inexhaustive warning. That is, you must make sure you never turn in code
that doesn't cover all of the cases.</p>
<p>What happens if we put in too many cases? For instance, suppose we
wrote:</p>
<blockquote>
<pre><span class="keyword">fun</span> max2(n1:num, n2:num):num =
(<span class="keyword">case</span>(n1, n2) <span class="keyword">of</span>
(Real_num(r1), Real_num(r2)) =>
Real_num(Real.max(r1,r2))
| (Int_num(i1), Int_num(i2)) =>
Int_num(Int.max(i1,i2))
| (_, Int_num(i2)) =>
max2(n1, Real_num(num_to_real(i2))
| (Int_num(i1), _) =>
max2(n2, Real_num(num_to_real(i1)))
| (_, _) => n1</pre>
</blockquote>
<p>Then SML complains again that the last case will never be reached.
Again, this is wonderful because it tells us there's some useless code that we
should either trim away, or reexamine (in its context) to see why it will never
be executed. Again, we will <i>not</i> accept code that has redundant
patterns. </p>
<p>So how can the SML type-checker determine that a pattern match is exhaustive
and that there are no dead cases? The reason is that patterns can only
test a finite number of things (there are no loops in patterns), the tests are
fairly simple (e.g., is this a Real_num or an Int_num?) and the set of datatype
constructors for a given type is <i>closed</i>. That is, after defining a
datatype, we can't simply add new data constructors to it. Note that if we
could, then <i>every</i> pattern match would be potentially inexhaustive. </p>
<p>At first, this seems to be a shortcoming of the language. Adding new
constructors is something that happens all the time, just as adding new
subclasses happens all the time in Java programs. The difference in SML is
that, if you add a new data constructor to a datatype declaration, then the
compiler will tell you where you need to examine or change your code through
"match inexhaustive" errors. This makes pattern matching an
invaluable tool for maintaining and evolving programs. </p>
<p>So sometimes, by <i>limiting </i>a programming language we gain some power.
In the case of the pattern-matching sub-language of ML, the designers have
restricted the set of tests that can be performed so that the compiler can
automatically tell you where you need to look at your code to get it in
synch with your definitions.</p>
[[Cornell CS312]] | [[Standard ML course - Recitation 2]]
<h1 align="center">Recitation 3<br>
Higher-order and Anonymous Functions, Currying</h1>
<p>This lecture covers:</p>
<ul>
<li>higher-order functions</li>
<li>anonymous functions</li>
<li>currying</li>
<li>side-effects and printing</li>
<li>exceptions</li>
</ul>
<h2>Higher-order functions</h2>
<p>Functions are values just like any other value in SML. What does that mean
exactly? This means that we can pass functions around as arguments to other
functions, that we can store functions in data structures, that we can return
functions as a result from other functions. The full implication of this will
not hit you until later, but believe us, it will.</p>
<p>Let us look at why it is useful to have higher-order functions. The first
reason is that it allows you to write more general code, hence more reusable
code. As a running example, consider functions <i>double</i> and <i>square</i>
on integers:</p>
<blockquote>
<pre><span class="keyword">fun</span> double (x:int):int = 2 * x
<span class="keyword">fun</span> square (x:int):int = x * x</pre>
</blockquote>
<p>Let us now come up with a function to quadruple a number. We could do it
directly, but for utterly twisted motives decide to use the function <i>double</i>
above:</p>
<blockquote>
<pre><span class="keyword">fun</span> quad (x:int):int = double (double (x))</pre>
</blockquote>
<p>Straightforward enough. What about a function to raise an integer to the
fourth power?</p>
<blockquote>
<pre><span class="keyword">fun</span> fourth (x:int):int = square (square (x))</pre>
</blockquote>
<p>There is an obvious similarity between these two functions: what they do is
apply a given function twice to a value. By passing in the function to <code>apply_twice</code>
as an argument, we can abstract this functionality and thus reuse code:</p>
<blockquote>
<pre><span class="keyword">fun</span> <code>applyTwice</code> (f:int -> int, x:int):int = f (f (x))</pre>
</blockquote>
<p>Using this, we can write:</p>
<blockquote>
<pre><span class="keyword">fun</span> quad (x:int):int = <code>applyTwice</code>(double,x)
<span class="keyword">fun</span> fourth (x:int):int = <code>applyTwice</code>(square,x)</pre>
</blockquote>
<p>The advantage is that the similarity between these two functions has been
made manifest. Doing this is very helpful. If someone comes up with an improved
(or corrected) version of <code>applyTwice</code>, then every function that uses it profits
from the improvement.</p>
<p>The function <code>applyTwice</code> is a so-called higher-order
function: it is a function from functions to other values. Notice the type of <code>applyTwice</code> is <tt>((int -> int) * int) -> int</tt>.</p>
<p>To avoid polluting the top-level namespace, it can be useful to locally
define the function to pass in as an argument. For example:</p>
<blockquote>
<pre><span class="keyword">fun</span> fourth (x:int):int =
<span class="keyword">let</span>
<span class="keyword">fun</span> square (y:int):int = y * y
<span class="keyword">in</span>
<code>applyTwice</code> (square,x)
<span class="keyword">end</span></pre>
</blockquote>
<p>What happens when we evaluate an expression that uses a higher-order
function? We use the same rules as earlier: when a function is applied (called),
we replace the call with the body of the function, with the argument variables
(actually, variables appearing in the argument pattern) bound to the
corresponding actual values. For example, <code>fourth(3)</code>
evaluates as follows:</p>
<pre> fourth(3)
--> (twice (<span class="keyword">fn </span>(x:int) => x * x)) (3)
--> (<span class="keyword">fn</span>(x: int):int => (<span class="keyword">fn </span>(x:int) => x * x)
((<span class="keyword">fn </span>(x:int) => x * x) (x))) (3)
--> (<span class="keyword">fn </span>(x:int) => x * x) ((<span class="keyword">fn </span>(x:int) => x * x) (3))
--> (<span class="keyword">fn </span>(x:int) => x * x) (3*3)
--> (<span class="keyword">fn </span>(x:int) => x * x) (9)
--> 9*9
--> 81
</pre>
<hr>
<h2>Anonymous functions</h2>
<p>It seems silly to define and name a function simply to pass it in as
an argument to another function. After all, all we really care about is that <code>applyTwice</code> gets a function that doubles its argument.
Fortunately, ML provides a better solution - anonymous functions:</p>
<blockquote>
<pre><span class="keyword">fun</span> fourth (x:int):int = applyTwice (<span class="keyword">fn</span> (y:int) => y*y,x)</pre>
</blockquote>
<p>We introduce a new expression denoting "a function that expects such
and such argument and returning such an expression":</p>
<blockquote>
<i class="math">e</i> ::= ... | <code class="keyword">fn</code> <code> (</code><i class="math">x</i> <i> </i>:
<i class="math">t</i><code>)
=> </code>
<i class="math">e</i>
</blockquote>
<p>The <span class="keyword"><tt>fn</tt></span> expression creates an <i>anonymous
function</i>: a function without a name. The type makes things actually clearer.
Unlike top-level functions, the return type of an anonymous function is not
declared (and is inferred automatically). What is the type of <tt><span
class="keyword">fn</span>(y:int) => y = 3</tt>?</p>
<p><b>Answer: </b><code>int -> bool</code> </p>
<p>Notice that the declaration
<pre><span class="keyword">val</span> square : int -> int = <span class="keyword">fn</span> (y:int) => y*y </pre>
has the same effect as<pre><span class="keyword">fun</span> square (y:int) = y * y</pre>
In fact, the declaration using <tt><span class="keyword">fun</span></tt>
is just <b> syntactic sugar</b> for the more tedious <tt><span class="keyword">val</span></tt>
declaration. (This isn't true for recursive functions, however.)
<hr>
<h2>Currying</h2>
<p>Anonymous functions are useful for creating functions to pass as arguments to
other functions, but are also useful for writing functions that return other
functions! Let us revisit the <code>apply_twice</code> function. We now write a
function <code>twice</code> which takes a function as an argument and returns a
new function that applies the original function twice:</p>
<blockquote>
<pre><span class="keyword">fun</span> twice (f: int->int) =
<span class="keyword">fn</span>(x: int) => f (f (x))</pre>
</blockquote>
<p>This function takes a function <tt>f</tt> (of type <tt>int->int</tt>) as
an argument, and returns a value <tt><span class="keyword">fn</span> (x:int)
=> f (f (x))</tt>, which is a function which when applied to an argument
applies <tt>f</tt> twice to that argument. Thus, we can write</p>
<blockquote>
<pre><span class="keyword">val</span> fourth = twice (<span class="keyword">fn </span>(x:int) => x * x)
<span class="keyword">val</span> quad = twice (<span class="keyword">fn </span>(x:int) => 2 * x)</pre>
</blockquote>
<p>and trying to evaluate <tt>fourth(3)</tt> does <a href="rec03a.html"> indeed</a> result in <tt>81</tt>.</p>
<p>This device is called <em>currying</em> after the logician H.B. Curry. At
this point you may be worried about the efficiency of returning an intermediate
function when you're just going to pass all the arguments at once anyway. Run a
test if you want (you should know how to find out how to do this), but rest
assured that curried functions are entirely normal in functional languages, so
there is no speed penalty worth worrying about.</p>
<p>Functions that return other functions are so common in functional programming
that ML provides a special syntax for them. For example, we could write
the twice function above as</p>
<blockquote>
<pre><span class="keyword">fun</span> twice (f: int->int) (x:int) : int = f (f (x))</pre>
</blockquote>
<p>The "second argument" x here is not an argument to twice. The
syntax is telling ML that after passing in the argument f, twice will return <i>another</i>
function which takes in an argument x and returns an int. The distinction
here is critical. twice takes one argument f and returns a function.</p>
<p>The type of twice is <code>(int->int)->int->int</code>. The
<code>-></code> operator is right associative, so this is equivalent to
<code>(int->int)->(int->int)</code>. Notice that if we had left
out the parentheses on the type of f, we would no
longer long have a function that took in another function as an argument, since
<code>int->int->int->int</code> is equivalent to <code>int->(int->(int->int))</code>.</p>
<p>Here are more examples of useful higher-order functions that we will leave
you to ponder (and try out at home):</p>
<blockquote>
<pre><span class="keyword">fun</span> compose (f:int -> int, g:int -> int) (x:int) : int =
f (g (x))</pre>
</blockquote>
<blockquote>
<pre><span class="keyword">fun</span> ntimes (f:int -> int,n:int) =
<span class="keyword">if</span> (n=0)
<span class="keyword">then</span> (<span class="keyword">fn</span> (x:int) => x)
<span class="keyword">else</span> compose (f, ntimes (f,n-1))</pre>
</blockquote>
<hr>
<h2>Side effects</h2>
<p>Up until now, we have only shown you pure functional programming. But
in certain cases, imperative programming is unavoidable. One such case is
printing a value to the screen. By now you may have found it difficult to
debug your ML code without any way to display intermediate values on the
screen. ML provides the function <code>print : string->unit</code> to print a string
to the screen.</p>
<p>Printing to the screen is called a <i>side-effect</i> because it alters the
state of the computer. Until now we have been writing functions that do
not change any state but merely compute some value. Later on we will show
you more examples of side-effects, but printing will suffice for now.</p>
<p>Because of ML's type system, print is not overloaded like Java's <code>System.out.println</code>.
To
print an int, real, bool, etc, you must first convert it to a string. Fortunately, there are basis library functions to do this conversion.
For
example, <code>Int.toString</code> converts an int to a string. So to print 3, we can
write <code>print (Int.toString 3)</code>. The parentheses are needed here bacause ML
evaluates expressions left to right.</p>
<p>So how can you put print statements in your code? There are two
ways. The first is with a val statement. This can be placed inside a let
block, thus enabling you to print intermediate values.</p>
<blockquote>
<pre><span class="keyword">let val</span> x = 3
<span class="keyword">val</span> () = print ("Value of x is"^(Int.toString x))
<span class="keyword">in</span> x+1
<span class="keyword">end</span></pre>
</blockquote>
<p>There is a second way as well. For this we introduce new syntax.</p>
<blockquote>
<i class="math">e</i> ::= ... | <code>(</code> <i class="math">e</i><sub>1</sub><code>;</code>
... <code>;</code> <i class="math">e<sub>n</sub></i> <code> )</code>
</blockquote>
<p>This expression tells ML to evaluate expressions <i class="math">e</i><sub>1</sub>,...,<i class="math">e<sub>n</sub></i>
in order
and return the result of evaluating <i class="math">e<sub>n</sub></i>. So we could
write our example as</p>
<blockquote>
<pre><span class="keyword">let val</span> x = 3
<span class="keyword">in</span> (print ("Value of x is"^(Int.toString x));
x+1)
<span class="keyword">end</span></pre>
</blockquote>
<hr>
<h2>Exceptions</h2>
<p>To handle errors, ML provides built in exceptions, much like Java. To
declare an exception Error, you write</p>
<blockquote>
<pre><span class="keyword">exception</span> Error</pre>
</blockquote>
<p>Then to throw the exception, we use the raise keyword. An example using
the square root function is</p>
<blockquote>
<pre><span class="keyword">fun</span> sqrt (x:real):real =
<span class="keyword">if</span> x<0 <span class="keyword">then</span> <span class="keyword">raise</span> Error
<span class="keyword">else</span> Math.sqrt x</pre>
</blockquote>
<p>The type of an exception matches the code in which the exception is
thrown. So for example, in the sqrt function, the type of Error will be
real since the expression must evaluate to a real.</p>
<p>Exceptions can also carry values. An example is the built-in exception
is Fail, defined as</p>
<blockquote>
<pre><span class="keyword">exception</span> Fail <span class="keyword">of</span> string</pre>
</blockquote>
<p>To raise this exception, we write</p>
<blockquote>
<pre><span class="keyword">raise</span> Fail "Some Error message"</pre>
</blockquote>
<p>We can also catch exceptions by the handle keyword. It is important not
to abuse this capability. Excessive use of exceptions can lead to
unreadable spaghetti code. For this class, it will probably never be
necessary to handle an exception. Exceptions should only be raised in
truly exceptional cases, that is, when some unrecoverable damage has been
done. If you can avoid an exception by checking bounds or using options,
this is far preferable. For example, we could have written the sqrt
function clumsily as</p>
<blockquote>
<pre><span class="keyword">fun</span> sqrt (x:real):real =
Math.sqrt x
<span class="keyword">handle</span> ex => <span class="keyword">raise</span> Error</pre>
</blockquote>
<p>Refer to the ML style guide for more examples and info on how to use
exceptions properly.</p>
[[Cornell CS312]] | [[Standard ML course - Recitation 3]]
<h1>Recitation 4<br>
Datatype pitfalls, polymorphism, lists</h1>
<h2>Datatype Constructors</h2>
<pre><span class="comment">(* Note that by convention, data constructors (Penny, Nickel, etc.)
* start with Capital letters. (There are a few exceptions such as
* true and false.) *)</span>
<span class="keyword">datatype</span> coin = Penny | Nickel | Dime | Quarter
<span class="comment">(* Note that by convention, variables (e.g., value, c) start
* with lower-case letters.
*)</span>
<span class="keyword">fun</span> value(c:coin):real =
<span class="keyword">case</span> c <span class="keyword">of</span>
Penny => 0.01
| Nickel => 0.05
| Dime => 0.10
| Quarter => 0.25
;
<span class="comment">(* What happens when we call this function? Why does
* SML complain that there are too many patterns?
*)</span>
<span class="keyword">fun</span> bad_value(c:coin):real =
<span class="keyword">let</span> <span class="keyword">val</span> penny = Penny
<span class="keyword">in</span>
<span class="keyword">case</span> c <span class="keyword">of</span>
penny =>0.01
| Nickel => 0.05
| Dime => 0.10
| Quarter => 0.25
<span class="keyword">end</span>
;
<span class="comment">(* After all, isn't this equivalent to the following? *)</span>
<span class="keyword">fun</span> bad_value2(c:coin):real =
<span class="keyword">let</span> <span class="keyword">val</span> penny = Penny
<span class="keyword">in</span>
<span class="keyword">if</span> (c = penny) <span class="keyword">then</span> 0.01
<span class="keyword">else</span> <span class="keyword">if</span> (c = Nickel) <span class="keyword">then</span> 0.05
<span class="keyword">else</span> <span class="keyword">if</span> (c = Dime) <span class="keyword">then</span> 0.10
<span class="keyword">else</span> <span class="keyword">if</span> (c = Quarter) <span class="keyword">then</span> 0.25
<span class="keyword">else</span> <span class="keyword">raise</span> Fail(<span class="string">"impossible!"</span>)
<span class="keyword">end</span>
<span class="comment">(* NO!!!!!!!!
*
* It's more like: *)</span>
<span class="keyword">fun</span> bad_value2(c:coin):real =
<span class="keyword">let</span> <span class="keyword">val</span> penny = Penny
<span class="keyword">in</span>
<span class="keyword">case</span> c <span class="keyword">of</span>
random_variable_name => 0.01
| Nickel => 0.05
| Dime => 0.10
| Quarter => 0.25
<span class="keyword">end</span>
;
<span class="comment">(* or even *)</span>
<span class="keyword">fun</span> bad_value3(c:coin):real =
<span class="keyword">let</span> <span class="keyword">val</span> penny = Penny
<span class="keyword">in</span>
<span class="keyword">case</span> c <span class="keyword">of</span>
_ => 0.01
| Nickel => 0.05
| Dime => 0.10
| Quarter => 0.25
<span class="keyword">end</span>
;
<span class="comment">(* WHY? In an expression of the form:
case e of
...
| id => e2
...
We have to be careful: If id is a data constructor (e.g.,
Penny), then we're comparing e to see if it has the same value
as the data constructor. But if id is not a data constructor
(e.g., penny -- even if it's value is a data constructor),
then we're declaring a NEW, FRESH, variable and binding it to
the value of e so that e2 can refer to it via id. So any
patterns below the identifier are redundant, because this
match will never fail.
Moral: pattern matching sometimes USES identifiers (namely
those that are data constructors) and sometimes DECLARES
or BINDS identifiers (namely those that are not data
constructors.)</span> <span class="comment">This is why it's a good idea when writing
variables in a pattern to add ": type" to establish clearly
that this is intended to be a binding occurrence.
Similarly, id is bound (i.e, declared) in the declaration:
val id = e (i.e., a value declaration)
or
fun id(...):t = e (i.e., a function declaration)
or
fun (...,id:t,...):t = e (i.e., a function argument)
In contrast, for an expression of the form:
if (e1 = id) then ...</span></pre>
<pre><span class="comment"> or
id + id
or just about anything else, the occurrence of the identifier
id is a USE or FREE occurrence that evaluates to the value bound
to the nearest binding of id, be it from a function argument,
function declaration, value declaration, or pattern match.
That is, SML does not look to see that penny was previously
declared and bound to Penny in the pattern match. So why
not? After all, it can test to see if "c" is equal to
the data constructors Nickel, Dime, Quarter, etc. Why
can't it check to see if c is equal to penny or
random_variable_name?
Short answer: the designers <i>could've</i> done things this
way (Prolog tries to), but there are good reasons why they
didn't.
Longer answer:
(1) We'd need some way to distinguish in patterns when we
want to USE the value of a variable instead of BINDING
the variable to a value.
(2) By limiting the expressive power of tests, we can check
</span> <span class="comment">for exhaustiveness or overlapping patterns. If we allow
arbitrary tests, then we can't do that (remember the if-example?)
(3) It's not clear what equals should do on some types.
Testing the (mathematical) equality of two functions
is impossible, as we'll see later in the course.
(4) By limiting the tests, we enable certain compiler
optimizations. In particular, an ML compiler will
avoid testing something more than once for a given
set of patterns.
*)</span>
<span class="comment">(******************************************)</span>
<span class="comment">(* Scope, definitions, and uses *)</span>
<span class="comment">(******************************************)</span>
<span class="comment">(* Q: what value does the following function yield when
we pass it two arguments, say (2,3)?
*)</span>
<span class="comment">(*1*)</span> <span class="keyword">fun</span> f(x:int,y:int):int =
<span class="comment">(*2*)</span> <span class="keyword">let</span> <span class="keyword">val</span> x = y
<span class="comment">(*3*)</span> <span class="keyword">val</span> y = x
<span class="comment">(*4*)</span> <span class="keyword">val</span> (y,x) = (x,y*y)
<span class="comment">(*5*)</span> <span class="keyword">in</span>
<span class="comment">(*6*)</span> <span class="keyword">case</span> (y,x) <span class="keyword">of</span>
<span class="comment">(*7*)</span> (x,~1) => 0
<span class="comment">(*8*)</span> | (x,y) => x
<span class="comment">(*9*)</span> <span class="keyword">end</span>
;
<span class="comment">(* Figuring this out isn't easy: Let's refer to the different
* occurrences of x and y by their line numbers. So x.1 means
* the variable x occurring on line 1.
*
* (1) introduces three new variables: f.1,x.1, and y.1.
* Initially, x.1 = 2, and y.1 = 3.
* (2) introduces a new variable x.2 (different from x.1)
* and binds it to the value that was in y.1 (namely 3).
* (3) introduces a new variable y.3 and binds it to the value that was
* in x.2 (namely 3).
* (4) introduces two new variables y.4 and x.4 and binds them
* to the values x.2 (= 3) and y.3 * y.3 (= 3 * 3 = 9).
* (6) does a pattern match on the tuple (y.4,x.4) = (3,9).
* (7) introduces a new variable x.7 within the pattern (x,~1) and
* attempts to match this pattern against (3,9). The x.7 matches
* the 3, but the 9 fails to match ~1. So we proceed to the next
* case.</span>
*)</pre>
<hr>
<h2>Using Polymorphism</h2>
<h3><a name="lists">The list datatype</a></h3>
<p>Because lists are so useful, ML provides some a builtin parameterized list
datatype called <code>list</code>. It acts just like the <code>List</code>
datatype that we defined in lecture except that the names of the constructors
are changed. The constructor <code>nil</code> makes an empty list (compare to <code>Nil</code>)
and the constructor <code>::</code> builds a new list by prepending a first
element to another list (compare to <code>Cons</code>). Thus,
<code>list</code> could be declared as:</p>
<pre><span class="keyword">datatype</span> 'a list = nil | :: <span class="keyword">of</span> 'a * 'a list</pre>
<p>The constructor <code>::</code> is an infix operator, which is notationally
convenient.
The SML interpreter knows how to print out lists nicely as well. The empty
list is printed as <code>[]</code>, and non-empty lists are printed using
brackets with comma-separated items. In fact, these forms may be used to write
lists as well. Note that <code>nil</code> is a polymorphic value; it is the
empty list for all types <code>T list</code>. In fact, it is given the
polymorphic type <code>'a list</code>. Here are some examples that show how
lists work:</p>
<pre>- nil;
<i>val it = [] : 'a list</i>
- 2::nil;
<i>val it = [2] : int list</i>
- val both = 1::it;
<i>val both = [1,2] : int list</i>
- <span class="keyword">case</span> both <span class="keyword">of</span> x ::
lst => lst | nil => nil
<i>val it = [2] : int list</i>
- <span class="keyword">case </span>it <span class="keyword">of</span> x ::
lst => lst | nil => nil
<i>val it = [] : int list </i><span class="comment">(* we don't "recover polymorphism" here; it would be unsafe in general *)</span>
- <span class="keyword">case</span> it <span class="keyword">of</span> x ::
lst => lst | nil => nil
<i>val it = [] : 'a list</i>
- both = 1::2::nil; <span class="comment">(* we can test lists for equality if we can test their elements *)</span>
<i>val it = true : bool
</i>- case both of
= [x:int, y:int] => x + y <span class="comment">(* we can use bracket notation for patterns too. *)</span>
= | _ => 0;
<i>val it = 3;
- </i>[[]];
<i>val it = [[]] : 'a list list</i></pre>
<p>Just like with datatypes, we have to make sure that we write exhaustive
patterns when using case:</p>
<pre>- <span class="keyword">case</span> ["hello", "goodbye"] <span class="keyword">of</span> (s:string) :: _ => s + " hello";
<i>case ["hello", "goodbye"] ... Warning: match nonexhaustive ...</i></pre>
<p>Built-in lists come with <a href="http://cm.bell-labs.com/cm/cs/what/smlnj/doc/basis/pages/list.html">lots
of useful predefined Basis Library functions</a>, such as the following and many
more:</p>
<pre><span class="keyword">val</span> null: 'a list -> bool
<span class="keyword">val</span> length : 'a list -> int
<span class="keyword">val</span> @ : ('a list * 'a list) -> 'a list <span class="comment">(* append two lists *)</span>
<span class="keyword">val</span> hd : 'a list -> 'a
<span class="keyword">val</span> tl : 'a list -> 'a list
<span class="keyword">val</span> last : 'a list -> 'a
<span class="keyword">val</span> nth : ('a list * int) -> 'a</pre>
<p>Of course, all of these functions could also be easily implemented for the <code>List</code>
datatype that we defined ourselves!</p>
<h3>Multiple type parameters</h3>
<p>We saw two related features of SML in class: the ability to produce
polymorphic values whose type mentions a type variable and the ability to
parameterize types with respect to an arbitrary type variable. As we have seen,
polymorphic values are typically function values but other polymorphic values
exist, such as <code>nil</code> (and also <code>Nil</code>, as we defined it).
Datatypes can actually be parameterized with respect to multiple type
parameters; for example the following datatype, <code>or</code>, is a type-level
function that accepts a pair of types and yields a new type:</p>
<pre>- <span class="keyword">datatype</span> ('a, 'b) or = Left <span class="keyword">of</span> 'a | Right <span class="keyword">of</span> 'b | Both <span class="keyword">of</span> 'a * 'b;
- Left(2);
<i>val it = Left 2: (int, 'a) or</i>
- Right("hi");
<i>val it = Right "hi": ('a, string) or</i>
- Both(true, #"a")
<i>val it = Both(true, #"a"): (bool, char) or</i></pre>
<p> Note that the values <code>Left(2)</code> and <code>Right("hi")</code>
are still polymorphic with respect to one type! Note also that ML always starts counting
type variables from <code>'a</code>, hence the <code><i>val it = (int, 'a) or</i></code> rather than
<code><i>val it = (int, 'b) or</i> </code>in the case for <code>Left(2)</code> above.</p>
<h3>The option parameterized datatype</h3>
<p>Another important standard parameterized datatype is <code>option</code>,
which represents the <i>possible</i> presence of a value. It is defined as
follows:</p>
<pre><span class="keyword">datatype</span> 'a option = SOME <span class="keyword">of</span> 'a | NONE</pre>
<p>Options are commonly used when no useful value of a particular type makes
sense; this corresponds to some uses of the null value in Java (i.e., <code>NONE</code>
acts like <code>null</code>), but there is no danger of encountering a null
pointer exception unless an inexhaustive case statement is used or the <code>valOf</code>
operation is used. <a href="http://cm.bell-labs.com/cm/cs/what/smlnj/doc/basis/pages/option.html">A
more detailed description of option</a> is available in the Basis Library
documentation.</p>
[[Cornell CS312]] | [[Standard ML course - Recitation 4]]
<h1 align="center">CS 312 Lecture 5: <br>
Folding and tail recursion</h1>
<h2>Folding</h2>
<p>Suppose we want to write a function to sum a list of integers. By now
you should be able to write the following code:</p>
<blockquote>
<pre><span class="keyword">fun</span> sum (l:int list):int =
<span class="keyword">case</span> l <span class="keyword">of</span>
[] => 0
| x::xs => x + (sum xs)</pre>
</blockquote>
<p>Now suppose we want to concatenate a list of strings. We can write:</p>
<blockquote>
<pre><span class="keyword">fun</span> concat (l:string list):string =
<span class="keyword">case</span> l <span class="keyword">of</span>
[] => ""
| x::xs => x ^ (concat xs)</pre>
</blockquote>
<p>Notice that both functions look almost identical. With the exception of
the different types and different operation (^ vs +), both functions are
equivalent. In both cases, we walk down a list performing some operation
with the data at each step. Since we love to reuse code in this class, is
there some easier way to encode this?</p>
<p>It turns out we can abstract all of the details of traversing a list.
The idea is simple. As we walk across a list, we store an <i>accumulator</i>,
a value that stores some data that is important to us. For example, if we
want to walk across a list of integers and sum them, we could store the current
sum in the accumulator. We start with the accumulator set to 0. As
we come across each new element, we add the element to the accumulator.
When we reach the end, we return the value stored in the accumulator.</p>
<p>Let's try to rewrite the sum function to introduce the idea of an
accumulator.</p>
<blockquote>
<pre><span class="keyword">fun</span> sum' (acc:int) (l:int list):int =
<span class="keyword">case</span> l <span class="keyword">of</span>
[] => acc
| x::xs => sum' (acc+x) xs</pre>
</blockquote>
<p>Of course, to get the sum, we must call sum' with 0 for the initial acc
value. Similarly, we can rewrite concat with this concept of the
accumulator.</p>
<blockquote>
<pre><span class="keyword">fun</span> concat' (acc:string) (l:string list):string =
<span class="keyword">case</span> l <span class="keyword">of</span>
[] => acc
| x::xs => concat' (acc^x) xs</pre>
</blockquote>
<p>To use this function, we pass in the empty string for the inital
accumulator. Now we see even more similarity between the two
functions. We are in a position now to eliminate any differences between
the two by passing in the operator that acts on the head of the list and the
accumulator. The result is the most powerful list function in the list
library: List.foldl.</p>
<blockquote>
<pre><span class="keyword">fun</span> foldl (f: 'a*'b->'b) (acc: 'b) (l: 'a list): 'b =
<span class="keyword">case</span> l <span class="keyword">of</span>
[] => acc
| x::xs => foldl f (f(x,acc)) xs</pre>
</blockquote>
<p>Now we can rewrite sum and concat as</p>
<blockquote>
<pre><span class="keyword">fun</span> sum (l:int list):int = foldl (fn (x,acc) => acc+x) 0 l
<span class="keyword">fun</span> concat (l:string list):string = foldl (fn (x,acc) => acc^x) "" l</pre>
</blockquote>
<p>Given a function f of type <code>'a*'b->'b</code>, the expression
<code>foldl f b [x1,x2,...,xn]</code> evaluates to
<code>f(xn, f(..., f(x2, f(x1,b))))</code>.
The 'l' in foldl comes from the fact that it walks the list from left to
right. Thus, we have to be careful sometimes in applying functions in the
right order (hence acc^x and not x^acc in concat above). There is also a
library function foldr which traverses the list from right to left. So,
<code>foldr f b [x1,x2,...,xn]</code> evaluates to <code>f (x1,f (x2,f (...,f(xn,b))))</code>. The code for foldr is
<blockquote>
<pre><span class="keyword">fun</span> foldr (f:'a*'b->'b) (accum:'b) (l:'a list):'b =
<span class="keyword">case</span> l <span class="keyword">of</span>
[] => acc
| x::xs => f(x, (foldr f acc xs))</pre>
</blockquote>
<p>We can use foldr to write concat in the more natural manner.</p>
<blockquote>
<pre><span class="keyword">fun</span> concat (l:string list):string = foldr (fn (x,acc) => x^acc) "" l</pre>
</blockquote>
<p>But we can still do better. Remember, both foldl and foldr are curried,
so that we can leave out the list argument and write</p>
<blockquote>
<pre><span class="keyword">val</span> sum = foldl (fn (x,a) => x+a) 0
<span class="keyword">val</span> concat = foldr (fn (x,a) => x^a) ""</pre>
</blockquote>
<p>We can do even better. ML provides a convenient notation to use
infix binary operators as functions by qualifying their name with the structure
they belong to (such as <code>Int</code>, <code>Real</code>, <code>String</code>,
<code>List</code>, etc). So <code>Int.+</code> is a
function that takes in two integers and adds them. So we can write sum and concat one last time as</p>
<blockquote>
<pre><span class="keyword">val</span> sum = foldl Int.+ 0
<span class="keyword">val</span> concat = foldr String.^ ""</pre>
</blockquote>
<p>Now you see the true power of functional programming. Try rewriting
functions that sum a list of ints and concatenate a list of strings in 2 short
lines of Java.</p>
<p>Folding is so powerful, that we can write other list functions in terms of
foldl! For example,</p>
<blockquote>
<pre><span class="keyword">fun </span>length l = foldl (fn (_,a) => a+1) 0 l
<span class="keyword">fun</span> rev l = foldl List.:: [] l
<span class="keyword">fun</span> map f l = foldr (fn (x,a) => (f x)::a) [] l
<span class="keyword">fun</span> app f l = foldr (fn (x,_) => f x) () l
<span class="keyword">fun</span> filter f l = foldr (fn(x,a) => if f x then x::a else a) [] l</pre>
</blockquote>
<p>When writing code with fold, ML's type system can be tremendously
helpful. The type of fold is <code>('a*'b->'b)->'b->'a
list->'b</code>. Suppose we know we are applying foldl to an <code>int list</code> and we
want to return a <code>string</code>. Then 'a is of type <code>int</code> and 'b is of type
<code>string</code>. So right away, we know that the function we have to pass into
foldl is of type <code>int*string->string</code>. Remember to use your type system
to help you in writing code.</p>
<p>You should try writing some functions with foldl to get a feel for it.
It can be incredibly useful.</p>
<hr>
<h2>Tail recursion</h2>
<p>A function that returns the value of its recursive call is said to be <i> tail
recursive</i>. The advantage is that a tail recursive function can be
compiled into a for loop. We will see exactly why later in the course, but
for now just notice the following difference between the sum and sum' functions
above. In the first sum function, after the recursive call returned its
value, we add x to it. In the tail recursive sum', after the recursive
call, we immediately return the value returned by the recursion. So in the
second case, the compiler can change this recursive call into a simple goto
statement. The result is that tail recursive functions tend to run faster
than their standard counterparts.</p>
<p>Notice also that foldl is tail recursive whereas foldr is not.
Typically when given a choice between using the two functions, you should use
foldl for performance. However, in many cases using foldr is easier, as in
the concat function above. If you need to use foldr on a very lengthy
list, you may instead want to reverse the list first and use foldl. So, we
could have written concat as</p>
<blockquote>
<pre><span class="keyword">fun</span> concat (l:string list) = foldl String.^ "" (rev l)</pre>
</blockquote>
<p>which would be tail recursive.</p>
[[Cornell CS312]] | [[Standard ML course - Recitation 5]]
<h1 align="center">CS 312 Recitation 6<br>
Structures, signatures & more functional examples</h1>
<p> When we try to use SML to
build larger programs, and particularly when the software is being
developed
by a team of programmers, more language features become handy. One such
feature is the <i>module</i>, which is a collection of
datatypes,
values, and functions that are grouped together as one syntactic unit.
A
well designed module is reusable in many different programs. Modules
also
provide a good way to structure group development of software, because
they
make a convenient way to cut up the program and assign responsibilities
to
different programmers. Modules are even useful for sufficiently large
single-person software projects, because they reduce the amount of
information that the programmer needs to remember about the parts of
the
program that are not currently under development. We've already
been
using modules when we write qualified identifiers of the form
ModuleName.id
to access Basis Library functionality. Now we'll see how we can write
our
own modules.</p>
<h2>Structures</h2>
<p>Modules in SML are implemented by <code>structure</code>
declarations that
have the following syntax: </p>
<pre><code><span class="keyword">structure</span> StructureName = <span
class="keyword">struct</span><br><br> <i>declarations</i><br><br><span
class="keyword">end</span></code><br></pre>
By convention, <code>structure</code> names always start with capital
letters. Examples of the declarations that can go inside of a
<code>structure</code> are:
<ul>
<li> <code><span class="keyword">open</span> List</code><br>
Puts all the declarations that are in the <code> List</code> structure
in this structure, so that you do not need to say <code>List.partition</code>
but can instead type <code>partition</code>. </li>
<li> <code><span class="keyword">type</span> myInt = int</code><br>
Tells the interpreter that anytime it sees the type <code>myInt</code>
that we actually mean the type <code>int</code>. </li>
<li> <code><span class="keyword">datatype</span> myNum = Int of int
| Real of Real</code> </li>
<li> <code><span class="keyword">val</span> meaningOfLife = 42</code>
</li>
<li> <code><span class="keyword">fun </span>askQuestion1 = "What is
your name?" </code> </li>
<li> <code><span class="keyword">structure</span> L = List</code><br>
Inside the structure, you may now refer to <code>List.partition</code>
as <code>L.partition</code> as well. </li>
<li> <code><span class="keyword">exception</span> WrongAnswer</code>
<br>
<code><span class="keyword">exception</span> Fail of string</code><br>
Defines an exception that can be raised. Exceptions can also carry
values with them (see the <code>Fail</code> exception for example). </li>
</ul>
<p> Accessing <code>structure</code> members is done in much the same
way
that you access Java class members, <code>StructureName.declaration</code>.
This works for all of the declarations above, including the <code>type,
datatype, exception, and structure</code> declarations.</p>
<h2>Signatures</h2>
<p>To successfully develop large programs, we need more than the
ability to
group related operations together, as we've done. We need to be able to
use
the compiler to enforce the separation between different modules, which
prevents bad things from
happening. Signatures are the mechanism that enforces this separation.</p>
<p> A signature declares a set of types and values that any module
implementing
it must provide. It might look something like the following: </p>
<pre><code><span class="keyword">signature</span> SIG_NAME = <span
class="keyword">sig</span><br> <span class="keyword">exception</span> WrongAnswer<br> <span
class="keyword">type</span> myInt<br> <span class="keyword">datatype</span> myNum = Int of int<br> <span
class="keyword">val</span> x:int<br> <span class="keyword">val</span> add:int * int -> int<br><span
class="keyword">end</span></code></pre>
<p> And a <code>structure</code> defines the <code>signature</code>
that it
implements as follows:</p>
<pre><code><span class="keyword">structure</span> StructureName :> SIG_NAME = <span
class="keyword">struct</span><br> declarations<br><span
class="keyword">end</span></code></pre>
<p>Note that <code>signature</code> names are all-caps by convention.
If a
<code>structure</code> implements a <code>signature</code>, then
anyone
using the <code>structure</code> may not see or use any values, types,
or
exceptions other than what is defined in the signature.
</p>
<h2>Maps</h2>
<p>Often in computer science we need a mapping from one kind of value
to
another. For example, if we wanted to store a telephone book, we
would
need a mapping from names (strings) to phone numbers (ints).
There are
many ways to implement maps, but ML allows us a truly creative and
unique
representation that languages like Java do not. We will represent
maps as
functions.</p>
<blockquote>
<pre><span class="keyword">type</span> ('a,'b) map = 'a->'b</pre>
</blockquote>
<p>The empty map will be a function that returns an error.</p>
<blockquote>
<pre><span class="keyword">exception</span> EmptyMap<br><span
class="keyword">val</span> empty = fn _ => <span class="keyword">raise</span> EmptyMap</pre>
</blockquote>
<p>If you're confused now, the lookup function will confuse you even
more.</p>
<blockquote>
<pre><span class="keyword">fun</span> lookup (m:('a,'b) map) (k:'a) = (m k)</pre>
</blockquote>
<p>What we are doing here is storing the lookup function as the map
itself. ML allows us to do this because functions are first-class
objects. When we insert a key/value pair, we create a new lookup
function
that returns the value given a key.</p>
<blockquote>
<pre><span class="keyword">fun</span> insert (m:('a,'b) map) (k:'a,v:'b) : ('a,'b) map =<br> fn x => if x=k then v else (m k)</pre>
</blockquote>
<p>Or, with curried syntax,</p>
<blockquote>
<pre><span class="keyword">fun</span> insert (m:('a,'b) map) (k:'a,v:'b) (x:'a) =<br> if x=k then v else (m k)</pre>
</blockquote>
<p>Of course, this implementation does not allow removal, so its uses
are
limited. However, if you can understand this code, you have a
good feel
for many key ideas in functional programming.<br>
</p>
<p><span style="font-weight: bold;">Technical subtlety: </span>If you
actually type in the above code for insert, ML will complain about a
type mismatch. This has to do with the way ML handles polymorphic
functions using the equality operator. The idea is that a polymorphic
function should work at all types, but equality is not defined at all
types; ML therefore requires us to use another kind of type variable,
which will range only over those types where equality is defined. Those
variables are written: <code>''a</code>. Therefore, if you want to
write code
which actually compiles, you should use the following:<br>
</p>
<blockquote>
<pre><span class="keyword">fun</span> insert (m:(''a,'b) map) (k:''a,v:'b) : (''a,'b) map =<br> fn x => if x=k then v else (m k)</pre>
</blockquote>
<p>Or, with curried syntax,</p>
<blockquote>
<pre><span class="keyword">fun</span> insert (m:(''a,'b) map) (k:''a,v:'b) (x:''a) =<br> if x=k then v else (m k)</pre>
</blockquote>
<p></p>
For more information on this, see section 2.9 (pp. 38-40) of Riccardo
Pucella's <a href="http://www.cs.cornell.edu/riccardo/smlnj.html">notes.</a><br>
<hr>
<h2>Implementing Binary Trees with Tuples</h2>
<p>In recitation, we saw an example of using a datatype to define
integer
lists in terms of an empty list (<em>Nil</em>) and cons cells (a head
containing
an integer and a tail consisting of another list). We were able to
iterate over
the list, doing various manipulations on the data, and we were able to
represent
this concisely using higher-order functions. Today we're going to start
by doing
the same thing with binary trees to make sure everyone is very
comfortable with
pattern matching in <span class="keyword">case</span> expressions.</p>
<p>The obvious way to start is with the following datatype, which we
saw at the
end of the last lecture:</p>
<blockquote>
<pre><span class="keyword">datatype</span> inttree = Leaf | Branch <span
class="keyword">of</span> (int * inttree * inttree)<br></pre>
</blockquote>
<p>This defines a type <code>inttree</code> to be either a leaf node
(containing
no data) or a branch node (containing an int and left and right
subtrees). We
could have defined a leaf note to contain an integer and no subtrees
(some
people do this), but then we'd need another constructor to represent
the empty
tree. Consider the representation of a generic tree.</p>
<p>The first logical function to write is <code>is_empty</code>:</p>
<blockquote>
<pre><span class="keyword">fun</span> is_empty (xs:inttree) : bool =<br> <span
class="keyword">case</span> xs <span class="keyword">of</span><br> Leaf => true<br> | _ => false<br> </pre>
</blockquote>
<p>Then, just as we computed the length of a list, we can count the
non-leaf
nodes in a tree:</p>
<blockquote>
<pre><span class="keyword">fun</span> size (xs:inttree) : int =<br> <span
class="keyword">case</span> xs <span class="keyword">of</span><br> Leaf => 0<br> | Branch(_, left, right) => 1 + size(left) + size(right)<br> </pre>
</blockquote>
<p>The pattern matching done in this function is very powerful. (If you
don't
see the power yet, you certainly will when the datatypes become as
complicated
as our definition of expressions in ML.) We can make very trivial
changes to
this function to compute several other interesting values:</p>
<ul>
<li>How could we modify this function to count the leaf nodes?</li>
<li>How could we modify this function to determine the depth of a
tree?</li>
<li>How could we modify this function to sum the elements in a tree?</li>
<li>How could we modify this function to reflect a tree about its
center?</li>
</ul>
<hr>
<h2>Implementing Binary Trees with Records</h2>
<p>For both lists and trees, we've been using tuples to represent the
nodes. But
with trees, there may be some confusion with respect to the order of
the fields:
does the datum come before or after the left subtree? We can solve this
problem
using a record type. We can define it as</p>
<blockquote>
<pre><span class="keyword">datatype</span> inttree = Leaf | Branch <span
class="keyword">of</span> { datum:int, left:inttree, right:inttree }<br></pre>
</blockquote>
<p>(Note: Binary trees are simple enough that this probably would not
be
adequate motivation to use records in a real program, since we now have
to
remember the field names and spell them out every time we use them.
Skipping to
the next section on polynomials is fine if running low on time.)</p>
<p>Using this new representation, we can write <em>size</em> as</p>
<blockquote>
<pre><span class="keyword">fun</span> size (xs:inttree) : int =<br> <span
class="keyword">case</span> xs <span class="keyword">of</span><br> Leaf => 0<br> | Branch{datum=i, left=lt, right=rt} => 1 + size(lt) + size(rt)<br> </pre>
</blockquote>
<p>We've written several functions to analyze trees, but we don't yet
have a way
to generate large trees easily, so if you want to try these functions
in your
compiler, you'd have a lot of typing to do to spell out a tree of depth
10.
Let's get the compiler to do it for us.</p>
<blockquote>
<pre><span class="keyword">fun</span> complete_tree (i:int, depth:int) : inttree =<br> <span
class="keyword">case</span> depth <span class="keyword">of</span><br> 0 => Leaf<br> | _ => Branch{datum=i,<br> left=complete_tree(2*i, depth-1),<br> right=complete_tree(2*i+1, depth-1)}<br> </pre>
</blockquote>
<p>This function will take an integer <i>i</i> and a depth and
recursively
create a complete tree of the given depth whose nodes are given
distinct indices
based on <i>i</i>. If we start with <i>i</i>=1, then we get a
complete tree
whose preorder node listing is 1, 2, 3, etc. Consider the example given
by</p>
<blockquote>
<pre><span class="keyword">val</span> test_tree = complete_tree(1,3)<br></pre>
</blockquote>
<p>Now that we have an example tree to work on, we need a cleaner way
to
visualize the tree than looking at the compiler's representation of
records.
Let's write a function to print the contents of a tree in order:</p>
<blockquote>
<pre><span class="keyword">fun</span> print_inorder (xs:inttree) : unit =<br> <span
class="keyword">case</span> xs <span class="keyword">of</span><br> Leaf => ()<br> | Branch{datum=i, left, right} => (print_inorder(left);<br> print(" " ^ Int.toString(i) ^ " ");<br> print_inorder(right))<br> </pre>
</blockquote>
<p>Notice that here we did not provide names for binding the left and
right
subtrees. Actually, the use of record labels only is just syntactic
sugar for
binding the same name to its value, so we could have written "<em>datum=i,
left=left, right=right</em>". Anyway, our function behaves as follows
on
our test tree:</p>
<blockquote>
<pre>- print_inorder(test_tree);<br> <i>4 2 5 1 6 3 7 <span
class="keyword">val</span> it = () : unit</i><br> </pre>
</blockquote>
<p>We could have applied many other functions to each element of the
tree. A
standard data structure operation is <em>apply</em>, which executes a
given
function on every element. The function is evaluated for side-effects
only; the
return value is ignored. How could we write <em>apply_inorder</em> for
our
trees?</p>
<blockquote>
<pre><span class="keyword">fun</span> apply_inorder (f:int->unit, xs:inttree) : unit =<br> <span
class="keyword">case</span> xs <span class="keyword">of</span><br> Leaf => ()<br> | Branch{datum, left, right} => (apply_inorder(f,left);<br> f(datum);<br> apply_inorder(f,right))<br> </pre>
</blockquote>
<p>Using this, we can write a very short version of <em>print_inorder</em>:</p>
<blockquote>
<pre><span class="keyword">fun</span> print_inorder (xs:inttree) : unit =<br> apply_inorder(<span
class="keyword">fn</span> (i:int) => print(" " ^ Int.toString(i) ^ " "), xs)<br></pre>
</blockquote>
<p>Another common operation is <em>map</em>, which generates a copy of
the data
structure in which a given function has been applied to every element.
We can
write <em>apply_inorder</em> as</p>
<blockquote>
<pre><span class="keyword">fun</span> map_tree (f:int->int, xs:inttree) : inttree =<br> <span
class="keyword">case</span> xs <span class="keyword">of</span><br> Leaf => Leaf<br> | Branch{datum=i, left, right} => Branch{datum=f(i),<br> left=map_tree(f,left),<br> right=map_tree(f,right)}<br> </pre>
</blockquote>
<p>How could we use this to square a tree?</p>
<blockquote>
<pre><span class="keyword">val</span> tripled_tree = map_tree(fn (i:int) => i*3, test_tree)<br></pre>
</blockquote>
[[Cornell CS312]] | [[Standard ML course - Recitation 6]]
<div class="column">
<h1>CS 312 Recitation 7<br>
Stacks and queues, exceptions</h1>
<h2>Some functional data structures</h2>
<p>In this recitation, we look at examples of structures and
signatures that implement data structures. We show that stacks
and queues can be implemented efficiently in a functional style.</p>
<p>What is a functional stack, or a functional queue? It is a data structure for
which the operations do not <i>change</i> the data structure, but rather create a new data structure, with the appropriate modifications, instead of changing it
in-place. In imperative languages, data operations generally support
<b>destructive update</b> — “destructive” in the sense that after
the update is done, the original data structure is gone. Functional
abstractions support <b>nondestructive updates</b>: the original
value is still around, unmodified, so code that was using it is unaffected.
For efficiency, it is important to implement nondestructive updates not
by creating an entirely new data structure, but by sharing as much as possible
with the original data structure.
</p>
<p>Recall a stack: a last-in first-out (LIFO) queue. Just like lists, the
stack operations fundamentally do not care about the type of the values stored,
so it is a naturally polymorphic data structure.
<p>Here is a possible signature for functional stacks:
<pre id = 'stack-sig'>
</pre>
<p>This signature specifies a parameterized abstract type for stack. Notice the
type variable 'a. The signature also specifies the empty stack value, and
functions to check if a stack is empty, and to perform push, pop and top
operations on the stack. Moreover, we specify functions map and app to walk over
the values of the stack.
<p>We also declare an exception EmptyStack to be raised by top and pop
operations when the stack is empty.
<p>Here is the simplest implementation of stacks that matches the above
signature. It is implemented in terms of lists.
<pre> <span class="keyword">structure</span> Stack :> STACK =
<span class="keyword">struct</span>
<span class="keyword">type</span> 'a stack = 'a list
<span class="keyword">exception</span> Empty
<span class="keyword">val</span> empty : 'a stack = []
<span class="keyword">fun</span> isEmpty (l:'a list): bool =
(<span class="keyword">case</span> l <span class="keyword">of</span>
[] => true
| _ => false)
<span class="keyword">fun</span> push (x:'a, l:'a stack):'a stack = x::l
<span class="keyword">fun </span>pop (l:'a stack):'a stack =
(<span class="keyword">case</span> l <span class="keyword">of</span>
[] => <span class="keyword">raise</span> Empty
| (x::xs) => xs)
<span class="keyword">fun</span> top (l:'a stack):'a =
(<span class="keyword">case</span> l <span class="keyword">of
</span> [] => <span class="keyword">raise</span> Empty
| (x::xs) => x)
<span class="keyword">fun</span> map (f:'a -> 'b) (l:'a stack):'b stack = List.map f l
<span class="keyword">fun</span> app (f:'a -> unit) (l:'a stack):unit = List.app f l
<span class="keyword">end</span></pre>
<p>Up until now, we have been defining exceptions solely in order to raise them
and interrupt the executing program. Just like in Java, it is also possible to
catch exceptions, which is termed 'handling an exception' in SML.
<p>As an example, consider the following example. In the above code, we have
implemented top and pop respectively as functions that return the first element
of the list and the rest of the list. SML already defines functions to do just
that, namely <code>hd</code> and <code>tl</code> (for head and tail). The
function hd takes a list as argument and returns the first element of the list,
or raises the exception <code>Empty</code> if the list is empty. Similarly for <code>tl</code>.
One would like to simply be able to write in <code>Stack</code>: <code>fun top (l:'a
stack):'a = hd (l) fun pop (l:'a stack):'a stack = tl (l)</code>
<p>However, if passed an empty stack, top and pop should raise the EmptyStack
exception. As written above, the exception List.Empty would be raised. What we
need to do is intercept (or handle) the exception, and raise the right one.
Here's one way to do it:
<pre><span class="keyword">fun</span> top (l:'a stack):'a =
hd (l) <span class="keyword">handle</span> List.Empty => <span class="keyword">raise</span> EmptyStack
<span class="keyword">fun</span> pop (l:'a stack):'a stack =
tl (l) <span class="keyword">handle</span> List.Empty => <span class="keyword">raise</span> EmptyStack</pre>
<p>The syntax for handling exceptions is as follows: <code><i>e</i> handle <i>exn</i>
=> <i>e'</i></code>
<p>where <i>e</i> is the expression to evaluate, and if <i>e</i> raises an
exception that matches <i>exn</i>, then expression <i>e' </i>is evaluated
instead. The type of e and <i>e'</i> must be the same.
<p>Let us write an example more interesting than stacks. After all, from the
above, one can see that they are just lists. Consider the queue data structure,
a first-in first-out data structure. Again, we consider functional queues. Here
is a possible signature:
<pre> <span class="keyword">signature</span> QUEUE =
<span class="keyword">sig</span>
<span class="keyword">type</span> 'a queue
<span class="keyword">exception</span> EmptyQueue
v<span class="keyword">a</span>l empty : 'a queue
<span class="keyword">val</span> isEmpty : 'a queue -> bool
<span class="keyword">val</span> enqueue : ('a * 'a queue) -> 'a queue
<span class="keyword">val</span> dequeue : 'a queue -> 'a queue
<span class="keyword">val</span> front : 'a queue -> 'a
<span class="keyword">
</span> <span class="keyword">val</span> map : ('a -> 'b) -> 'a queue -> 'b queue
<span class="keyword">val</span> app : ('a -> unit) -> 'a queue -> unit
<span class="keyword">end</span></pre>
<p>The simplest possible implementation for queues is to represent a queue via
two stacks: one stack A on which to enqueue elements, and one stack B from which
to dequeue elements. When dequeuing, if stack B is empty, then we reverse stack
A and consider it the new stack B. [[NOTE TO INSTRUCTOR: Use a picture or two to
explain this]]
<p>Here is an implementation for such queues. It uses the stack structure Stack,
which is rebound to the name S inside the structure to avoid long identifier
names. [[NOTE TO INSTRUCTOR: Focus on the aspects of the code that you find more
interesting.]]
<pre><span class="keyword">structure</span> Queue :> QUEUE =
<span class="keyword">struct</span>
<span class="keyword">structure</span> S = Stack
<span class="keyword">type</span> 'a queue = ('a S.stack * 'a S.stack)
<span class="keyword">exception</span> EmptyQueue
<span class="keyword">val</span> empty : 'a queue = (S.empty, S.empty)
<span class="keyword">fun</span> isEmpty ((s1,s2):'a queue) =
S.isEmpty (s1) <span class="keyword">andalso</span> S.isEmpty (s2)
<span class="keyword">fun</span> enqueue (x:'a, (s1,s2):'a queue) : 'a queue =
(S.push (x,s1), s2)
<span class="keyword">fun</span> rev (s:'a S.stack):'a S.stack = <span class="keyword">let</span>
<span class="keyword">fun</span> loop (old:'a S.stack, new:'a S.stack):'a S.stack =
<span class="keyword">if</span> (S.isEmpty (old))
<span class="keyword">then</span> new
<span class="keyword">else</span> loop (S.pop (old), S.push (S.top (old),new))
<span class="keyword">in
</span> loop (s,S.empty)
<span class="keyword">end</span>
<span class="keyword">fun</span> dequeue ((s1,s2):'a queue) : 'a queue =
<span class="keyword">if</span> (S.isEmpty (s2))
<span class="keyword">then</span> (S.empty, S.pop (rev (s1)))
<span class="keyword">handle</span> S.EmptyStack => <span class="keyword">raise</span> EmptyQueue
<span class="keyword">else</span> (s1,S.pop (s2))
<span class="keyword">fun</span> front ((s1,s2):'a queue):'a =
<span class="keyword">if</span> (S.isEmpty (s2))
<span class="keyword">then</span> S.top (rev (s1))
<span class="keyword">handle</span> S.EmptyStack => <span class="keyword">raise</span> EmptyQueue
<span class="keyword">else</span> S.top (s2)
<span class="keyword">fun</span> map (f:'a -> 'b) ((s1,s2):'a queue):'b queue =
(S.map f s1, S.map f s2)
<span class="keyword">fun</span> app (f:'a -> unit) ((s1,s2):'a queue):unit =
(S.app f s2;
S.app f (rev (s1)))
<span class="keyword">end</span></pre>
<h2>Folding</h2>
<p>Over the past few weeks, we have seen many examples of data structures such
as lists, dictionaries, stacks and queues which keep an arbitrary number of
values in some kind of order. For all of those structures, we have (or can)
define functions 'map' and 'app' to walk over the structures. For example, we
have seen the functions:</p>
<blockquote>
<pre>List.map : ('a -> 'b) -> 'a list -> 'b list
Stack.map : ('a -> 'b) -> 'a stack -> 'b stack
Queue.map : ('a -> 'b) -> 'a queue -> 'b queue</pre>
</blockquote>
<p>These functions all apply a function (called a transformation function) of
type 'a -> 'b over the list/stack/queue elements. For lists, for example, <tt>map
f [x1,...,xn]</tt> produces a list <tt>[f (x1), ..., f (xn)]</tt>. The class of
functions 'app' apply a function of type 'a -> unit for its side effects to
all the elements of the data structure, in some specific order.</p>
<p>It turns out that such data structures often support a much more general
operation called ``folding'', from which many higher-order functions can be
derived automatically, including map and app, but also functions such as filter.</p>
<p>Folding is actually supported through a pair of operations, <tt>foldl</tt>
and <tt>foldr</tt> (which stand for fold-left and fold-right). They all have
type:</p>
<blockquote>
<pre>(('a * 'b) -> 'b) -> 'b -> 'a list -> 'b (for lists)
(('a * 'b) -> 'b) -> 'b -> 'a stack -> 'b (for stacks)
(('a * 'b) -> 'b) -> 'b -> 'a queue -> 'b (for queues)</pre>
</blockquote>
<p>We only discuss folding for lists in this recitation, but it should be clear
that whatever we say for lists can be said for stacks, queues, or any other
structure which supports folding.</p>
<p>Intuitively, folding applies a given operation to the elements of a list.
Given a function f of type ('a * 'b) -> 'b, the expression</p>
<blockquote>
<pre>foldr f b [x1,x2,...,xn]</pre>
</blockquote>
<p>evaluates to</p>
<blockquote>
<pre>f (x1,f (x2,f (...,f(xn,b))))</pre>
</blockquote>
<p>and</p>
<blockquote>
<p>foldl f b [x1,x2,...,xn]</p>
</blockquote>
<p>evaluates to</p>
<blockquote>
<pre>f (xn,f (..., f (x2,f (x1,b))))</pre>
</blockquote>
<p>Here are the implementations: [NOTE TO INSTRUCTOR: it may be worthwhile to
point out the differences between foldl and foldr in the code, as it relates to
the above]]</p>
<blockquote>
<pre>fun foldl (f: ('a * 'b) -> 'b) (base : 'b) (l: 'a list) : 'b =
case l of
[] => b
| x::xs => foldl f (f (x,base)) xs
fun foldr (f: ('a * 'b) -> 'b) (base : 'b) (l: 'a list): 'b =
case l of
[] => b
| x::xs => f (x,foldr f base xs)</pre>
</blockquote>
<p>A lot of natural operations on lists can be implemented using folding. For
example, getting the length of a list can be written as</p>
<blockquote>
<pre>fun length (l:'a list):int =
foldl (fn (x:'a,len:int) => 1+len) 0 l</pre>
</blockquote>
<p>Similarly, computing the sum of a list of integers can be written</p>
<blockquote>
<pre>fun sum (l:int list):int =
foldl (fn (x:int,sum:int) => x+sum) 0 l</pre>
</blockquote>
<p>Actually, in the above, both a foldl and a foldr can be used, since the
operation + is commutative (!). We can implement map using folding (notice the
foldr!):</p>
<blockquote>
<pre>fun map (f:'a -> 'b) (l:'a list) :'b list =
foldr (fn (x:'a,r:'b list) => f (x)::r) [] l</pre>
</blockquote>
<p>and app as well:</p>
<blockquote>
<pre>fun app (f:'a -> unit) (l:'a list): unit =
foldl (fn (x:'a,_:unit) => f (x)) () l</pre>
</blockquote>
<p>Filtering a list, that is keeping all the elements of a list for which a
given predicate function returns true, can also be easily<br>
implemented:</p>
<blockquote>
<pre>fun filter (p:'a -> bool) (l:'a list):'a list =
foldr (fn (x:'a,r:'a list) => if p (x) then x::r else r) [] l</pre>
</blockquote>
<p>Even reversing a list can be implemented using a simple fold:</p>
<blockquote>
<pre>fun rev (l:'a list):'a list =
foldl (fn (x:'a,xs:'a list) => x::xs) [] l</pre>
</blockquote>
<p>(which can be simply written as 'foldl (op ::) [] l' )</p>
<p>Folding can be used to derive most higher-order functions that are often
used. For many data structures, it is sufficient to provide folding functions
over the structure to be able to derive functions such as map, app, filter, and
others. In a precise sense, folding functions act as ``iterators'' over the
elements of the data structure.</p>
<p>In a world where one programs with higher-order functions and folding,
curried functions become more and more important. Consider the function Int.fmt,
of type StringCvt.radix -> int -> string, which converts an integer to a
string in the given radix representation (decimal, octal, binary, hexadecimal).
Suppose we have a non-curried version of the function:</p>
<blockquote>
<pre>fun fmtNC (r:StringCvt.radix,i:int):string = Int.fmt r i</pre>
</blockquote>
<p>Suppose we wanted to convert a list L of integers to binary with such a
function. Then we would use a map function as follows:</p>
<blockquote>
<pre>map (fn (x:int) => fmtNC (StringCvt.BIN,x)) L</pre>
</blockquote>
<p>whereas using the curried form, we get the more satisfying:</p>
<blockquote>
<pre>map (Int.fmt StringCvt.BIN) L</pre>
</blockquote>
<p>Notice how we do not have to define a new anonymous function in the second
example, as it is automatically created by the currying process. As another
example, consider the function String.isPrefix, of type string -> string
-> bool. The call String.isPrefix s1 s2 returns true if s1 is a prefix of s2,
and false otherwise. For the sake of arguments, suppose we have a non-curried
version:</p>
<blockquote>
<pre>fun isPrefixNC (s1:string,s2:string):bool = String.isPrefix s1 s2</pre>
</blockquote>
<p>Suppose we have a list L of URLs from which we want to keep only the ftp
sites (starting with ftp://), using the filter function above. If we want to use
the non-curried function, we have to write:</p>
<blockquote>
<pre>filter (fn (x:string) => isPrefixNC ("ftp://",x)) L</pre>
</blockquote>
<p>whereas with the curried function, the form is much simpler:</p>
<blockquote>
<pre>filter (String.isPrefix "ftp://") L</pre>
</blockquote>
<p>In summary, using curried functions with higher-order functions often saves
us from having to introduce spurious 'fn' to construct functions that simply
perform bookkeeping on the arguments.</p>
<script type="text/javascript">
fetch_code('stack-sig', 'src/stack-sig.sml');
colorize_all();
</script>
</div>
[[Cornell CS312]] | [[Standard ML course - Recitation 7]]
<h1>CS 312 Recitation 8<br />
ADT Examples: Stacks Queues, and Dictionaries</h1>
<p>In this recitation, we will see more examples of structures and
signatures that implement functional data structures.</p>
<h2>Stacks and Queues</h2>
<p>In <a href="rec07.html">recitation 7</a>, we discussed stacks and queues. We repeat the
signature for stacks
here, adding a notation for representing the abstract contents.
</p>
<pre>
signature STACK =
sig
(* Overview: an 'a stack is a stack of elements of type 'a.
* We write |e1, e2, ... en| to denote the stack with e1
* on the top and en on the bottom. *)
type 'a stack
exception EmptyStack
val empty : 'a stack
val isEmpty : 'a stack -> bool
val push : ('a * 'a stack) -> 'a stack
val pop : 'a stack -> 'a stack
val top : 'a stack -> 'a
val map : ('a -> 'b) -> 'a stack -> 'b stack
val app : ('a -> unit) -> 'a stack -> unit
(* note: app traverses from top of stack down *)
end
</pre>
<p>Now we present a signature for queues; first-in, first-out data structures.
Again, we introduce a notation for discussing the abstract contents of the
queue.</p>
<pre>signature QUEUE =
sig
(* Overview: an 'a queue is a FIFO queue of elements of type 'a.
* We write <e1, e2, ... en> to denote the queue whose front
* is e1 and whose back is en. Elements are enqueued at the back
* and dequeued from the front. *)
type 'a queue
exception EmptyQueue
val empty : 'a queue
val isEmpty : 'a queue -> bool
(* enqueue(x, q) is q with x enqueued at the back.
* Example: enqueue(3, <1,2>) = <1,2,3> *)
val enqueue : ('a * 'a queue) -> 'a queue
(* dequeue(q) is q with its front element removed.
* Requires: q is nonempty. *).
val dequeue : 'a queue -> 'a queue
(* front(q) is the element at the front. Requires: q is nonempty. *)
val front : 'a queue -> 'a
val map : ('a -> 'b) -> 'a queue -> 'b queue
val app : ('a -> unit) -> 'a queue -> unit
end
</pre>
<p>The simplest possible implementation for queues is to represent a queue via
two stacks: one stack A on which to enqueue elements, and one stack B from which
to dequeue elements. When dequeuing, if stack B is empty, then we reverse stack
A and consider it the new stack B.</p>
<p>Here is an implementation for such queues. It uses the stack structure Stack,
which is rebound to the name S inside the structure to avoid long identifier
names.</p>
<pre>structure Queue :> QUEUE =
struct
structure S = Stack
type 'a queue = ('a S.stack * 'a S.stack)
(* AF: The pair (|e1, e2, ... en|, |e'1, e'2, ..., e'n|) represents
* the queue <e'1, e'2, ..., e'n, en, ..., e2, e1>.
*)
exception EmptyQueue
val empty : 'a queue = (S.empty, S.empty)
fun isEmpty ((s1,s2):'a queue) =
S.isEmpty (s1) andalso S.isEmpty (s2)
fun enqueue (x:'a, (s1,s2):'a queue) : 'a queue =
(S.push (x,s1), s2)
fun rev (s:'a S.stack):'a S.stack = let
fun loop (old:'a S.stack, new:'a S.stack):'a S.stack =
if (S.isEmpty (old))
then new
else loop (S.pop (old), S.push (S.top (old),new))
in
loop (s,S.empty)
end
fun dequeue ((s1,s2):'a queue) : 'a queue =
if (S.isEmpty (s2))
then (S.empty, S.pop (rev (s1)))
handle S.EmptyStack => raise EmptyQueue
else (s1,S.pop (s2))
fun front ((s1,s2):'a queue):'a =
if (S.isEmpty (s2))
then S.top (rev (s1))
handle S.EmptyStack => raise EmptyQueue
else S.top (s2)
fun map (f:'a -> 'b) ((s1,s2):'a queue):'b queue =
(S.map f s1, S.map f s2)
fun app (f:'a -> unit) ((s1,s2):'a queue):unit =
(S.app f s2;
S.app f (rev (s1)))
end
</pre>
<h2>Fractions</h2>
<p>Another simple data type is a fraction, a ratio of two integers.
Here is a possible signature.</p>
<pre>
signature FRACTION =
sig
(* A fraction is a rational number *)
type fraction
(* first argument is numerator, second is denominator *)
val make : int -> int -> fraction
val numerator : fraction -> int
val denominator : fraction -> int
val toString : fraction -> string
val toReal : fraction -> real
val add : fraction -> fraction -> fraction
val mul : fraction -> fraction -> fraction
end
</pre>
<p>Here's one implementation of fractions -- what can go wrong here?</p>
<pre>structure Fraction1 :> FRACTION =
struct
type fraction = { num:int, denom:int }
(* AF: The record {num, denom} represents fraction (num/denom) *)
fun make (n:int) (d:int) = {num=n, denom=d}
fun numerator(x:fraction):int = #num x
fun denominator(x:fraction):int = #denom x
fun toString(x:fraction):string =
(Int.toString (numerator x)) ^ "/" ^
(Int.toString (denominator x))
fun toReal(x:fraction):real =
(Real.fromInt (numerator x)) / (Real.fromInt (denominator x))
fun mul (x:fraction) (y:fraction) : fraction =
make ((numerator x)*(numerator y))
((denominator x)*(denominator y))
fun add (x:fraction) (y:fraction) : fraction =
make ((numerator x)*(denominator y) +
(numerator y)*(denominator x))
((denominator x)*(denominator y))
end
</pre>
<p>There are several problems with this implementation.
First, we could give 0 as the denominator -- this is a bad fraction.
Second, we're not reducing to smallest form. So we could overflow
faster than we need to.
Third, we're not consistent with the signs of the numbers. Try
<code>make ~1 ~1</code>.</p>
<p>We need to pick some representation invariant
that describes how we're going to represent legal fractions.
Here is one choice that tries to fix the bugs above.</p>
<pre>structure Fraction2 :> FRACTION =
struct
type fraction = { num:int, denom:int }
(* AF: represents the fraction num/denom
* RI:
* (1) denom is always positive
* (2) always in most reduced form
*)
fun gcd (x:int) (y:int) : int =
(* Algorithm due to Euclid: for positive numbers x and y,
* find the greatest-common-divisor. *)
if (x = y) then x
else if (x < y) then gcd x (y - x)
else gcd (x - y) y
exception BadDenominator
fun make (n:int) (d:int) : fraction =
if (d < 0) then raise BadDenominator
else let val g = gcd (abs n) (abs d)
val n2 = n div g
val d2 = d div g
in
if (d2 < 0) then {num = ~n2, denom = ~d2}
else {num = n2, denom = d2}
end
fun numerator(x:fraction):int = #num x
fun denominator(x:fraction):int = #denom x
fun toString(x:fraction):string =
(Int.toString (numerator x)) ^ "/" ^
(Int.toString (denominator x))
fun toReal(x:fraction):real =
(Real.fromInt (numerator x)) / (Real.fromInt (denominator x))
(* notice that we didn't have to re-code mul or add --
* they automatically get reduced because we called
* make instead of building the data structure directly.
*)
fun mul (x:fraction) (y:fraction) : fraction =
make ((numerator x)*(numerator y))
((denominator x)*(denominator y))
fun add (x:fraction) (y:fraction) : fraction =
make ((numerator x)*(denominator y) +
(numerator y)*(denominator x))
((denominator x)*(denominator y))
end
</pre>
<h2>Dictionaries</h2>
<p>A very useful type in programming is the <b>dictionary</b>. A
dictionary is a mapping from strings to other values. A more general
dictionary that maps from one arbitrary key type to another is usually
called a <b>map</b> or an <b>associative array</b>, although sometimes
“dictionary” is used for these as well. In any case,
the implementation techniques are the same. Here's a signature for dictionaries:
</p>
<pre>signature DICTIONARY =
sig
(* An 'a dict is a mapping from strings to 'a.
We write {k1=>v1, k2=>v2, ...} for the dictionary which
maps k1 to v1, k2 to v2, and so forth. *)
type key = string
type 'a dict
(* make an empty dictionary carrying 'a values *)
val make : unit -> 'a dict
(* insert a key and value into the dictionary *)
val insert : 'a dict -> key -> 'a -> 'a dict
(* Return the value that a key maps to in the dictionary.
* Raise NotFound if there is not mapping for the key. *)
val lookup : 'a dict -> key -> 'a
exception NotFound
end
</pre>
<p>Here's an implementation discussed in <a href="rec06.html">recitation 6</a>.</p>
<pre>structure FunctionDict :> DICTIONARY =
struct
type key = string
type 'a dict = string -> 'a
(* The function f represents the mapping in which x is mapped to
* f(x), except for x such that f raises NotFound, which are not
* in the mapping.
*)
exception NotFound
fun make () = fn _ => raise NotFound
fun lookup (d: 'a dict) (key: string) : 'a = d key
fun insert (d:'a dict) (k:key) (x:'a) : 'a dict =
fn k' => if k=k' then x else d k'
</pre>
<p>Here is another implementation: an association list
<code>[(key1,x1),...,(keyn,xn)]</code></p>
<pre>structure AssocList :> DICTIONARY =
struct
type key = string
type 'a dict = (key * 'a) list
(* AF: The list [(k1,v1), (k2,v2), ...] represents the dictionary
* {k1 => v1, k2 => v2, ...}, except that if a key occurs
* multiple times in the list, only the earliest one matters.
* RI: true.
*)
fun make():'a dict = []
fun insert (d:'a dict) (k:key) (x:'a) : 'a dict = (k,x)::d
exception NotFound
fun lookup (d:'a dict) (k:key) : 'a =
case d of
[] => raise NotFound
| ((k',x)::rest) =>
if (k = k') then x
else lookup rest k
end</pre>
<p>This next implementation seems a little better for looking up values. Also note
that the abstraction function does not need to specify what duplicate keys
mean.</p>
<pre>structure SortedAssocList :> DICTIONARY =
struct
type key = string
type 'a dict = (key * 'a) list
(* AF: The list [(k1,v1), (k2,v2), ...] represents the dictionary
* {k1 => v1, k2 => v2, ...}
* RI: The list is sorted by key and each key occurs only once
* in the list. *)
fun make():'a dict = []
fun insert (d:'a dict) (k:key) (x:'a) : 'a dict =
case d of
[] => (k,x)::nil
| (k',x')::rest =>
(case String.compare(k,k') of
GREATER => (k',x')::(insert rest k x)
| EQUAL => (k,x)::rest
| LESS => (k,x)::(k',x')::rest)
exception NotFound
fun lookup (d:'a dict) (k:key) : 'a =
case d of
[] => raise NotFound
| ((k',x)::rest) =>
(case String.compare(k,k') of
EQUAL => x
| LESS => raise NotFound
| GREATER => lookup rest k)
end
</pre>
<p>Here is another implementation of dictionaries.
This one uses a binary tree to keep the data -- the hope is
that inserts or lookups will be proportional to log(n) where
n is the number of items in the tree.</p>
<pre>
structure AssocTree :> DICTIONARY =
struct
type key = string
datatype 'a dict = Empty | Node of {key: key,datum: 'a,
left: 'a dict,right: 'a dict}
(* AF: Empty represents the empty mapping {}
* Node {key, datum, left, right} represents the union of the
* mappings {key => datum}, AF(left), and AF(right).
* RI: for Nodes, data to the left have keys that
* are LESS than the datum and the keys of
* the data to the right. *)
fun make():'a dict = Empty
fun insert (d:'a dict) (k:key) (x:'a) : 'a dict =
case d of
Empty => Node{key=k, datum=x, left=Empty, right=Empty}
| Node {key=k', datum=x', left=l, right=r} =>
(case String.compare(k,k') of
EQUAL =>
Node{key=k, datum=x, left=l, right=r}
| LESS =>
Node{key=k',datum=x',left=insert l k x,
right=r}
| RIGHT =>
Node{key=k',datum=x',left=l,
right=insert r k x})
exception NotFound
fun lookup (d:'a dict) (k:key) : 'a =
case d of
Empty => raise NotFound
| Node{key=k',datum=x, left=l, right=r} =>
(case String.compare(k,k') of
EQUAL => x
| LESS => lookup l k
| RIGHT => lookup r k)
end
</pre>
[[CRM]]
Tweaks & hacks for [[TiddlyWiki]]
[[http://tw5magick.tiddlyspot.com/]]
[[Deep Reading Process]]
A belief or fact made by combining multiple [[Claim]]s and other [[Synthesis]]es. Has a [[Credence]] level indicating how strongly I believe the synthesis.
[[Services]] | [[Ebooks]]
[ext[SyriacTypikon.pdf|eBooks/SyriacTypikon.pdf]]
<<tabs "[search:text,casesensitive[CRM]!prefix[$]!title[tab crm]sort[]]" "" "$:/state/tab1" "tc-vertical">>
<$list filter="[!has[draft.of]tag[task]!tag[done]sort[created]]">
<$checkbox tag="done">
<$link to={{!!title}}>
<$view field="title"/>
</$link>
</$checkbox>
<br>
</$list>
<<tabs "[tag[Technology]]" "[tag[Technology]first[]]" "$:/state/tab" "tc-vertical">>
[[Coding]]
http://derelict.blinkenshell.org/terminalcms
[[Thoughts]]
“We decree that from now on the image of the Lord Sabaoth will no longer be painted according to senseless and unsuitable imaginings, for no one has ever seen the Lord Sabaoth (that is, God the Father) in the flesh. Only Christ was seen in the flesh, and in this way He is portrayed, that is, in the flesh and not according to His divinity. Likewise, the most Holy Mother of God and other Saints of God…
To paint on icons the Lord Sabaoth (that is, the Father) with a white beard holding the Only-Begotten Son in His lap with a dove between them is altogether absurd and improper, for no one has ever seen the Father in His Divinity.”
+Great Council of Moscow 1666-1667
“Not that any man hath seen the Father, save he which is of God, he hath seen the Father.”
+John 6:46
“But furthermore, who can make a similitude of the invisible, incorporeal, uncircumscribed and undepictable God? It is, then, uttermost insanity and impiety to give a form to the Godhead.”
+Saint John of Damascus
“Forasmuch then as we are the offspring of God, we ought not to think that the Godhead is like unto gold, or silver, or stone, graven by art and man's device.”
+Acts 17:29
[[WIP]] | [[Publishing]]
**THE HOLY SPIRIT: CONTENTS – SUBTITLES (As of July 11, 2019)**
**1. INTRODUCTION 2**
**2. ANCIENT GREEK – p.3**
**3 OLD TESTAMENT 4 .**
**4. NEW TESTAMENT 10**
**5. MATTHEW 13 AND MARK 15 6. LUKE- 29 FULLNESS 31 6. ACTS 32 (MISSING 50cost 39)**
**7. JOHN AND THE SAM. WOMAN 20 7 ARCH ANELS 68 & 71?**
**8. ST. PAUL 40 9. APOCALYPSE 45 The 7 SPIRITS 55 & 61**
**THE SPIRIT OF JESUS 72**
**9. ST. JAMES 94 NAMES OF THE HOLY SPIRIT 100 & 66?**
**10. SIN AGAISNT THE HOLY SPIRIT 103**
**11. GIFTS OF HE HOLY SPIRIT 107 ** THE FEAR OF GOD 1162-130**
**13. EARLY TRADITION A.132, B.150, C. 172 Palamas**
**ST. BASIL 136 & 172? Greg. Theol. 155 John Chrys. 152**
**14. FILIOQUE 160 PHOTIOS 166 MDRN THEOL. 174**
**15. PRAYERS TO THE HS 181**
**16. PENTECOST 200 17. SAT. OF SOULS 206 -214 + 18. ISLAM 220**
**HINDUISM 226 SEL. BIBLIOGRAPHY 228 QUESTIONS 230**
1. INTRODUCTION
# The Holy Spirit is mentioned more than and 100 times in the NEW TESTAMENT and numerous times in Old Testament.
The Holy Spirit is the third Person of the [Trinity](https://www.encyclopedia.com/history/modern-europe/treaties-and-alliances/triple-alliance#1O142TripleAlliance) in Christian theology. The Holy Spirit represents the spiritual agent through whom [God](https://www.encyclopedia.com/philosophy-and-religion/other-religious-beliefs-and-general-terms/religion-general/god)'s grace is given. The [New Testament](https://www.encyclopedia.com/philosophy-and-religion/bible/new-testament/new-testament#1O142NewTestament) contains many references to the Holy Spirit, firstly as the agent by whom Mary conceived [Jesus Christ](https://www.encyclopedia.com/people/philosophy-and-religion/early-christianity-biographies/jesus-persons-bible#1O142JesusChrist) and later as the divine power imparted to the church. He is equal and co-substantial with the Father and the He is truly God, to be worshipped and adored as the other two persons of the Holy Trinity. The Greek Orthodox view of the Holy Spirit will be explained in detail later on in this work.
by the Spirit’s impulse.’
ANCIENT GREEKS
Original elements from Greek Philosophy used in the creation of the world or basic elements are to be found in the idiomata of the Holy Spirit Sacrament of Baptism etc.
Warer (Hydor), aer (wind), fire (pyr) etc
THE Ancient Greeks used many meanings because their language was very rich and could explain it fully with all its nuances. It had a great backgoroud in Greek Law and greek theater. The parakletos was the prisoner’s friend, who defeneds and protects his character in court or in oanany other urgent need. We are often speechless. The Holy Spirit will speak up for us. The Geek heroes often foound themselves ingreat dangers. Those where the times when the Parakletos came to their rescue, to empower, encourage enthuse, to extort them to higher thoughts and greater ande nobler deeds of honor, philotimo, glory, valiant, galantry, chivelry. heroism, viger and godlike deeds. They surpassed themselves, whether they were Odysseus, Achilles, Theseus, Prometheus, etc.
In the Greek translation of the Hebrew original now lost, called Septuagint, which is superior to the so called Aramaic **I think you mean Masoretic?** text formulated 1000 years after Jesus
OLD TESTAMENT
The Spirit of God hovered over the water. – start with Genesis. Why is it important that the Spirit is mentioned at creation? What do we say in the Creed? It shows the divinity of the Spirit and the fact that all three members of the Trinity were involved in the creation of the world and the salvation of humanity.
The term Holy Spirit occurs in only two historically late texts in the Isa. 63:10.11; Ps. 51:13, but much can nonetheless be deduced about the term. God's spirit (ruah Yahweh ) is the "wind," the breath of life, which proceeds from and will return to Yahweh. It determines life spans (Gen. 6:3; Ps. 104:29–30; Job 33:4) and tames natural forces (Ex. 15:8). Psalm 33:6 ("by the word of the Lord the heavens were made, and all their host by the breath of his mouth"), uses it synonymously with word (dabar ), which Genesis uses to explain how God created the world.
God's spirit is not just a life-giving power. Job 32:8 includes the assertion, "But truly it is the spirit [ruah ] in a mortal, the breath [neshamah ] of the Almighty, that makes for understanding." God's spirit leads to wisdom and imparts exceptional qualities. To tackle a threatening famine, for instance, Pharaoh looked for someone "in whom is the spirit of God" (Gen. 41:38). The spirit of God can also endow "ability, intelligence, and knowledge in every kind of craft" (Ex. 31:3). Only the spirit of God leads to right living and fulfillment of the will of God (Ps. 51:10–10). **Put it in plain words.**
In the OLD TESTAMENT the Holy Spirit is identified as the Helper of the builders of the Tabernacle with perfect skills, In (Ex.31:3 He appears to be one of the agents of creation (Gen. 1:2), Giver of life (Ps. 33:6) and the inspiration of the Prophets with wisdom and understanding (Mica 3:8). Finally the HS is associated with the Prophesy of the Messiah. David praises his relationship with the Spirit in Ps.51:10.11 “Renew a steadfast spirit within me.”
The Jews, since they did not have the exact word they just wrote the greek words with Hebrew consonants. They used it quite freely, but they emphasized that a mediator was necessary of a special angelic agency to help and defend them in times of need
THE ROLE OF THE HOLY SPIRIT IN THE OLD TESTAMENT
According to Christians the first appearance of the Holy Spirit in the Old Testament was in a creating role: "The earth was without form and void, and darkness was over the face of the deep. And the Spirit of God was hovering over the face of the waters" (Genesis 1:2). This also included the creation of humans: "The Spirit of God has made me, and the breath of the Almighty gives me life" (Job 33:4).
Even though the Holy Spirit in the Old Testament was somewhat hidden He was uniquely involved in the lives of men and women, as He "contended" with evil men (Genesis 6:3). Nehemiah 9:20 reveals the Spirit's Old Testament role in teaching: "You gave your good Spirit to instruct them" (see also verse 30). The Holy Spirit also teaches in Job 32:8 and Psalm 143:10.
Jesus clarifies that the Holy Spirit is of a different entity, even though at times He in the Old Testament, the Holy Spirit was a manifestation of God's presence. When David confessed his sin, he pleaded with God: "Cast me not away from your presence, and take not your Holy Spirit from me" (Psalm 51:11). Other passages also highlight this role (Psalm 139:7; Haggai 2:4-5).
He also empowered individuals in the Old Testament in order to accomplish a divine plan. Samson's mighty deeds were performed when "the Spirit of the Lord came upon him mightily" (Judges 14:6 NASB; see also 15:4). Other examples abound, including the Spirit's work in Joseph (Genesis 31:8), Moses and the 70 elders of Israel (Numbers 11:17), Gideon (Judges 6:34), David (1 Chronicles 28:12), and many others. When the task was accomplished, the Holy Spirit would leave the person. This is in contrast to the Holy Spirit's current role of indwelling believers and abiding with them "forever" (John 14:16).
His relationship to the Messiah. Isaiah 42:1 is to be found in His role in prophesies, suchas, "Behold my servant, whom I uphold, my chosen, in whom my soul delights; I have put my Spirit upon him; he will bring forth justice to the nations." Long before the coming of Jesus Christ, the prophets spoke of the Messiah as One who would have the Spirit upon Him. When Jesus was baptized in the Jordan River, "the Holy Spirit descended on him in bodily form, like a dove," clearly revealing Jesus as the Messiah (Luke 3:22).
The Holy Spirit may function in different roles at different times, yet, as the third Person of the Trinity, His nature is always the same. The same Spirit involved in the creation of the universe lives within those who follow Christ today. Christians enjoy the daily benefit of a personal relationship with God through the presence of the Holy Spirit. The Spirit who strengthened Samson and caused David to dance now empowers us and fills us with joy. "'Not by might nor by power, but by My Spirit,' says the LORD of hosts" (Zechariah 4:6).
CONCLUSION
Non-Christians cannot find the Holy Spirit in the Old Testament, simply because they do not believe in Him or the Holy Trinity. Also, they cannot find Christ or the Virgin Mary; not even as types (types). We should never forget that the Bible consists of 76 books and parts or individual verses of it could support many ideologies or heresies. Jesus made it clear that the Holy Spirit after His Ascension o heaven would have clarified the truth. The Fathers of the Church in their wisdom and holiness see the Holy Spirit everywhere. Just think of the scientists who search the universe for answers, without confessing that they know so lilted. We must also realize that most of the truths we know about the past, present and future come from revelation rather than science which changes every few years. Idol’s not surprising that most PHD desecrations must find something new to write about, otherwise they have nothing to contribute. Faith cannot be changing every few years, otherwise it loses its authenticity and value
**THE NEW TESTAMENT**
The **New Testament** retains the Old Testament notion that the spirit of God can perform unusual deeds and is an eschatological sign (Matt. 12:28). Similar to the creation of the world, God now generates a new creation through the spirit (pneuma : Matt 1:18; Luke 1:35). While Matthew and Mark seldom mentioned the Holy Spirit, Luke believed that the presence of the spirit characterizes the time of the church. At Pentecost the Holy Spirit filled the disciples (Acts 2:4), and all who are baptized receive the Holy Spirit.
Through the identification of God with the spirit, the latter assumes a cosmological function for John: "God is spirit, and those who worship him must worship in spirit and truth" ( John 4:24). The spirit is also the life empowering factor: "It is the spirit that gives life, the flesh is useless. The words that I have spoken to you are spirit and life" ( John 6:63). Paul, too, identified Jesus Christ with the spirit and wrote: "Now the Lord is the Spirit, and where the Spirit of the Lord is, there is freedom" (2 Cor. 3:17). Unlike Gnosticism, the spiritual and the physical are not opposites but are unified because of Christ's resurrection (1 Cor. 15:44).
The Church Fathers saw a unity between the logos (word) that became flesh, the pneuma (spirit), and the sophia (wisdom) of God. The Council of Constantinople (381 c.e.) clarified the function of the Holy Spirit. It asserted that Jesus Christ "was incarnate by the Holy Spirit and the Virgin Mary" and referred to the Holy Spirit as "the Lord and life-giver, Who proceeds from the Father, Who is worshiped and glorified together with the Father and the Son, Who has spoke through the prophets" (Leith, p.33). While the spirit is still seen as the life-giver, the main accent is on soteriology, an emphasis that intensified in the Reformation. From that time until the twentieth century, little reflection has been given to the spirit's activity in the world. **Put this in words in basic language that people can understand.**
Protestant preachers say, John Macarthur, insist that the Charismatic movement has actually stolen the HS, kidnapped etc. and created a Golden Calf and they are dancing around it, they exploited the HS and people are not allowed to criticize them. So now we have millions of little people who think them much above the Pope, Patriarchs and bishops and priests.
The Holy Spirit is the most forgotten, despised, disrespected, bypassed, omitted, dishonored, abused, misunderstood, and denatured. We often treat Him with disregard, disrespect, indifference, laxity, carelessness, despise, and ignorance,
But He regenerates the faithful and especially the sinners. So let us not downgrade, and downplay, overlook and never lose sight of Him, after all He played a very important role in the conception, baptism and many moments in the life of Christ.
The Holy Spirit has to live within you, to regenerates. He closes and opens doors. He magnifies ad exhorts Jesus. He will not talk of Himself.
Not to be drank with wine but the Holy Spirit. One of the commandments is “Fill yourself with the Holy Spirit”.
He is equal to the Father and the Son and has all the properties and titles of God. It is the most hopeful entity in the world and beyond it. Yet unfortunately Christians in general do not give the HS the honor and worth that He deserves. We should refer to the Holy Spirit as HE because he is a person not a thing or the make it easier let’s refer to Him as the Paraklete, Comforter, the Heavenly King of Heavens. There were times in the past where some Christians fought Him and said that the Spirit is not God. THE PERSON we refer to as the Holy Spirit is fully God, has personality, and knows the full depth of the Father and Son. It gives us many gifts and charismas, teaches, anoints guides and lead commands and has fellowship of the spirit. He is absolutely God, also Creator.
Many names of the Holy Spirit appear in the Bible and Tradition. Some refer to the essence, some to the various aspects and activities. We believe that The Bible is divinely inspired. The most common phrase that appears is “God-breathed,” by the Holy Spirit, the third Person of the Trinity. The Spirit moved the authors of all 76 books to record exactly what He breathed into their hearts and minds. As one author put it “As a ship is moved through the water by wind in its sails, so the biblical writers were borne along
**THE Holy Spirit in the GOSPELS**
He is symbolized by a dove, because it represents hope, peace, purity love, humility.
*MATTHEW The Spirit empowered Jesus for His ministry (1:18), and will reveal, explain and testify about Jesus (15:26f)
Let us follow the story at a glance through the book of Matthew, stopping to look at only one or two verses at a time.
CONCEPTION; 1:18
Matthew 3:16 - Baptism, and the Holy Spirit comes upon Him. Before this, there seems to have been no activity of the Spirit working through Him. His baptism marks the beginning of His ministry.
Matthew 4:1 - Led up by the Spirit for a time of testing before ministry really begins. Leaving the wilderness, He gathers some disciples.
Matthew 4:17, 23 - The Lord begins to preach and work miracles. His preaching was not always accepted by the people; and He was generally rejected by the religious leaders of the time.
Matthew 5:1,2 - The Lord preaches what we now call "The Sermon on the Mount", chapters 5 to 7.
Matthew 8:1,2 - Quite a few of the Lord's miracles are listed in chapters 8 & 9.
Matthew 10:1,5-8 - The Lord sends His disciples out to do the same (i.e. preach and perform miracles), but gives them warnings about what will happen when their message is rejected (v.16,17). We'll look more at the Holy Spirit’s dealing with the disciples in future studies.
Matthew 11:1-5 - John the Baptist asks why the kingdom isn't coming in (cp Matthew 17:10-13, note the Lord's answer about John's role, if the people had believed). Kingdom was not coming in because the King and His message were mostly being rejected.
Matthew chapters 14 to 16 - This passage highlights the terrible example of the leaders at the time. For example, – - Herod had John the Baptist beheaded (14:10)
- Traditions of the Pharisees vs. the word of God (15:1-7)
- Warnings about the teaching and traditions of the Pharisees and Sadducees (16:5-12)
- Note that the miracles of feeding 5000 & 4000 are in this section (chs.14-16); this is not random. These miracles highlighted that:
(a) Jesus of Nazareth was the Bread of life, who would be able to supply all needs abundantly.
(b) His kingdom would be one of divine government (note the number of baskets left over each time - the number 12 representing government, and 7 representing perfection), unlike the government of self-serving imposters like the Pharisees and Herod.***ST. MARK** in the baptism of Christ the HS comes on Jesus during His Baptism as a dove. (Also in Matt. 3:16 Luke 3:21).
# The “Spirit (pneuma) of Jesus” in Mark’s Gospel (Mark 2:8; 8:12)
Posted on **[1 April, 2010](http://moments.nbseminary.com/archives/100-the-spirit-pneuma-of-jesus-in-marks-gospel-mark-28-812/)** by **[Dr. Larry Perkins](http://moments.nbseminary.com/archives/author/larryp/)**
The Gospel writer, Mark, used psychological terms sparingly and carefully in reference to Jesus. For example, the word *kardia* is never applied to Jesus because the human heart is “evil” (Mark 7:19,21), “hardened” (3:5; 6:52; 8:17) and “disputatious” (2:6,8; 11:23), “far from God” in Isaiah’s language (Mark 7:6 quoting Isaiah 29:13). The term *psuchē* tends to refer to the life principle within a human being (3:4; 8:35,36,37; 10:45; 12:30).
Sometimes as in 14:34 *psuchē* describes the self, which expresses the life principle in a person. For example, Mark says that Jesus is “grieved to the point of death in his *psuchē*” by which Jesus indicates the deep, personal intensity of his grief. Mark does not use terms related to mind, apart from *dianoia* which occurs in a quotation from Deuteronomy (Mark 12:30). Once as well he used the verb *phronein* (“to think”) to describe Peter’s ideas (8:33).
Perhaps even more remarkable is that Mark only twice says that Jesus has a spirit (*pneuma* 2:8; 8:12). Now Mark primarily used the term *pneuma* in two ways. First, God, the Holy Spirit, is referenced by this noun (1:8,10,12; 3:29; 12:36; 13:11). In each context it is quite clear that the Spirit of God is being described. Secondly, Mark frequently describes demons as “unclean spirits” (*akatharta pneumata*) (1:23,26,27; 3:11,30; 5:2,8,13; 6:7; 7:25; 9:17,20,25(2x)).
In his anthropology “spirit” is not a normal component of human constitution. Rather, these are spiritual beings, either good or evil , which influence human beings. Only in two cases do we read in Mark about a person’s *pneuma*, and in both cases it refers to Jesus (2:8; 8:12). Mark 14:38 may be an exception: “The S/spirit is willing but the flesh is weak.”
So what then did Mark intend his readers to understand in these two passages about Jesus’ spirit? We know from Mark 1:10, 12 that the Holy Spirit “descended” upon Jesus after his baptism and “thrust him out into the wilderness.” John prophesied that Jesus would be able to “baptise in the Holy Spirit (en pneumatic *hagiōi*)” (1:8), which again indicates that God’s Spirit is present with Jesus in a special way. In 3:29 Jesus warned the Jewish religious leaders about the dangerous consequences of attributing the works he was doing by the Spirit’s power to demonic forces. Those who persisted in this perspective “profaned the Holy Spirit” and “did not have forgiveness forever but were guilty of an eternal sin.” Again the Spirit is identified significantly with Jesus’ teachings and miraculous activities. We can only conclude that God’s Holy Spirit integrally works in concert with Jesus.
According to Mark 2:8 Jesus is able to discern what the Jewish religious leaders around him are “disputing in their hearts/themselves (*en tais kardiais autōn/en heautois*)” (2:6,8). Mark says that “Jesus, knowing in/by his spirit (*tōi pneumati autou*)” what they are thinking, interrogates them. What does Mark mean by this phrase and reference to “spirit?” Should we translate this as “his spirit” or “the Spirit that belongs to him,” i.e. the Holy Spirit? In other words is it Jesus himself that discerns their thoughts or is it the Holy Spirit within him that empowers or aids him to do this? The same verb occurs with Jesus as subject in 5:30 and there the expression is “knowing in himself (*en hautōi*)”, with the preposition present.
We discover a similar situation in Mark 8:12. Again Jesus is entangled in controversy with Jewish religious leaders. They have approached him to demand some extraordinary sign, “testing him” (8:11). In response Mark says that Jesus is “dismayed in/by his spirit (*tōi pneumati autou*).” This is exactly the same phrase Mark used in 2:8. So is this the Holy Spirit in Jesus who is dismayed at the religious leaders’ continued refusal to accept Jesus as Messiah, because He knows that this stubbornness is leading to terrible judgment? Or is this Jesus’ spirit, i.e. himself, expressing this dismay?
If these are to be taken as references to the Holy Spirit, then how are we to understand the meaning of dative case in which these phrases are written? A frequent use of the dative case is to define means or instrument. If this is the intended sense, then in 2:8 Jesus “knows by means of the Spirit which he has” what the religious leaders are thinking. And in the case of 8:12 the dismay that Jesus experiences arises “by means of the Spirit which he has.”
Another usage, just as common, is the dative of manner, i.e. defining how something occurs. If this is the sense that Mark intended, then we would translate 2:8 as “recognizing in his S/spirit” and 8:12 “dismayed in his S/spirit.” Whether this would refer to the Holy Spirit or his own spirit (i.e. as we would refer to a human being’s spirit) is unclear. The entry defining *pneuma* in the New International Dictionary of New Testament Theology, Volume 3 says that the usage in Mark 2:8 and 8:12 describe “that area of human awareness most sensitive to matters of the spiritual realm.” However, it provides no specific justification for defining the usage in these Markan passages in this manner.
At this point I am not sure how to read these two verses in Mark’s Gospel. I am inclined to see references to the Holy Spirit. However, in doing this I have no desire either to diminish Jesus’ humanity or his deity. The entire Gospel of Mark demonstrates without doubt the real humanity of Jesus — he eats, sleeps, weeps, gets angry, is compassionate, etc. Simultaneously Mark expresses the involvement of God and the Holy Spirit with Jesus in his incarnational work. In these two contexts I would sense that Mark conveys the harmonious working of God the Father, Son and Holy Spirit in the Incarnation, but this is not “Spirit Christology.” Jesus is Son of God in his own right.
Obviously some mystery exists in this and its expression. Conversely, I can find no evidence in Mark’s Gospel that would support a usage of *pneuma* with reference to the human spirit, unless it might be in 14:38, but the meaning of *pneuma* is not exactly clear in that context either. Perhaps the lack of such a usage in Mark’s Gospel is a coincidence and not intentional. Regardless, such a usage is not present.
1. the early church struggled to understand how Jesus was both fully human and fully divine, as we do today. There is mystery in this. We affirm both as essential for our salvation. Is this affirmation a fundamental part of your faith?
2. Mark describes Jesus in terms that show he is the same as other humans, but different. How in your worship today will you praise God for sending Jesus as the divine-human saviour?
ST. JOHN’S GOSPEL16:7 if I do not leave the HS will not come Jesus senses that the disciples are sad about His departure, but explains that it is absolutely necessary for the Holy Spirit to cone and explain the things the apostles could not understand. The Guide will guide us to the entire truth once, on the day of Pentecost. He will console us. Its’ like a death in the family.
Even though He ascended unto heaven they will miss Him but the Spirit will console them. He will turn their sadness and sorrow into joy. Like the mother who is giving birth and has so many pains, but when she gives birth everything disappears and is forgotten. After all His life was a struggle and a continuous persecution, which led to His passion and crucifixion. What is this joy? It is the joy and exuberance of the New Life. Their joy is going to be complete and lasting. Whatever they ask of the Father in Christ’s name they will receive it.
THE SAMARITAN WOMAN AND THE HOLY SPIRIT
**You need to heavily edit this. Too much for a very small point. Spend more time in John on the Farewell discourse and the breathing of Jesus on the disciples**
Today a Greek Orthodox Church is erected on the site of the well. You can visit it and even take a drink of water from the same well that our Lord drank from. Jesus, as a rabbi, contrary to the behavior of rabbis during His times, talks to a Samaritan woman, with a questionable past who was married 5 times and now she lives with another man not her husband. She must have had many children from those 6 men.
At the time Jewish men were not allowed to talk to a strange woman in public face to face. The Samaritans rejected by the Jews as an impure race because they had been conquered by Assyrian nation and intermingled with them for two hundred years. Samaritans were viewed as unclean. Samaria was in the middle of Palestine, between Judea to the south and Galilee in the north. Jews from Galilee had to cross Samaria in order to go down to Judea and Jerusalem. To avoid going through Samaria, Galileans would go to the other side of the Jordan River to avoid setting foot in Jerusalem. To talk to a Samaritan or worse to drink from the same cup would be considered unclean and abomination.
Jesus, as a human being also, comes to Jacob’s well alone at noon, and asks a strange woman to give him a drink, which surprises the woman as well as the 12 apostles later on. It was hot. He and the disciples had been walking for a long time. Women usually went to the village well in the morning, before the heat of the day. One reason for this woman might be there at that time could be that she felt like an outcast or ashamed to be seen even by those in her village.
In their conversation, the Lord reveals that he knows all about her previous sinful life. What does she say in reply? She asks about worship. Where should we pray in the temple in Jerusalem or on Mount Gerazim, where the Samaritans worshipped? The Lord replied that neither in Jerusalem nor at Mt Gerazim would God be worshipped in the future. God is spirit, he said, and those who wish to worship God must worship him in spirit and in truth. What did he mean by that?
Christ explains to this simple and sinful woman, who is not a real Jew, one of the highest truths of His ministry. He explains that place does not matter. God, as we say, is everywhere. I am not saying that you don’t have to come to church because the place does not matter. What matters is that worship is true.
What is the meaning of True worship? What does it mean that God is spirit? He cannot be confined to one place only, as spirit. Those who worship God must do so in truth. In ancient times, worship consisted of ritual animal sacrifices in specific temples where the carcasses of dead animals were burnt for the gods. The Jews believed that they could only offer sacrifice to God in the Temple at Jerusalem.
Christians, however, never sacrificed animals to God. It is the Lord, Jesus Christ, who sacrificed himself for us. The True Worship is the recognition that God is sacrificed for His people instead, and our worship of God, which we Orthodox call logeki latreia, is spiritual. It can take place anywhere and it does not involve offering the blood of animals.
From the beginning of the church, the center of all worship was the Divine Liturgy. Individual, personal worship is encouraged and expected if we are to create and maintain a relationship with God.
St John Chrysostom said that real faith is needed to worship in truth. God is aswmatos, without a body and is worshiped in spiritual purity with the mind. We do not sacrifice animals but we should be offering ourselves, not in a display, or in presence or pride, but instead humility, tapeinofrosyni and metriofrosyni in nefaliotis humility and moderate temperance in sobriety.
In conclusion I want to make one thing clear: that Christ is not saying do not worship in Churches. The Samaritan woman encountered Christ and we not only encounter him, and hear his words, but we receive him at the divine liturgy when we receive holy communion.
Jesus decided to reveal one of the highest truths to this ordinary, uneducated woman who has lived an immoral life. He reveals to her that he is the messiah. Why does he do that? Because she is open to him and his message. She accepts what he says.
The Samaritan woman calls the whole village to come and meet Jesus and they believed in Him too. Her life was changed completely from black to white. Tradition has it that the Apostles baptized her and gave her the name Photini meaning the Enlightened One. She was the first woman evangelizer; she converted not only her whole village but her family, her 5 sisters, and her two sons. The older one Victor was a Roman general in the Northern Europe, who converted thousands to Christianity. In fact the entire family became missionaries.
She reportedly went as far as Spain just when Sts. Peter and Paul were killed in Rome. She and her family travelled to North Africa and then to Rome. Emperor Nero at the time tortured Photini, her two sons and five sisters. They were subjected to many terrible tortures and thrown into a darken prison which was filled with poisonous snakes, but the snakes died and a bad smell permeated the prison. Almost right away the dark prison became like Photoni, full of radiant and bright light. A beautiful fragrance filled the prison and the surrounding areas. They were kept in prison for three years. The prison became a Church where God was worshipped, with a Divine Liturgy, reading the psalms. Many conversions and many baptisms took place there.
St. Photini died with only one holy complaint: that she did not become worthy of a Martyr’s death. But she experienced the death and torture of her entire family and other Christians. Christ offered her living water, and she then brought Him, the Living Water, Christ Himself and shared it with the world. St Photini has been honored by the Church with the title Equal to the Apostles. What a change and transformation: from a life of obscurity and instability, to a life of devotion to Christ. Let us follow and emulate St. Photini’s example, if only 5%, by becoming real light to the world with our entire family. Then and only then shall exceed the meaning of true worshipers Let it be so. Amen.
TRUE WORSHIP
A conversation takes place at the well in the middle of the day. Jesus at first asks for a drink of water from the Samaritan woman and then when she asks where they should worship god, the Tempe on Zion in Jerusalem or on the Mount Gerasin in Samaria
Jesus is crystal clear in His answer. In neither place, and goes on to explain to this simple and sinful woman, who is not a real Jew, one of the highest truths of His ministry. He explains that place does not matter. God as we say is everywhere, but what matters is the true worship.
What is the meaning of True worship?
Jesus explains that God is spirit. He cannot be confined in one place only, as spirit. Those who worship God must do so in truth. The ancient ways of worship of ritual and sacrifices are over except the sacrifice of Jesus the Lord in the Divine Liturgy. The big difference is that now God is sacrificed for His people instead.We use these words in the N T to describe worship.
Proskynw means bow down in both physical and spiritual sense. Had I practiced the full prostrations I would have been slimmer and healthier. In the Orthodox Church we distinguish that this respect is for the saints and the Virgin Mary.
For the Trinitarian God only, the Father Son and HS we use the word Latrevw, worship. This means exclusive and pure worship.
Sevomai (Roman 1:25), which means to respect, fear and show reverence. Usually this term was used in pagan worship but occasionally is used for Christian worship ,as well. Unfortunatelly recentlly the word fear is translated wrongly with the word owe (Deep respect)
It is also clear that serving God in the NT involves obedience to His commandments and presenting our bodies as living sacrifices, which as St. Paul said is our spiritual worship (Ro. 12:1).
The first Christian services (Acts 2:4 and 1 Cor.14) included teaching, songs, hymns, psalms praises, doxologies, thanksgiving exortations, Biblical readings, rebuking, and especially prayer. The first altar tables were the tombs of martyrs whether in catacombs or elsewhere.
The center of it all was the Divine Liturgy, short at times , but also Longer than the one we have today. For instance the Divine Liturgy of St. Basil is longer than St. Chrysostom’s even though it was written earlier and it’s much longer.
Individual, personal worship is encouraged by Jesus , St.Paul and others in the NT. St. Paul advises us to pray about everything, with thanks-giving (Phil 4:6) and unceasingly (1Thes 5:17).
ORIGEN around 200, says that the Spirit makes us alive worshipers, through Jesus Christ (the Gospel)
DIDUMOS THE BLIND around 300 says that God is spirit and as such cannot be seen. He is invisible; life giving, full of love and incorporeal (Fragments on John 3 and 4:24)
THEODORE OF MOPSUESTIA a friend of Chrysostom, says God has a nature without a body and as such the true worshiper must honor Him with right beliefs, real intentions and pure conscience.
*Finally St. CHRYSOSTOM defines the true spiritual worship at home as praying and reading the Bible, thus encraving everything in our hearts. (Hom. 32 p.319 CUA)
Real faith is needed to worship in truth (33,322).
God is aswmatos, without a body, and is worshiped in spiritual purity with the mind. You should not sacrifice animals anymore but yourself as a whole offering. No shows offs, presence and pride, but instead humility, tapeinofrosyni and metriofrosyni in nefaliotis humility and moderate temperance in sobriety (193. 295 and 297).
In conclusion I want to make one thing clear that Christ is not saying do not worship in Churches.
Let us follow and emulate St. Photini’s example, if only 5%, by becoming real light to the world with our entire family. Then and only then shall exceed the meaning of true worshipers Let it be so. Amen. In Churches praise God…and join the Choir for a more active and meaningful participation in the L. The two quotations are from Augustine, Chrysostom plus Cyril of Alexandria from the Ancient Christian Commentaries on John 16:7 Vol 2
*ST LUKE Jesus was full of the HS after HIS Baptism and the Spirit immediately led Him to the desert to be tempted.
“FILLING OF THE HS an important theme in Luke.
THE FILLING OF THE Holy Spirit
St. Elizabeth (fetuses) and becomes a prophetess
Simeon when he receives the Jesus baby his prophesy and prayer
He entered the holy of holies in the spirit
THE ROLE OF THE HOLY SPIRIT IN THE GOSPEL OF LUKE by Yong Lu p.55 (Cf. J. B. Shelton)
It is particularly important to study Luke’s presentation of the role of the Holy Spirit.
Jesus’ conception Luke 1:35 episkiasei se
St. Ephraim the Syrian (Homily on the Nativity, in Harp of the Spirit, 66) says: “He came down in a manner that He knows. He stirred and came down in a way that pleased Him He entered and dwelled in her without her perceiving. She received Him, suffering nothing”.
St. Gregory Palamas says, “This was not simply overshadowing, but an outright union, separated by nothing… nothing involving the senses not only the union but formation of the incarnate Word of God. :Thus in an indescribable manner the word of God took u His dwelling in her. (Hom. 37, on the Dormition, PG 151, 461D)
Luke tells us that Jesus was praying when the Holy Spirit came upon Him at His baptism (Luke 3:21–22). The Holy Spirit and its gifts and miracles throughout his Gospel and the Acts become the very nature of the case indispensable for the renewed interest in interpreting sharp disagreement on the role of the Holy Spirit in conversion, empowerment, and the nature of Christian experience with the Holy Spirit.
Actually one of the main reasons Luke wrote his Gospel and Acts is to point out the role of the Holy Spirit in effecting miracles and in inspiring witnesses “that have been fulfilled among us” (Luke 1:1).
The rise of the Charismatic Movement and the Pentecostal which also centers on the role of the Holy Spirit and glossolalia merits the need to study in the two narratives by Luke for the church today.In the Gospel of Luke, certain people are enabled by the Holy Spirit to speak authoritatively in prophecy. Priest Zechariah and his wife, Elizabeth, are enabled by the Holy Spirit to receive the prophecy that they would bear a son to be called John who would be filled with the Holy Spirit even before his birth (Luke 1:13–15).
A man called Simeon in Jerusalem is enabled and revealed by the Holy Spirit. He praises God and speaks prophecy (Luke 2:25–35). A prophet called Anna is enabled by the Holy Spirit to “speak about the Child to all who were looking forward to the redemption of Jerusalem” (Luke 2:36–38). John son of Zechariah is revealed by the word of God to speak prophecy in the wilderness (Luke 3:2–19). After Jesus is baptized by John, the Holy Spirit descends on Him in bodily form like a dove, and He opens His ministry way since then (Luke 3:22; 4:1, 14, 18).
> According to Luke, the role of the Holy Spirit in the prophecy even before Jesus’ birth is to announce the radical newness of God’s salvation through His birth. God’s Son is
born of a virgin, is conceived by the power of the Holy Spirit, and is God Himself coming from the
THE HOLY SPIRIT AS A DOVE
This action of the Holy Spirit, in [Luke 3:22](https://www.blueletterbible.org/search/preSearch.cfm?Criteria=Luke+3.22&t=DBY), reminds us of the dove that found no place for the sole of her foot, and returned to the ark, when the flood of waters covered the face of the earth. All around was death and devastation, and the only place the dove could find to rest was the ark that sheltered Noah and his house. The Son of God had come into a scene of death, where man lay under the judgment of a righteous and holy God, and upon none of Adam's race could the Spirit of God rest.
### THE FULLENESS OF THE HOLY SPIRIT
In the opening verse of [Luke 4](https://www.blueletterbible.org/search/preSearch.cfm?Criteria=Luke+4&t=DBY) Jesus is brought before us as the vessel of the Spirit of God, and the vessel is full. John presents the Son as come to bear witness to the Father, but in Luke the Lord is seen as Son of Man come to do the will of God, and all that He does is by the Spirit of God. The Holy Spirit in *bodily form* was upon Him, for here was a vessel of infinite capacity to receive the Holy Spirit personally, so that the fulness of the Godhead dwelt in Him. And yet the vessel was full, for *all* the divine fulness was there
Spirit, loudly asked the people, “WHO WANTS TO BE FILLED WITH THE HOLY SPIRIT?”
Most of the people responded by raising their hands immediately. My wife and I then went around to the people laying hands on, and praying for them, and all of the people who wanted to be were filled with the Holy Spirit and began to speak with other tongues, as the Spirit gave them utterance. Some of the people also gave me testimonies about what great things that the Lord had done in their lives.
An interesting point here is that this denomination does not fully accept the idea of speaking in tongues as the Spirit gives them utterance. But the Lord showed me that they were seated at the dinning tables because they were hungry, hungry for more of God, hungry for a deeper relationship with their Lord, and hungry for the presence of God to impact their lives in a glorious ***way. Jesus says in *(Luke 11:13) “If you then, being evil, know how to give good gifts to your children, how much more will your heavenly Father give the Holy Spirit to those who ask Him!”*
THE HOLY SPIRT LEADS JESUS
The same verse in which Jesus is brought before us as full of the Holy Spirit presents Him as "led by the Spirit into the wilderness." Not only was He led into the wilderness, but while in the wilderness He was led by the Spirit, the One subject to God's will in all things, not asserting Himself, but in meek and lowly submission to God *led by* the Spirit so that all might be wrought in the Spirit's power for the glory of God and the blessing of mankind.
It is noticeable that in Matthew's Gospel the same act is viewed in its kingly aspect, for "Jesus was carried up into the wilderness by the Spirit" ([Matt. 4:1](https://www.blueletterbible.org/search/preSearch.cfm?Criteria=Matt.+4.1&t=DBY)); but in Mark, where God's perfect servant is brought before us, "Immediately the Spirit driveth Him into the wilderness" ([Mark 1:12](https://www.blueletterbible.org/search/preSearch.cfm?Criteria=Mark+1.12&t=DBY)). The design of each Gospel is clearly set forth in the manner of the Spirit's action in relation to the temptation of the Lord.
THE GIFT OF THE FATHER TO EKPOREUTON
In [Luke 11:13](https://www.blueletterbible.org/search/preSearch.cfm?Criteria=Luke+11.13&t=DBY), the Holy Spirit is spoken of by the Lord as the gift of the Father. The Father had in grace given His only Son, and after the Son returned to heaven, having accomplished what had been given Him to do, the Father, caring for His children, would give them the richest possible gift. **What happened to John? ANS. I SHALL RETURN with verses hodegesei didaxei etc.**
ACTS
**Introduction The Baptism of the Holy Spirit**
There is a lot of controversy concerning the role of the Holy Spirit in Christian life--both personal and corporate. This lesson will summarize the teaching of Acts on the Holy Spirit, emphasizing the Spirit’s baptism, the Spirit’s filling, and the Spirit’s power.
The book of Acts establishes the pattern that the Holy Spirit is imparted to genuine believers at the time of their conversion. This pattern is reinforced in several ways.
•The imparting of the Holy Spirit to believers was foretold by Jesus before His ascension, a fact that Luke was careful to note (Acts 1:4-5: “ye shall be baptized with the Holy Ghost not many days hence”). This promise was obviously fulfilled on the Day of Pentecost (2:1-4). Through the power of the Spirit the disciples spoke “with other tongues” (2:4). Peter interpreted this phenomenon as the fulfillment of Joel 2:28-32 (2:16-21).
•From Pentecost forward it became the norm that believers receive the Holy Spirit at the time of their conversion. At Pentecost Peter identified the receipt of the Holy Spirit as a consequence of salvation (2:37-39; note the language of conversion: “repent,” “remission of sins,” “call”). The apostles subsequently referred to the Holy Spirit as God’s gift to those who obey Him--presumably, by trusting Christ for salvation (5:32). Peter’s confrontation with Simon the sorcerer establishes without ambiguity the fact that the Holy Spirit is a gift given freely to believers (8:18-24).
•The conversion of the first Gentiles in Cornelius’s home was accompanied by the falling of the Holy Spirit (10:44-48). Peter later reflected on this event, equating it with what occurred to the Jewish believers on the Day of Pentecost (11:15-18; 15:7-9). A few variations from the norm are recounted in Acts, but these serve merely to reinforce the norm. Those who came to faith in the Samaritan revival did not experience the baptism of the Spirit immediately. Rather, the Spirit was imparted to them through the laying on of Peter and John’s hands (8:12, 14-17).
Saul received the Spirit through the mediation of Ananias three days after his conversion (9:17). Perhaps the most puzzling impartation of the Spirit concerned a dozen or so disciples of John the Baptist (19:1-6). These men professed to have believed and had been baptized, but had no knowledge of the Spirit.
Craig Blomberg suggests that they were not truly converted until their encounter with Paul (346). After trusting in Christ and being baptized, they received the Holy Spirit through the imposition of Paul’s hands. The fact that Luke described these incidents in some detail suggests that they were exceptional.
We should note that most converts in Acts were baptized with the Spirit at the moment they came to faith in Christ. The instances when water baptism and/or the laying on of hands preceded the impartation of the Spirit were extraordinary.
THE FILLING OF THE HOLY SPIRIT in the book of Acts illustrates that the Holy Spirit works his will by filling believers with His presence and power. Christians should therefore seek to be filled with the Spirit on a continual basis.
When Peter was filled with the Holy Spirit he boldly proclaimed Jesus as Christ to the Jewish leaders (4:8ff). When Paul was filled with the Spirit he confronted a sorcerer who was hindering the cause of evangelism (13:9ff).
The early church recognized the importance of designating faithful, Spirit-filled men to carry out the Lord’s work. The Jerusalem church refused to delegate food distribution to men who were less than Spirit-filled and wise (6:2-6). In addition, it selected Barnabas as its representative to Antioch because of his spirituality (11:22-24).
The filling of the Holy Spirit is associated with joy. The disciples experienced it even in the face of persecution (13:50-52).
The early church prayed for the filling of the Holy Spirit, seeking to represent the Lord boldly before the world (4:29-31). Paul made tentative plans in the Spirit; in other words, he sought the Spirit’s direction for his life (19:21).
The book of Acts demonstrates that the Holy Spirit leads and empowers the church for growth and service. The church’s success is vitally tied to its relationship with the Spirit.
The writer of Acts portrayed the Holy Spirit as the Source of spiritual power (1:8). He attributed Jesus’s success in ministry--particularly in training the apostles and performing healings--to the work of the Spirit (1:2; 10:38). Thus the earthly work of Christ serves as a model of ministry led and empowered by the Holy Spirit.
The Holy Spirit led and enabled the early Christians to witness boldly on behalf of Jesus (4:8ff; 5:30-32). Driven by the Spirit, Paul witnessed to the Corinthian Jews concerning the identity of Jesus as Messiah (18:5). The Spirit empowered Stephen’s message to his fellow Jews, forcing them to decide for or against Christ (6:8-10). Through the Spirit Paul confronted Elymas the sorcerer’s deceitful ways (13:9ff).
Every aspect of the church’s advance in the first century was overseen by the Holy Spirit. Acts specifically names Him as the Agent behind the church’s growth (9:31). The Spirit directed Philip to witness to the Ethiopian eunuch (8:29ff). He even transported Philip from the desert to Azotus so he could engage in a preaching mission (8:39-40).
Furthermore, He directed Peter to accompany men to Cornelius’s house, leading to the inclusion of Gentiles in the church (10:19-20; 11:12). He revealed to a prophet named Agabus that a famine was imminent, enabling the Antioch church to send relief to Jerusalem (11:27-30). He prevented Paul and his companions from pursuing their plans to minister in particular regions (16:6-7). And He warned Paul of the dangers of going to Jerusalem (20:22-23; 21:4, 10-11).
The relationship between the Church and the Spirit is of paramount importance. This is perhaps nowhere more clearly portrayed than in the story of Ananias and Sapphira, who died because of their irreverence toward the Spirit (5:1-11). For the most part, however, the early church leaned heavily on the Spirit’s direction and empowerment. The Jerusalem church con-sidered Spirit-filling to be so important that it required it of leaders who would perform seemingly insignificant tasks(6:2-6).
It designated Barnabas, a Spirit-filled man, to journey to Antioch on its behalf (11:22-24). Its leaders sought the Spirit’s wisdom in making resolutions that would affect the Christian world of their day (15:28-29). The church at Antioch responded to the Spirit’s instruction to commission Barnabas and Saul for missionary service (13:1-4). And Paul recognized the Spirit’s role in appointing church leaders in Ephesus (20:28).
**Good topic, but why here? Unless you want to address it separately from Acts of the Apostles. If you are going to discuss it with Acts, then you have to have it earlier in this section.** PENTECOST (2:2:1) Visible flames and speaking in strange tongues and foreign we have the birthday of the Church. St. Peter inspired by the HS Delivers his amazing speech that everybody understood in their own language and 3, 000 people from all over the world were converted. St. Peter quotes Prophet Joel in Acts 2:17 “I will pour out my HS upon all men. The consequences: prophesy, visions, and dreams for the future.
HOLY PENTECOST The word Pentecost comes from the Greek Word for 50 and it means 50 days after Pascha or Easter.
HOLY PENTECOST The word Pentecost comes from the Greek Word for 50 and it means 50 days after Pascha or Easter.
In the OT the Jewish people had the so called Weeks or Harvest Festival It simply marked the end of the Barley season and the beginning of the wheat year. It also symbolized the day the Lord gave the Ten Commandments to Moses on Mt. Sinaih.
In the NT however and the Christian Church Pentecost is the birthday of the Church. The Disciples are still scared of the Jews and are still hiding ; but this time they are waiting in suspense for somebody as big as Jesus Himself to come and take the place of the Lord, namely the Holy Spirit. When lit finally comes it’s like tongs of fires on the heads of the Disciples and all a re illumined. They are now full of knowledge even of the foreign languages.
What event is contrary to this in the OT? The building of the tower of Babel and the confusion of languages to the point where the builders could not communicate. So Holy Spirit heals the dispersion and confusion of those early years and re-establishes the unity of human language. Then everything was upside down ant he building was forced to stop.
Now it’s the opposite. Not only they can communicate perfectly among themselves but even to the outside world. When Peter speaks to the people in an inspired and enlightened way we have the first mass conversion. 3000 people are immediately converted. Now the spiritual building and organization begins and leads to heaven, to humility not to pride and errogance.
The tongs of fire imply a burning charity. The words seemed conditions by the flame. The words of a Christian should be words of wisdom and passion. Full of fire. The tongs are evenly distributed. They are not only the privilege of Peter or John but of all present men and women.
Pentecost was also called Whitsunday because people who were baptized on the Saturday before were dressed in white.
Let us be illumined and enlightened today by the Holy Spirit when we kneel down three times in a few minutes. These prayers are very important prayers and it’s great that you came today to receive them in humility. May the Holy Spirit inspire each and every one of us to be going from one spiritual mountain top to another. May the Holy Spirit set every Christian on fire. AMEN
We could compare this day or rather contrast it to the confusion of the tower of Babel. The HS unifies Christians and brings agreement and order. **This is clearly a sermon – take out most of it.**
ST. PAUL AND HIS LETTERS
ST PAUL persecuted Christianity with great fanaticism, but through his miraculous conversion how turned into a giant of the Church. What a great transformation! Once Ananias put his hands on Paul, the HS came upon him and filled him. Since that moment he could not stop preaching about Christ.
When Paul visited Cyprus in his first missionary trip he met a magician called Elias. Again he was filled with the HS and reprimanded the Elias. He had to blind him because he opposed the gospel.
St. Paul also said that we cannot even confess that Jesus Christ is God except by the power of the Holy Spirit. In his epistles, his letters Paul often speaks of the Holy Spirit. We need a separate lesson to cover everything.
These are just a few examples;
Romans 7 if we commit ourselves under the control of the HS the HS who raised Jesus from the dead will also give life to our mortal bodies
2 Cor. 3:3 and 3:18 if we are transformed into Christ’s likeness it’s because of the Spirit.
Gal. 5. Those who live by the Spirit and keep in step with Him will receive the gifts of Spirit which are love, joy peace, patience, kindness, goodness, faithfulness, gentleness, self-control (5:22.23) and also holiness Eph. 4:23.24).
Patristic commentary by St. John Chrysostom
Ver. 30. "And grieve not," he adds, "the Holy Spirit of God."
**You are going to have to put this into better English.**
A matter this more terrible and startling, as he also says in the Epistle to the Thessalonians; for there too he uses an expression of this sort. "He that rejecteth, rejecteth not man, but God." (1 Thess. iv. 8.) So also here. If thou utter a reproachful word, if thou strike thy brother, thou art not striking him, thou art "grieving the Holy Spirit." And then is added further the benefit bestowed, in order to heighten the rebuke.
"And grieve not the Holy Spirit," saith He, "in whom ye were sealed unto the day of redemption."
He it is who marks us as a royal flock; He, who separates us from all former things; He, who suffers us not to lie amongst them that are exposed to the wrath of God,--and dost thou grieve Him? Look how startling are his words there; "For he that rejecteth," saith he, "rejecteth not man, but God:" and how cutting they are here, "Grieve not the Holy Spirit," saith he, "in whom ye were sealed."
Moral. Let this seal then abide upon thy mouth, [348] and never destroy the impression. A spiritual mouth never utters a thing of the kind. Say not, "It is nothing, if I do utter an unseemly word, if I do insult such an one." For this very reason is it a great evil, because it seems to be nothing. For things which seem to be nothing are thus easily thought lightly of; and those which are thought lightly of go on increasing; and those which go on increasing become incurable.
Thou hast a spiritual mouth. Think what words thou didst utter immediately upon being born, [349] --what words are worthy of thy mouth. Thou callest God, "Father," and dost thou straightway revile thy brother? Think, whence is it thou callest God, "Father"? Is it from nature? No, thou couldest never say so. Is it from thy goodness? No, nor is it thus. But whence then is it? It is from pure lovingkindness, from tenderness, from His great mercy. Whenever then thou callest God, "Father," consider not only this, that by reviling thou art committing things unworthy of that, thy high birth, but also that it is of lovingkindness that thou hast that high birth.
Disgrace it not then, after receiving it from pure lovingkindness, by showing cruelty towards thy brethren. Dost thou call God "Father," and yet revile? No, these are not the works of the Son of God. These are very far from Him. The work of the Son of God was to forgive His enemies, to pray for them that crucified Him, to shed His blood for them that hated Him. These are works worthy of the Son of God, to make His enemies,--the ungrateful, the dishonest, the reckless, the treacherous,--to make these brethren and heirs: not to treat them that are become brethren with ignominy like slaves.
[350] Think what words thy mouth uttered,--of what table these words are worthy. Think what thy mouth touches, what it tastes, of what manner of food it partakes! Dost thou deem thyself to be doing nothing grievous in railing at thy brother? How then dost thou call him brother? And yet if he be not a brother, how sayest thou, "Our Father"? For the word "Our" is indicative of many persons. Think with whom thou standest at the time of the mysteries! With the Cherubim, with the Seraphim! The Seraphim revile not: no, their mouth fulfills this one only duty, to sing the Hymn of praise, to glorify [351] God. And how then shalt thou be able to say with them, "Holy, Holy, Holy," [352] if thou use thy mouth for reviling? Tell me, I pray. Suppose there were a royal vessel, and that always full of royal dainties, and set apart for that purpose, and then that any one of the servants were to take and use it for holding dung. Would he ever venture again, after it had been filled with dung, to store it away with those other vessels, set apart for those other uses? Surely not. Now railing is like this, reviling is like this
- Check it out)
APOCALYPSE AND THE HOLY SPIRIT
The last couple of months we saw on TV horrible scenes of weather going crazy and the last week before the heat wave in Europe thousands of lightening’s and thunders. Many thousands of them in Greece even on Mount Athos the Holy Mountain and one wonder what’s going on. We are only 10 minutes away from war with Islam and this is not a new fight. It started with the crusades almost 1000 year ago and the last 30 years it came back to haunted us again.
Many Christians are expecting the end of the world. Even secular people are talking about 12 more years that our planet before climate change and pollution destroy it.
Today I want to talk about the Holy Spirit in the book of Revelation. I believe it’s appropriate to talk about this very important topic at this time. I have mentioned to you presently I’m writing a book on the Holy Spirit and I need your prayers.
To be sure dear brothers and sisters, the Holy Spirit was, is and will be present in the future. Let us see today what role He will play in Revelation, in the end times, what we call in Greek ta escheat
In fact, the book begins and ends with references to the Spirit (Rev. 1:4; 22:17). But for some, the fact that the Spirit is not described as being on the throne with the Father and the Son means that He is not a person, much less a member of the Godhead. Let’s examine the evidence.
1. Role of the Spirit in Revelation: The Spirit is called “the spirit of life” (11:11, NKJV; some translations read “breath of life”), that is to say, He is life and He gives life.
APOCALYPSE AND THE HOLY SPIRIT (Sermon at St. Gregory’s SD, CA. July 30, 2019)
The last couple of months we saw on TV horrible scenes of weather going crazy and the last week before the heat wave in Europe thousands of lightening’s and thunders. Many thousands of them in Greece even on Mount Athos the Holy Mountain and one wonder what’s going on. We are only 10 minutes away from war with Islam and this is not a new fight. It started with the crusades almost 1000 year ago and the last 30 years it came back to haunted us again. **You already had this paragraph**
Many Christians are expecting the end of the world. Even secular people are talking about 12 more years that our planet before climate change and pollution destroy it. **A repeat**
Today I want to talk about the Holy Spirit in the book of Revelation. I believe it’s appropriate to talk about this very important topic at this time. I have mentioned to you presently I’m writing a book on the Holy Spirit and I need your prayers. **A repeat**
To be sure dear brothers and sisters, the Holy Spirit was, is and will be present in the future. Let us see today what role He will play in Revelation, in the end times, what we call in Greek ta escheat **A repeat**
In fact, the book begins and ends with references to the Spirit (Rev. 1:4; 22:17). But for some, the fact that the Spirit is not described as being on the throne with the Father and the Son means that He is not a person, much less a member of the Godhead. Let’s examine the evidence. **A repeat**
1. Role of the Spirit in Revelation: The Spirit is called “the spirit of life” (11:11, NKJV; some translations read “breath of life”), that is to say, He is life and He gives life. **A repeat**
In Revelation we see Jesus speaking to His church through the Spirit. He blesses the church (14:13), gives believers grace and peace (1:4), and is directly involved in the mission of the church (22:17). The church exists through the power and presence of the Spirit.
2. The HOLY SPIRIT is a person, Demonic spirits are His counterpart **bad theology! The demons are not a counterpart to God!!** and they too are personal beings who once were close to God bur later out of extreme pride became full of darkness and now deceive the kings of the earth (16:13, 14)
3. We do not see the HOLY SPIRIT sitting on the Throne of God where both God the Father and God the son are sitting and one wonders if He is inferior to the other two persons of the Holy Trinity. **Don’t say that. Only the Father is on the throne,** Even though He stands before the throne, He does not participate in the adoration o of God. Only the 24 elders prostrate themselves before the throne and worship the Trinity. Besides the HS is in the world most of the time and is associated with the 7 spirits sent to the world. These 7 spirits are like torches of fire blazing. **Why are there seven spirits?**
When the prophets like John the Evangelist say they find themselves in the Spirit of prophesy they mean a state of ecstasy and exaltation.
Prophet Isaiah captures our own situation without the Spirit. He says • We grope for the wall like the blind,
> • We grope as if we had no eyes;
- We stumble at noonday as at twilight;
> We are as dead men in desolate places.
In our fallen state, we are enveloped in darkness, unless the Holy Spirit reaches inside us, we would be without hope.
In early Christian Lit. en pneumati means in the Spirits control and this is also the meaning of self control, engrateia we talked last time.
4. The Holy Spirit is giving us e besides foretelling the future in prophesy and giving us vision, us POWER. The word in Greek DYNAMIS EX HYPSUS means the HS. It also means miracles in plural which are the works of the Holy Spirit Through the Saints of the Chuch **good point that the hs is the Spirit of prophecy. I would explain more.**
5. The seven eyes (Zech. 4:10) become the eyes of the Spirit, which is also the lampstand beside the two anointed ones, the olive-trees. St. John adds the 7 horns which is a symbol of power. **The hs does not have seven horns in Revelation**
6. FIRE is a wonderful picture of the HS in three ways. God’s passion and purity. He takes over our hearts if we permit Him and illuminates us with the uncreated light and guidance (Numb 9:17-23) **No. the HS is the river of WATER flowing from the throne!!!!**
7. The book of revelation also talks about the Lake of fire
The kings of the earth, the beast and the false prophet together with the unrepeated sinners will be cast alive into the lake of fire burning with brimstone (19:20). This is called the 2nd death (20:14, 21:8). This symbolizes the purging fire TO KATHARTIKON PYR of the HS, like the red-hot lava of a powerful volcano, which consumes everything in its way and shakes everything inside us so He could indwell IN OUR DEEPEST SELF. This is the way we truly enthrone inside us the KINGDOM OF GOD WITH MUCH EFFORT AND FORCE. REMEMBER THE K.OF GOD IS TAKEN BYFORCE H BASILEIA TOU THEOU BIAZETAI. Amen kai pote **Don’t try to scare people, Father Co-stas!**
(End of sermon)
1. In Revelation we see Jesus speaking to His church through the Spirit. He blesses the church (14:13), gives believers grace and peace (1:4), and is directly involved in the mission of the church (22:17). The church exists through the power and presence of the Spirit. **A repeat**
2. The Godhead and the Spirit: Revelation indicates that the Spirit is one of the three persons of the Godhead. The Godhead did not hand the church over to an impersonal force! Demonic spirits are His counterpart, and they too are personal beings who deceive the kings of the earth (16:13, 14). **A repeat**
There is a triadic formula in which the three persons of the Godhead are mentioned: “Grace to you and peace from Him who is and who was and who is to come and from the seven Spirits who are before His throne, and from Jesus Christ” (1:4, 5). Grace and peace are gifts of God that find their origin in the members of the Godhead. The book closes with a reference to the three persons: Jesus (22:16), the Spirit (22:17), and God the Father (22:18). We also find the three of them mentioned several times in the throne vision: the seven Spirits of God (4:5); God (4:9); and Jesus under the symbols of a Lion and a Lamb (5:5, 6).
The seven spirits are to be understood as the fullness of the Holy Spirit because they are situated between the Father and the Son and they are as fiery torches blazing before the throne 4:5. Again we see the Spirit as the Spirit of prophesy. John says twice that he found himself in the Spirit, meaning a state of mental exaltation and ecstasy. Of course all the future revelations come from the Holy Spirit.
He sanctifies us, empowers us, and the Bible speaks of the indwelling of the Holy Spirit. The Spirit makes possible our communion with Christ, the indwelling of God. This is the greatest role of the Spirit. The HS changed the weak, fearful fishermen into wise and courageous 12 Apostles, doing miracles that Christ did, preaching eloquently and following him in their lives to martyrdom with the exception of St. John. In the beginning they could not understand the basic teachings of Jesus. So in this we see the transformative power of the Holy Spirit.
Isaiah captures our situation; he paints four pictures of our condition in Isaiah 59:10, each showing the helpless condition of humanity. Notice Isaiah includes himself, saying
• We grope for the wall like the blind,
• We grope as if we had no eyes;
• We stumble at noonday as at twilight;
• We are as dead men in desolate places.
Therefore, the Holy Spirit then gives us the ability to understand the words revealed to humanity by Jesus. In our fallen state, we are enveloped in darkness, unless the Holy Spirit reaches inside us, we would be without hope.
THE POWER OF THE HOLY SPIRIT (to be expanded also speak about dynamis in the Div. Liturgy)
THE POWER OF THE HOLY SPIRIT (to be expanded also speak about dynamis in the Div. Liturgy)
I think that is very important. Go thru
THE POWER OF THE HOLY SPIRIT (to be expanded also speak about dynamis in the Div. Liturgy)
Under this heading we shall consider the four occurrences of the phrase “in the Spirit” (1:10; 4:2; 17:3; 21:10). Though in each case the reference is to John’s experience as a prophetic visionary, we shall find that the precise meaning is not the same in each case.
*missing In early Christian lit
In did ache 11:7-9, however this phrase would seem to be a theologically neutral term for ecstatic speech, for the prophet who speaks en pneumatic must be assessed as true or false by other criteria than this. It may be that through indiscriminate use the phrase had lost the theological assessment originally implicit in it and become merely phenomenological in this context, or it may be that the false prophet who speaks in ecstasy is considered inspired, but not by the Spirit of God (cf. I Jn. 4: 1-6).
2. THE SPIRIT OF PROPHECY
Another important role of the Spirit is to communicate messages of God and Jesus through the gift of prophecy (1:10; 4:2; 17:3; 19:10; 21:10). Both Jesus and the Spirit speak to the church. Each of the messages to the churches contains the phrase “He who has an ear, let him hear what the Spirit says to the churches” (2:7, 11, 17, 29; 3:6, 13, 22). These messages usually contain promises or revelations about God’s plan for the churches, as well as Satan’s intentions. Jesus promised His disciples that He would send to them the person of the Holy Spirit (John 14:15-18).
In post-biblical Judaism, as is well known, the Spirit of God is especially the Spirit of prophecy, the Spirit which speaks through the prophets. In Revelation also, the commentators commonly observe, the Spirit is almost exclusively the Spirit of prophecy
Parts of the Apocalypse are explicitly said to be the words of the Spirit: the seven messages to the churches; 14:13b; and 22:17a. The seven messages are “what the Spirit says to the
Churches”, equated with the words of the exalted Christ.25 the significance of 14:13b would seem to be that the words of the Spirit are the Spirit’s response, speaking through John, to the
Heavenly voice.
As John obeys the command to write the beatitude, the Spirit inspiring him adds an emphatic endorsement of it. In 22:17a 'Ecru is certainly (*pace* the majority of commentators) addressed by the Spirit and the Bride not to him who thirsts but to Christ. It is the response to Christ’s promise in 22:12, just as the same promise and response recur in 22:20. again in all probability “the Spirit” is equivalent to the inspired utterance of the Christian prophets, here in the form of Spirit-inspired prayer.
Thus the Spirit of prophecy speaks through the Christian prophets bringing the word of the exalted Christ to his people on earth, endorsing on earth the words of heavenly revelations, and
Directing the prayers of the churches to their heavenly Lord. These are the special functions of the Christian prophets, whom Revelation certainly distinguishes as a special group within the
Churches and it has sometimes been appropriately noted that they bear comparison with the function of the Johan nine Parakeet.
The Spirit in the Apocalypse is giving power in Christian lives. For the Spirit brings to the churches the *powerful* word of Christ, rebuking, encouraging, promising and threatening, touching and drawing the hearts, minds and consciences of its hearers, directing the lives and the prayers of the Christian communities towards the coming of Christ.
The living voice of the Spirit speaking once more through prophets marked out the Christian churches as the eschatological community in which the age to come was dawning; but Joel 2
Promised that the prophetic Spirit in the last days was not to be the endowment of the select few only. It seems probable that the prominence of the prophets in the Apocalypse reflects not only the important role of those specially called to be prophets within the churches but also a conviction that the vocation of the church as a whole is prophetic.
**3. THE SEVEN SPIRITS**
The seven Spirits are the third and last category of references to the Spirit in Revelation: 1:4; 3:1; 4:5; 5:6. The question of their identity ― angels or the Holy Spirit? ― has been much discussed. On balance it seems probable that they are symbolic of the Spirit of God. In that case it is especially noteworthy that the relation of the Spirit to Christ is conveyed in 3:1; 5:6. In fulfillment of Isa. 11, a favorite messianic text in Revelation, Christ is endowed with the Spirit of the Lord, which is henceforth therefore the Spirit of Christ. Accordingly “the eyes of the Lord, which range through the whole world” (Zech. 4:10) have become the eyes of the Lamb (Rev. 5:6).
Revelation always means “the witness which Jesus bore”, and the lampstands of Rev. 1:20: the seven churches. The two olive-trees appear in Rev. 11:4 identified with two lampstands “which stand before the Lord of the earth” (cf. Zech. 4:14): the two witnesses.
The seven eyes (Zech. 4:10) become the eyes of the Lamb. Probably also the seven torches which represent the seven Spirits in Rev. 4:5 are intended to recall the seven lamps (Zech. 4:2). John seems to have taken the “seven” of Zech. 4:10 to refer back to the seven lamps (Zech. 4:2) and also to have taken Zech. 4:11-14 to imply that the Lord himself (for John, the Lamb) is the lampstand beside which the two anointed ones, the olive-trees, stand.
The lampstand with its seven lamps is the Lord with his seven eyes.33 and since the lesson of the vision is, “Not by might nor by power but by my Spirit” (Zech. 4:6), the lamps of the lampstand, the eyes of the Lord, are His Spirit. To reinforce the lesson of the Spirit’s power John adds the additional figure of the seven horns. Probably the ambiguous phraseology of Rev. 5:6 means that both the horns and the eyes represent the seven spirits.
**TOO MUCH**
18 Bible Verses about Seven Spirits
Most Relevant Verses
Revelation 1:4 Part of letter from John to the seven churches that are in Asia: Grace to you and peace, from Him who is and who was and who is to come, and from the seven Spirits who are before His throne,
Revelation 3:1 "To the angel of the church in Sardis write: He who has the seven Spirits of God and the seven stars, says this: 'I know your deeds, that you have a name that you are alive, but you are dead.
Revelation 4:5 Out from the throne come flashes of lightning and sounds and peals of thunder And there were seven lamps of fire burning before the throne, which are the seven Spirits of God;
Revelation 5:6 And I saw between the throne (with the four living creatures) and the elders a Lamb standing, as if slain, having seven horns and seven eyes, which are the seven Spirits of God, sent out into all the earth.
**TOO MUCH**
Revelation 1:20 "As for the mystery of the seven stars which you saw in My right hand, and the seven golden lampstands: the seven stars are the angels of the seven churches, and the seven lampstands are the seven churches.
Revelation 8:2 And I saw the seven angels who stand before God, and seven trumpets were given to them.
Revelation 8:6 And the seven angels who had the seven trumpets prepared themselves to sound them.
Revelation 15:1 Then I saw another sign in heaven, great and marvelous, seven angels who had seven plagues, which are the last, because in them the wrath of God is finished.
Revelation 15:6 and the seven angels who had the seven plagues came out of the temple, clothed in linen, clean and bright, and girded around their chests with golden sashes.
Revelation 15:7 Then one of the four living creatures gave to the seven angels seven golden bowls full of the wrath of God, who lives forever and ever.
Revelation 15:8 And the temple was filled with smoke from the glory of God and from His power; and no one was able to enter the temple until the seven plagues of the seven angels were finished.
Revelation 16:1 Then I heard a loud voice from the temple, saying to the seven angels, "Go and pour out on the earth the seven bowls of the wrath of God."
Revelation 17:1 Then one of the seven angels who had the seven bowls came and spoke with me, saying, "Come here, I will show you the judgment of the great harlot who sits on many waters,
Revelation 21:9 Then one of the seven angels who had the seven bowls full of the seven last plagues came and spoke with me, saying, "Come here, I will show you the bride, the wife of the Lamb."
Mark 16:9 [Now after He had risen early on the first day of the week, He first appeared to Mary Magdalene, from whom He had cast out seven demons.
Luke 8:2 and also some women who had been healed of evil spirits and sicknesses: Mary who was called Magdalene, from whom seven demons had gone out,
Matthew 12:45 "Then it goes and takes along with it seven other spirits more wicked than itself, and they go in and live there; and the last state of that man becomes worse than the first. That is the way it will also be with this evil generation."
Luke 11:26 "Then it goes and takes along seven other spirits more evil than itself, and they go in and live there; and the last state of that man becomes worse than the first."
**The Seven Spirits of God**
One is intrigued by the seven spirits of God mentioned in the book of Revelation 1:4, 3:1, 4:5, and 5:6. These verses present an overall picture of celestial beings who are dispatched from God’s presence to carry out His behest, deliver His word to people, and perform His works of power. While searching out their identity, I discovered a key that could potentially unlock increased prayer power, particularly needful in this day and hour.
Conventional teaching on the seven spirits of God is based upon Isaiah 11, which provides a description of Yeshua the Messiah in His glory during His millennial reign upon earth. Verse 2 was not referring to seven *separate* spirits, but to one—the Holy Spirit (“the Spirit of the Lord”).
> The Spirit of the LORD shall rest upon Him, the Spirit of wisdom and understanding, the Spirit of counsel and might, the Spirit of knowledge and of the fear of the LORD. Isaiah 11:2
Although theologians have taught that these are the same seven spirits written of in Revelation, the fact that there are only *six* descriptions causes one to doubt this doctrine. Instead, this seems to be a listing of the attributes of the one and self-same Spirit of the Lord—the Holy Spirit who will empower the Lord Jesus Christ, the king of glory, to reign over the earth.
We need to take a fresh look at these seven spirits in Revelation, free of the traditional doctrine that has permeated the church through the years.
The verses we need to look at are the following:
> John, to the seven churches which are in Asia: Grace to you and peace from Him who is and who was and who is to come, and from the seven Spirits who are before His throne. Revelation 1:4And to the angel of the church in Sardis write, “These things says He who has the seven Spirits of God and the seven stars: ‘I know your works, that you have a name that you are alive, but you are dead.’” Revelation 3:1And from the throne proceeded lightnings, thunderings, and voices. And there were seven lamps of fire burning before the throne, which are the seven Spirits of God. Revelation 4:5And I looked, and behold, in the midst of the throne and of the four living creatures, and in the midst of the elders, stood a Lamb as though it had been slain, having seven horns and seven eyes, which are the seven Spirits of God sent out into all the earth. Revelation 5:6And I saw the seven angels who stand before God, and to them were given seven trumpets. Revelation 8:2
The first of these verses (Revelation 1:4) speaks of “the seven spirits before the throne,” revealing that they are in the presence of God. In Luke 1:19, we read of a spiritual being (an angel) who appears to Zacharias and identifies himself as “Gabriel, who stands in the presence of God.”
> And the angel answered and said to him, “I am Gabriel, who stands in the presence of God, and was sent to speak to you and bring you these glad tidings.” Luke 1:19
While Gabriel is clearly standing in the presence of Zacharias upon the earth, he still makes it clear that he is standing in God’s presence as well. Could Gabriel be one of the seven spirits mentioned in the book of Revelation?
Revelation 5:6 tells us that these seven spirits are sent out into all the earth. Gabriel was obviously sent out into the earth to speak to Zacharias. This description also corresponds with records found in Zechariah 1:8–11 and 4:1–10, which validate that there are spirits that the Lord sends to and fro upon the earth. When studying these records, it becomes clear that these spirits are angels, much like Gabriel.
Revelation 5:6 also reveals to us that they are the horns and eyes of the Lamb of God. The horns represent the power of the Lamb (ram) and the eyes represent the knowledge of Him—what He sees and knows.
> For the eyes of the LORD run to and fro throughout the whole earth, to show Himself strong on behalf of those whose heart is loyal to Him. 2 Chronicles 16:9a
In Zechariah 4:1–2 and 5, Zechariah sees “a lampstand of solid gold with a bowl on top of it, and on the stand seven lamps with seven pipes to the seven lamps.” When the angel asks him if he knows what these are, Zechariah answers, “No, my lord.” In verse 10, we find the angel’s explanation of these seven lamps:
> These seven rejoice to see the plumb line in the hand of Zerubbabel. They are the eyes of the LORD, which scan to and fro throughout the whole earth. Zechariah 4:10b
These seven lamps are “the eyes of the Lord [that] run to and fro” found in 2 Chronicles 16:9a, and they are the eyes of the Lamb “which are the seven Spirits of God sent out into all the earth” mentioned in Revelation 5:6.
Zechariah 1:8–11 gives a description of these beings that indicates that they appear as men.
> I saw by night, and behold, a man riding on a red horse, and it stood among the myrtle trees in the hollow; and behind him were horses: red, sorrel, and white. Then I said, “My lord, what are these?” So the angel who talked with me said to me, “I will show you what they are.” And the man who stood among the myrtle trees answered and said, “These are the ones whom the LORD has sent to walk to and fro throughout the earth.” So they answered the Angel of the LORD, who stood among the myrtle trees, and said, “We have walked to and fro throughout the earth, and behold, all the earth is resting quietly.” Zechariah 1:8–11
Although these verses do not specifically say that there are riders on the other horses, the implication is there. The fact that they speak to the angel of the Lord also shows their ability to communicate in words, an ability typically limited to spirit beings—men and angels.
To some minds there is some confusion as to the difference between the archangels and the seven Spirits of the Holy Spirit, yet what we have seen thus far, clarifies that these seven spirits are, in truth, seven angels who traverse between the throne of God and the earth to either carry out the Father’s will or to deliver His word. I further believe that they are archangels—angels who rank highest in power in God’s kingdom. Michael is mentioned in Jude 1:9 as being an archangel.
> Yet Michael the archangel, in contending with the devil, when he disputed about the body of Moses, dared not bring against him a reviling accusation, but said, “The Lord rebuke you!” Jude 1:9
Daniel 12:1 reveals that Michael is the prince (archangel) of the nation of Israel as well. He was sent to fight off the evil spirit who was hindering the delivery of Daniel’s answer to prayer for Israel (Daniel 10:13–14).
Gabriel is also believed to be an archangel. The Scriptures show that he brings knowledge and power to the earth. As we see who the other five spirits ([arch]angels of the presence) are, we will gain an understanding of the power they bring to the earth.
Two more archangels are revealed in 1 Enoch 9 and 101 where we are introduced to Uriel and Raphael. They, along with Michael and Gabriel, observed the horrendous effect that the angels (the “watchers”) had upon the earth. When they report it to God, He sends Uriel to bring a word to Noah and also to bind and imprison the disobedient angels.
By adding Uriel and Raphael to the list that was previously made up of only Michael and Gabriel, we now know the names of four of the seven spirits. We will soon see who the remaining three are.
NAMES OF THE SEVEN SPIRITS
Enoch goes a step further by actually naming the angles and even revealing their functions:
> And these are the names of the holy angels who watch. Uriel, one of the holy angels, who is over the world and over Tartarus. Raphael, one of the holy angels, who is over the spirits of men. Raguel, one of the holy angels who takes vengeance on the world of the luminaries. Michael, one of the holy angels, to wit, he that is set over the best part of mankind and over chaos. Saraqael, one of the holy angels, who is set over the spirits, who sin in the spirit. Gabriel, one of the holy angels, who is over Paradise and the serpents and the Cherubim. Remiel, one of the holy angels, whom God set over those who rise.1 Enoch 20:1–8
From these verses, here are the names of the seven spirits of God and their jurisdictions.
1) Uriel—over the world and Tartarus
2) Raphael—over the spirits of men
3) Raguel—takes vengeance on the world of the luminaries
4) Michael-set over the best part of mankind and chaos
5) Saraqael—set over the spirits who sin in the spirit
6) Gabriel—over Paradise and the serpents and the cherubim
7) Remiel—set over those who rise
Each of their names ends with “el” meaning “of” or “from God.” In 1 Enoch 20, verse 1 calls them “the holy angels who watch.” The authorized canon of the Scriptures reveals Michael and Gabriel already as two major angels (archangels), so their inclusion in this list helps to validate that the other five angels are of equal stature. Jubilees and 1 Enoch may not have been authorized by the “powers that be;” however, they are viewed by many theologians as reliable sources of study. Some (if not most) of these archangels have been referred to throughout the centuries—in fact, many of them appear in paintings and other forms of artwork.
Notice also that these archangels are the ones who watch. They are the eyes of the Lamb of God mentioned in Revelation 5:6. Yahweh has assigned to each of them specific job descriptions, with their own powers and functions. This reveals that the order in God’s kingdom is far greater than most of us have recognized.
To receive a revelation of this amazing order, I suggest that you read 1 Enoch 20:1–8 (as set forth above) and the subsequent listing a number of times. Also, if you record the names and functions of these seven spirits in your memory, it may serve you well when you are led by the Holy Spirit into strategic-level spiritual warfare, as it has me.
A number of years ago while ministering in India, I was involved in an incident that helped to usher a great revival into the nation of India. (This is what prompted me to write the booklet, *Closing Gates of Hell*.)3 No doubt, the Indian people had offered up thousands of prayers that led up to that day, but I believe an angelic visitation and my subsequent actions to it were also instrumental in springboarding that revival into reality.
Colosians 2:18 warns us against worshipping angels; however, to know the names and functions of the seven spirits before the throne of God is not worshipping them. We can receive a greater revelation of the glory and magnitude of God’s power by increasing our perception of His reign. The book of 1 Enoch provides examples of these functions being perfectly carried out as these angels instruct Enoch about the affairs of God’s kingdom and universe.
The seven spirits of God are dispatched from His throne. They are the angels of the presence of God who go to and fro throughout the earth as the horns and eyes of the Lamb of God. They bring God’s power and word to the scene whenever and wherever they are ordered. They have names and functions and they are at work even today to perform the will of Yahweh. We can rejoice in this!
> The LORD has established His throne in heaven, And His kingdom rules over all. Bless the LORD, you His angels, Who excel in strength, who do His word, Heeding the voice of His word. Psalm 103:19–20
Angels of the Presence
The book of Job records that there are certain angels that come in and go out of the presence of God.
> Now there was a day when the sons of God [angels] came to present themselves before the LORD, and Satan also came among them. And the LORD said to Satan, “From where do you come?” So Satan answered the LORD and said, “From going to and fro on the earth, and from walking back and forth on it.” Job 1:6–7
It is commonly believed that Satan (Lucifer) was at one time an archangel. Whether that is true or not, the point is that there are certain angels who come into the presence of God *and* go to and fro upon the earth. It seems clear that the seven spirits referred to in Revelation are such angels, and it seems equally clear that Michael and Gabriel are two of them.
The apocryphal book of Jubilees2 holds another clue concerning the identity and function of these seven spirits. They are referred to as “the angels of the presence” in Jubilees 2:1 and 18, 15:27, and 31:14. Jubilees 2:1–2a reveals that it was one of these angels of the presence who gave Moses the word to write about the history of creation.
> And the angel of the presence spake to Moses according to the word of the Lord, saying: Write the complete history of the creation, how in six days the Lord God finished all His works and all that He created, and kept Sabbath on the seventh day and hallowed it for all ages, and appointed it as a sign for all His works. Jubilees 2:1–2a
Although this angel is not named, he may very well have been Gabriel since he has the scriptural reputation of being a messenger angel.
Also, Revelations 8:2 reveals that these seven angels who stand before God are the same seven angels who will blow the seven trumpets during the Great Tribulation. This fits within the context of them bringing God’s word and will to the earth.
[[#]] [[CRM]] [[Apologetics]]
[[Twitter]] @therealMedWhite
[[Oriental Orthodoxy Refuted|https://www.youtube.com/playlist?list=PL3QQ7jHr1GrTO3WLauMBQ6kbTEphu2rHg]] [[Video]] [[YouTube]]
[[Poetry]] | [[Haiku]]
Thunder and lightening
rain dripping on a tin roof
warm by the fire
{
"2020 01 31 11:14:20": "hide",
"2020 01 31 11:15:52": "hide",
"Customize TiddlyBlink": "show",
"How TiddlyBlink works": "hide",
"How to add TiddlyBlink to your TiddlyWiki": "hide",
"My notetaking process in TiddlyBlink": "hide",
"This is crazy!": "hide",
"4. Topics, sources and hiding?": "hide",
"Test thing": "show",
"How to pray the Orthodox Rosary": "hide",
"Home": "hide",
"Georgi Dinkov": "hide",
"Guide to Confession": "hide",
"Fr Lazarus Moore": "hide",
"Athonite Prayer Rule": "hide",
"How a monk should act": "hide",
"How one should converse": "hide"
}
[[Themes]] https://ibnishak.github.io/ghostwriter/#
[[Reddit]] https://www.reddit.com/r/TiddlyWiki5/
[[Noteself]] https://noteself.github.io/
Based on Tiddlywiki but with sync
https://nesslabs.com/tiddlywiki-static-website-generator
http://erwanm.github.io/tw-community-search/#
[[Tutorial]] https://nesslabs.com/tiddlywiki-beginner-tutorial
[[WikiText]] [[Markup]] https://tiddlywiki.com/static/WikiText.html
http://braintest.tiddlyspot.com/
http://tw5magick.tiddlyspot.com/
<$list filter="[!has[draft.of]tag[To read]!tag[Read]sort[created]]">
<$checkbox tag="Read">
<$link to={{!!title}}>
<$view field="title"/>
</$link>
</$checkbox>
<br>
</$list>
[[Poetry]] | [[Haiku]]
Five word are better
When said with understanding
Than tongues of angels
The Complete Ante-Nicene & Nicene and Post-Nicene Church Fathers Collection
[[Thoughts]]
https://en.m.wikipedia.org/wiki/G%C3%B6del%27s_ontological_proof
[[Sonke Ahrens]] | [[Zettelkasten]] | [[Articles]]
[[https://www.quora.com/What-is-the-best-way-to-take-notes/answer/S%C3%B6nke-Ahrens?ch=10&share=e1efd8f9&srid=uJBsW]]
[[Thoughts]]
[[Letter 3 - St Basil the Great]]
[[https://en.wikipedia.org/wiki/Demosthenes]]
[[Synthesis]]
Source: [[S :: Letter 2 - St Basil the Great]] | [[St Basil the Great]]
* Keywords: [[Permanent Notes]]
**[[Humility]]
**[[Beatitudes]]
**[[Hesychia]]
* Relevant Notes:
**[[Z :: We must strive for a quiet mind]]
** [[Z :: How a Monk Should Act]]
** [[Z :: How One Should Converse]]
Notes:
The truth is taught to those with a pure heart by the Holy Spirit. We cannot purify our hearts if we are consumed by cares of the world. If we are distracted by a thousand thoughts a day we won't have time to do the work necessary to silence our mind in order for the Spirit to teach us.
[[Synthesis]]
Source: [[S :: Letter 2 - St Basil the Great]] | [[St Basil the Great]]
* Keyword: [[Permanent Notes]] | [[Humility]] | [[Beatitudes]]
* Relevant Notes:
** [[Z :: How One Should Converse]]
---
!!Notes:
<<<
❝ What dawn is to some is midnight to athletes of piety. The silence of night gives leisure to their soul. No noxious sounds or sights obtrude upon their hearts. The mind is alone with itself and God, correcting itself by the recollection of its sins, giving itself precepts to help it to shun evil, and imploring aid from God for the perfecting of what it longs for.
<<<
* Have a sorrowful and downcast eye //(from a humble and submissive spirit)//
* Neglected appearance
* Have rough hair
* Have dirty dress //(So that the appearance mourners take pains to present is our natural condition.)//
* The tunic should be fastened by a belt
** the belt should not be above the flank like a woman's
** The belt should not be slack, so the tunic flows loose like an idler's.
* The gait should not be sluggish nor pushing and pompous
* The clothing should be sufficient for all seasons
* Bright color should be avoided
* Soft material should be avoided
* Should should be cheap but serviceable
* The aim of dress is necessity
* The aim of food is necessity
* In good health bread and water will suffice
* Vegetables may be added for strengthening the body
* Do not eat with an exhibition of savage gluttony
* In everything that concerns our pleasures maintain moderation, quiet, and self-control
* Do not forget God when partaking of food and the health of our body grounds for offering him glory, thinking the various kinds of food are due to the provision of the great steward of the universe
* Before meat let grace be said for present and future gift God gives
* After meat let grace be said in gratitude for the gifts given a petition for gifts promised
* Let one hour be fixed for food, always at the same time, that out of all the hours of the day only one may be spent on the body
* The hours not spent on food should be spent in mental exercise
* Let sleep be light and easily interrupted, as naturally happens after a light diet //(It should be purposefully broken by thoughts of great themes. To be overcome by heavy torpor, with limbs unstrung, so that the way is open to wild fantasies, is to be plunged into daily death)//
[[Synthesis]]
Source: [[S :: Letter 2 - St Basil the Great]] | [[St Basil the Great]]
* Keywords: [[Permanent Notes]]
**[[Humility]]
**[[Beatitudes]]
* Relevant Notes:
** [[Z :: How a Monk Should Act]]
Notes:
* To interrogate without earnestness
* To Answer without desire of display
* Not to interrupt a profitable speaker
* Not to ambitiously desire to put a word in
* To be measured in speaking and hearing
* Not to be ashamed of receiving
* Not to be grudging in giving information
* Not to pass other's knowledge as one's own
* The middle tone of voice is best //(not too low or too high-pitched)//
* To think before you speak
* To be courteous when addressed
* To be amiable in social intercourse (not aiming to be pleasant by facetiousness but cultivate gentleness in kind admonitions)
* Harshness is ever to be put aside even in censuring //(The more you show modesty and humility the more likely you will be acceptable to the patient who needs your treatment)//
* There are times when rebukes are necessary //(like the prophet to David, suggesting an imaginary character made the sinner judge his own sin, and by condemning himself found no fault in the one who convicted him)//
[[Synthesis]]
Source: [[S :: Letter 2 - St Basil the Great]] | [[St Basil the Great]]
* Keywords: [[Permanent Notes]]
**[[Humility]]
**[[Beatitudes]]
**[[Scripture]]
**[[Lives of the Saints]]
**[[Synaxarion]]
* Relevant Notes:
** [[Z :: How a Monk Should Act]]
** [[Z :: How One Should Converse]]
** [[Z :: We must strive for a quiet mind]]
Notes:
We lose track of our goals easily and need to constantly be reminded of who we are supposed to be and how we are supposed to act. We should read Divine Scripture daily to remind us that we need to rid ourselves of the passions by seeing the virtue portrayed as living statues in the saints depicted.
* Joseph of chastity
* Job of patience and forbearance
* kind David of meekness and fair-mindedness
<<<
❝ The study of inspired Scripture is the chief way of finding our duty, for in it we find both instruction about conduct and the lives of blessed men, delivered in writing, as some breathing images of godly living, for the imitation of their good works. Hence, in whatever respect each one feels himself deficient, devoting himself to this imitation, he finds, as from some dispensary, the due medicine for his ailment.
<<< Loc 560,215
<<<
❝ Thus, generally, as painters, when they are painting from other pictures, constantly look at the model, and do their best to transfer its lineaments to their own work, so too must he who is desirous of rendering himself perfect in all branches of excellency, keep his eyes turned to the lives of the saints as though to living and moving statues, and make their virtue his own by imitation.
<<< Loc 560,224
[[Synthesis]]
Source: [[S :: Letter 2 - St Basil the Great]] | [[St Basil the Great]]
* Keywords: [[Permanent Notes]]
**[[Humility]]
**[[Beatitudes]]
* Relevant Notes:
** [[Z :: How a Monk Should Act]]
** [[Z :: How One Should Converse]]
Notes:
We are never content with our current situation. If we are not married we seek marriage and complain that the desires of the flesh are too strong. If we are married we complain that we cannot do what we please. This constant desire breeds sleepless anxiety.
[[Synthesis]]
Source: [[S :: Letter 2 - St Basil the Great]] | [[St Basil the Great]]
* Keywords: [[Permanent Notes]]
**[[Humility]]
**[[Beatitudes]]
**[[Logismoi]]
**[[Spiritual Warfare]]
* Relevant Notes:
** [[Z :: We must strive for a quiet mind]]
Notes:
Spiritual Warfare starts in the mind. If we can detach desire from the body then the thoughts concerning it will not distract us and we will fulfill the command to not love our own lives before God.
[[Synthesis]]
Source: [[S :: Letter 2 - St Basil the Great]] | [[St Basil the Great]]
* Keywords: [[Permanent Notes]]
**[[Humility]]
**[[Beatitudes]]
**[[Hesychia]]
* Relevant Notes:
** [[Z :: How a Monk Should Act]]
** [[Z :: How One Should Converse]]
Notes:
A quiet mind is the aim of the solitary life. A mind that is free from distraction from thoughts concerning the body is able to turn to God in continuous prayer and make his mind a temple of God.
[[Notes]] | [[Shu Omi]]
Source: [[https://youtu.be/rOSZOCoqOo8]]
Zettlekasten is German for a box of cards.
Two boxes are used:
* Reference box
** bibliographic notes
** brief description
* Main box
** new ideas
** insights
Note taking process:
# Take [[Literature Notes]]
#* write down information you wish to remember or find interesting on a card instead of highlighting.
#** must be brief (< 3 sentences)
#** must be in your own words
#** Include pages numbers for easier reference
# Take [[Reference Notes]]
#* Write down relevant information on the author
#* Write down who told you about the source
#* Write a brief summary
# Make [[Permanent Notes]] //''(most important step)''//
#* Review literature notes
#* Think about how they relate to your ''thinking, interests, and research''.
#* focus on ''quality over quantity''. //The goal is to add usefulness to the notes.//
#* Try to find connections from what you just learned to what you already know.
#Find keywords:
#* Instead of think which category a note falls into try to think of how you would want to stumble upon the note. Or when and how you will use the notes.
#Take [[fleeting notes|Thoughts]]:
#* Take notes on ideas you have throughout the day and go over them to see if they can be turned into permanent notes.
#* review these notes soon so you don't forget their context.
Finding meaningful connections:
# How does this fit into what I already know?
# Can this be explained by something else?
# What does X mean for Y?